1
0
Fork 0
pull/38/merge
Lundar 2018-06-21 14:23:18 +00:00 committed by GitHub
commit a0aacf73f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 66 additions and 71 deletions

View File

@ -277,8 +277,18 @@ bool __cdecl diablo_get_not_running()
return GetLastError() != ERROR_ALREADY_EXISTS; return GetLastError() != ERROR_ALREADY_EXISTS;
} }
void preMainInit(){
engine_cpp_init_2();
dx_cpp_init_2();
dthread_cpp_init_2();
nthread_cpp_init_2();
log_cpp_init_2();
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{ {
preMainInit();
HINSTANCE v4; // esi HINSTANCE v4; // esi
//int v11; // ecx //int v11; // ecx
char Filename[260]; // [esp+8h] [ebp-10Ch] char Filename[260]; // [esp+8h] [ebp-10Ch]

View File

@ -24,14 +24,12 @@ struct dthread_cpp_init_1
// 47A460: using guessed type int dthread_inf; // 47A460: using guessed type int dthread_inf;
// 52A4E0: using guessed type int dthread_cpp_init_value; // 52A4E0: using guessed type int dthread_cpp_init_value;
struct dthread_cpp_init_2 void __cdecl dthread_cpp_init_2()
{ {
dthread_cpp_init_2() dthread_init_mutex();
{ dthread_cleanup_mutex_atexit();
dthread_init_mutex(); }
dthread_cleanup_mutex_atexit();
}
} _dthread_cpp_init_2;
void __cdecl dthread_init_mutex() void __cdecl dthread_init_mutex()
{ {

View File

@ -27,14 +27,11 @@ struct dx_cpp_init_1
// 47A464: using guessed type int dx_inf; // 47A464: using guessed type int dx_inf;
// 52A514: using guessed type int dx_cpp_init_value; // 52A514: using guessed type int dx_cpp_init_value;
struct dx_cpp_init_2 void __cdecl dx_cpp_init_2()
{ {
dx_cpp_init_2() dx_init_mutex();
{ dx_cleanup_mutex_atexit();
dx_init_mutex(); }
dx_cleanup_mutex_atexit();
}
} _dx_cpp_init_2;
void __cdecl dx_init_mutex() void __cdecl dx_init_mutex()
{ {

View File

@ -1879,14 +1879,12 @@ int __fastcall random(int idx, int v)
return v4 % v2; return v4 % v2;
} }
struct engine_cpp_init_2 void __cdecl engine_cpp_init_2()
{ {
engine_cpp_init_2() mem_init_mutex();
{ mem_atexit_mutex();
mem_init_mutex(); }
mem_atexit_mutex();
}
} _engine_cpp_init_2;
void __cdecl mem_init_mutex() void __cdecl mem_init_mutex()
{ {

View File

@ -26,14 +26,11 @@ struct log_cpp_init_1
// 47F070: using guessed type int log_inf; // 47F070: using guessed type int log_inf;
// 646A30: using guessed type int log_cpp_init_value; // 646A30: using guessed type int log_cpp_init_value;
struct log_cpp_init_2 void __cdecl log_cpp_init_2()
{ {
log_cpp_init_2() log_init_mutex();
{ j_log_cleanup_mutex();
log_init_mutex(); }
j_log_cleanup_mutex();
}
} _log_cpp_init_2;
void __cdecl log_init_mutex() void __cdecl log_init_mutex()
{ {

View File

@ -108,45 +108,43 @@ LABEL_6:
void __fastcall mainmenu_action(int option) void __fastcall mainmenu_action(int option)
{ {
int v1; // eax
int quit; // eax
int a2; // [esp+0h] [ebp-4h] int a2; // [esp+0h] [ebp-4h]
a2 = option; //a2 = option;// development history seems to be showing here
mainmenu_refresh_music(); mainmenu_refresh_music();
do do{
{ quit = 1;
while ( 1 ) a2 = 0;
{ if ( !UiMainMenuDialog("Diablo v1.09", &a2, effects_play_sound, 30) ){
a2 = 0; TermMsg("Unable to display mainmenu");
if ( !UiMainMenuDialog("Diablo v1.09", &a2, effects_play_sound, 30) ) //old code would loop endlessly here (probably)
TermMsg("Unable to display mainmenu"); break;//new code will quit.
if ( a2 == 1 ) }
break;
switch ( a2 ) switch ( a2 )
{ {
case MAINMENU_MULTIPLAYER: case MAINMENU_SINGLE_PLAYER:
v1 = mainmenu_multi_player(); quit = mainmenu_single_player();
goto LABEL_15; break;
case MAINMENU_REPLAY_INTRO: case MAINMENU_MULTIPLAYER:
goto LABEL_10; quit = mainmenu_multi_player();
case MAINMENU_SHOW_CREDITS: break;
UiCreditsDialog(16); case MAINMENU_SHOW_CREDITS:
break; UiCreditsDialog(16);
case MAINMENU_EXIT_DIABLO: break;
goto LABEL_16; case MAINMENU_EXIT_DIABLO:
case MAINMENU_ATTRACT_MODE: quit = 0;
LABEL_10: break;
if ( window_activated ) case MAINMENU_REPLAY_INTRO:
mainmenu_play_intro(); case MAINMENU_ATTRACT_MODE:
break; if ( window_activated )
} mainmenu_play_intro();
} break;
v1 = mainmenu_single_player(); }
LABEL_15: }while ( quit );
;
}
while ( v1 );
LABEL_16:
music_stop(); music_stop();
} }
// 634980: using guessed type int window_activated; // 634980: using guessed type int window_activated;

View File

@ -35,14 +35,11 @@ struct nthread_cpp_init_1
// 47F164: using guessed type int nthread_inf; // 47F164: using guessed type int nthread_inf;
// 679700: using guessed type int nthread_cpp_init_value; // 679700: using guessed type int nthread_cpp_init_value;
struct nthread_cpp_init_2 void __cdecl nthread_cpp_init_2()
{ {
nthread_cpp_init_2() nthread_init_mutex();
{ nthread_cleanup_mutex_atexit();
nthread_init_mutex(); }
nthread_cleanup_mutex_atexit();
}
} _nthread_cpp_init_2;
void __cdecl nthread_init_mutex() void __cdecl nthread_init_mutex()
{ {