Merge 6c407e1d9f
into 7e5bed4fb5
commit
a0aacf73f1
|
@ -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]
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue