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

@ -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]

View File

@ -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()
{

View File

@ -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()
{

View File

@ -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()
{

View File

@ -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()
{

View File

@ -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;

View File

@ -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()
{