@@ -33,13 +33,23 @@ __forceinline static void bfme2_hook_gs() {
3333
3434// missing options.ini causes crash on startup
3535__forceinline static void bfme2_create_options () {
36- char path [MAX_PATH + 56 ];
36+ char path [MAX_PATH + 72 ];
3737 HANDLE hFile = 0 ;
38- DWORD dw = 0 ;
38+ DWORD dw , len ;
3939 if (SHGetFolderPath (NULL , CSIDL_APPDATA , NULL , 0 , path ) >= 0 ) {
40- __strcat (path , "\\My Battle for Middle-earth(tm) II Files" );
40+ len = __strlen (path );
41+ if (len > MAX_PATH ) return ;
42+ __strcpy (path + len , "\\My Battle for Middle-earth(tm) II Files" );
4143 CreateDirectoryA (path , NULL );
42- __strcat (path , "\\options.ini" );
44+ __strcpy (path + len + 40 , "\\options.ini" );
45+ hFile = CreateFileA (path , GENERIC_WRITE , FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE , NULL , CREATE_NEW , FILE_ATTRIBUTE_NORMAL , NULL );
46+ if (hFile && hFile != INVALID_HANDLE_VALUE ) {
47+ WriteFile (hFile , bfme2_options_ini , 150 , & dw , NULL );
48+ CloseHandle (hFile );
49+ }
50+ __strcpy (path + len , "\\My The Lord of the Rings, The Rise of the Witch-king Files" );
51+ CreateDirectoryA (path , NULL );
52+ __strcpy (path + len + 59 , "\\options.ini" );
4353 hFile = CreateFileA (path , GENERIC_WRITE , FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE , NULL , CREATE_NEW , FILE_ATTRIBUTE_NORMAL , NULL );
4454 if (hFile && hFile != INVALID_HANDLE_VALUE ) {
4555 WriteFile (hFile , bfme2_options_ini , 150 , & dw , NULL );
0 commit comments