Merge 6c407e1d9f
into 7e5bed4fb5
commit
a0aacf73f1
|
@ -276,9 +276,19 @@ bool __cdecl diablo_get_not_running()
|
|||
CreateEventA(NULL, FALSE, FALSE, "DiabloEvent");
|
||||
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)
|
||||
{
|
||||
preMainInit();
|
||||
HINSTANCE v4; // esi
|
||||
//int v11; // ecx
|
||||
char Filename[260]; // [esp+8h] [ebp-10Ch]
|
||||
|
|
|
@ -24,14 +24,12 @@ struct dthread_cpp_init_1
|
|||
// 47A460: using guessed type int dthread_inf;
|
||||
// 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_cpp_init_2;
|
||||
dthread_init_mutex();
|
||||
dthread_cleanup_mutex_atexit();
|
||||
}
|
||||
|
||||
|
||||
void __cdecl dthread_init_mutex()
|
||||
{
|
||||
|
|
|
@ -27,14 +27,11 @@ struct dx_cpp_init_1
|
|||
// 47A464: using guessed type int dx_inf;
|
||||
// 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_cpp_init_2;
|
||||
dx_init_mutex();
|
||||
dx_cleanup_mutex_atexit();
|
||||
}
|
||||
|
||||
void __cdecl dx_init_mutex()
|
||||
{
|
||||
|
|
|
@ -1879,14 +1879,12 @@ int __fastcall random(int idx, int v)
|
|||
return v4 % v2;
|
||||
}
|
||||
|
||||
struct engine_cpp_init_2
|
||||
void __cdecl engine_cpp_init_2()
|
||||
{
|
||||
engine_cpp_init_2()
|
||||
{
|
||||
mem_init_mutex();
|
||||
mem_atexit_mutex();
|
||||
}
|
||||
} _engine_cpp_init_2;
|
||||
mem_init_mutex();
|
||||
mem_atexit_mutex();
|
||||
}
|
||||
|
||||
|
||||
void __cdecl mem_init_mutex()
|
||||
{
|
||||
|
|
|
@ -26,14 +26,11 @@ struct log_cpp_init_1
|
|||
// 47F070: using guessed type int log_inf;
|
||||
// 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_cpp_init_2;
|
||||
log_init_mutex();
|
||||
j_log_cleanup_mutex();
|
||||
}
|
||||
|
||||
void __cdecl log_init_mutex()
|
||||
{
|
||||
|
|
|
@ -108,45 +108,43 @@ LABEL_6:
|
|||
|
||||
void __fastcall mainmenu_action(int option)
|
||||
{
|
||||
int v1; // eax
|
||||
|
||||
int quit; // eax
|
||||
int a2; // [esp+0h] [ebp-4h]
|
||||
|
||||
a2 = option;
|
||||
//a2 = option;// development history seems to be showing here
|
||||
mainmenu_refresh_music();
|
||||
do
|
||||
{
|
||||
while ( 1 )
|
||||
{
|
||||
a2 = 0;
|
||||
if ( !UiMainMenuDialog("Diablo v1.09", &a2, effects_play_sound, 30) )
|
||||
TermMsg("Unable to display mainmenu");
|
||||
if ( a2 == 1 )
|
||||
break;
|
||||
switch ( a2 )
|
||||
{
|
||||
case MAINMENU_MULTIPLAYER:
|
||||
v1 = mainmenu_multi_player();
|
||||
goto LABEL_15;
|
||||
case MAINMENU_REPLAY_INTRO:
|
||||
goto LABEL_10;
|
||||
case MAINMENU_SHOW_CREDITS:
|
||||
UiCreditsDialog(16);
|
||||
break;
|
||||
case MAINMENU_EXIT_DIABLO:
|
||||
goto LABEL_16;
|
||||
case MAINMENU_ATTRACT_MODE:
|
||||
LABEL_10:
|
||||
if ( window_activated )
|
||||
mainmenu_play_intro();
|
||||
break;
|
||||
}
|
||||
}
|
||||
v1 = mainmenu_single_player();
|
||||
LABEL_15:
|
||||
;
|
||||
}
|
||||
while ( v1 );
|
||||
LABEL_16:
|
||||
do{
|
||||
quit = 1;
|
||||
a2 = 0;
|
||||
if ( !UiMainMenuDialog("Diablo v1.09", &a2, effects_play_sound, 30) ){
|
||||
TermMsg("Unable to display mainmenu");
|
||||
//old code would loop endlessly here (probably)
|
||||
break;//new code will quit.
|
||||
}
|
||||
|
||||
switch ( a2 )
|
||||
{
|
||||
case MAINMENU_SINGLE_PLAYER:
|
||||
quit = mainmenu_single_player();
|
||||
break;
|
||||
case MAINMENU_MULTIPLAYER:
|
||||
quit = mainmenu_multi_player();
|
||||
break;
|
||||
case MAINMENU_SHOW_CREDITS:
|
||||
UiCreditsDialog(16);
|
||||
break;
|
||||
case MAINMENU_EXIT_DIABLO:
|
||||
quit = 0;
|
||||
break;
|
||||
case MAINMENU_REPLAY_INTRO:
|
||||
case MAINMENU_ATTRACT_MODE:
|
||||
if ( window_activated )
|
||||
mainmenu_play_intro();
|
||||
break;
|
||||
}
|
||||
}while ( quit );
|
||||
|
||||
music_stop();
|
||||
}
|
||||
// 634980: using guessed type int window_activated;
|
||||
|
|
|
@ -35,14 +35,11 @@ struct nthread_cpp_init_1
|
|||
// 47F164: using guessed type int nthread_inf;
|
||||
// 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_cpp_init_2;
|
||||
nthread_init_mutex();
|
||||
nthread_cleanup_mutex_atexit();
|
||||
}
|
||||
|
||||
void __cdecl nthread_init_mutex()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue