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_init_mutex();
dthread_cleanup_mutex_atexit(); 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_init_mutex();
dx_cleanup_mutex_atexit(); 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_init_mutex();
mem_atexit_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(); log_init_mutex();
j_log_cleanup_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; a2 = 0;
if ( !UiMainMenuDialog("Diablo v1.09", &a2, effects_play_sound, 30) ) if ( !UiMainMenuDialog("Diablo v1.09", &a2, effects_play_sound, 30) ){
TermMsg("Unable to display mainmenu"); TermMsg("Unable to display mainmenu");
if ( a2 == 1 ) //old code would loop endlessly here (probably)
break; break;//new code will quit.
}
switch ( a2 ) switch ( a2 )
{ {
case MAINMENU_SINGLE_PLAYER:
quit = mainmenu_single_player();
break;
case MAINMENU_MULTIPLAYER: case MAINMENU_MULTIPLAYER:
v1 = mainmenu_multi_player(); quit = mainmenu_multi_player();
goto LABEL_15; break;
case MAINMENU_REPLAY_INTRO:
goto LABEL_10;
case MAINMENU_SHOW_CREDITS: case MAINMENU_SHOW_CREDITS:
UiCreditsDialog(16); UiCreditsDialog(16);
break; break;
case MAINMENU_EXIT_DIABLO: case MAINMENU_EXIT_DIABLO:
goto LABEL_16; quit = 0;
break;
case MAINMENU_REPLAY_INTRO:
case MAINMENU_ATTRACT_MODE: case MAINMENU_ATTRACT_MODE:
LABEL_10:
if ( window_activated ) if ( window_activated )
mainmenu_play_intro(); mainmenu_play_intro();
break; break;
} }
} }while ( quit );
v1 = mainmenu_single_player();
LABEL_15:
;
}
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_init_mutex();
nthread_cleanup_mutex_atexit(); nthread_cleanup_mutex_atexit();
} }
} _nthread_cpp_init_2;
void __cdecl nthread_init_mutex() void __cdecl nthread_init_mutex()
{ {