Browse Source

Merge pull request #346 from galaxyhaxz/diabloui

Fix "DiabloUI" for GCC + disclaim.cpp
pull/4/head
galaxyhaxz 8 years ago committed by GitHub
parent
commit
59f1d2ba6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      3rdParty/Storm/Source/storm_gcc.def
  2. 7
      DiabloUI/_temp_data.cpp
  3. 13
      DiabloUI/_temp_funcs.h
  4. 1
      DiabloUI/diabloui.h
  5. 41
      DiabloUI/diabloui_gcc.def
  6. 110
      DiabloUI/disclaim.cpp

16
3rdParty/Storm/Source/storm_gcc.def vendored

@ -72,11 +72,12 @@ EXPORTS
SDlgBeginPaint @201 NONAME SDlgBeginPaint @201 NONAME
SDlgBeginPaint@8 @201 NONAME SDlgBeginPaint@8 @201 NONAME
SDlgBltToWindowI @202 NONAME SDlgBltToWindowI @202 NONAME
SDlgBltToWindowI@28 @202 NONAME SDlgBltToWindowI@40 @202 NONAME
;SDlgCheckTimers @203 NONAME ;SDlgCheckTimers @203 NONAME
;SDlgCreateDialogIndirectParam @204 NONAME ;SDlgCreateDialogIndirectParam @204 NONAME
;SDlgCreateDialogParam @205 NONAME ;SDlgCreateDialogParam @205 NONAME
SDlgDefDialogProc @206 NONAME SDlgDefDialogProc @206 NONAME
SDlgDefDialogProc@16 @206 NONAME
SDlgDialogBoxIndirectParam @208 NONAME SDlgDialogBoxIndirectParam @208 NONAME
SDlgDialogBoxParam @209 NONAME SDlgDialogBoxParam @209 NONAME
@ -84,6 +85,7 @@ EXPORTS
SDlgDrawBitmap @210 NONAME SDlgDrawBitmap @210 NONAME
SDlgDrawBitmap@28 @210 NONAME SDlgDrawBitmap@28 @210 NONAME
SDlgEndDialog @211 NONAME SDlgEndDialog @211 NONAME
SDlgEndDialog@8 @211 NONAME
SDlgEndPaint @212 NONAME SDlgEndPaint @212 NONAME
SDlgEndPaint@8 @212 NONAME SDlgEndPaint@8 @212 NONAME
SDlgKillTimer @213 NONAME SDlgKillTimer @213 NONAME
@ -92,6 +94,7 @@ EXPORTS
SDlgSetBitmapI @215 NONAME SDlgSetBitmapI @215 NONAME
SDlgSetBitmapI@40 @215 NONAME SDlgSetBitmapI@40 @215 NONAME
SDlgSetControlBitmaps @216 NONAME SDlgSetControlBitmaps @216 NONAME
SDlgSetControlBitmaps@28 @216 NONAME
SDlgSetCursor @217 NONAME SDlgSetCursor @217 NONAME
SDlgSetCursor@16 @217 NONAME SDlgSetCursor@16 @217 NONAME
SDlgSetSystemCursor @218 NONAME SDlgSetSystemCursor @218 NONAME
@ -177,6 +180,7 @@ EXPORTS
;SBltGetSCode @312 NONAME ;SBltGetSCode @312 NONAME
SBltROP3 @313 NONAME SBltROP3 @313 NONAME
SBltROP3@32 @313 NONAME
SBltROP3Clipped @314 NONAME SBltROP3Clipped @314 NONAME
SBltROP3Tiled @315 NONAME SBltROP3Tiled @315 NONAME
SBltROP3Tiled@40 @315 NONAME SBltROP3Tiled@40 @315 NONAME
@ -184,6 +188,7 @@ EXPORTS
SBmpDecodeImage @321 NONAME SBmpDecodeImage @321 NONAME
SBmpLoadImage @323 NONAME SBmpLoadImage @323 NONAME
SBmpLoadImage@28 @323 NONAME
SBmpSaveImage @324 NONAME SBmpSaveImage @324 NONAME
SBmpAllocLoadImage @325 NONAME SBmpAllocLoadImage @325 NONAME
;SBmpSaveImageEx @326 NONAME ;SBmpSaveImageEx @326 NONAME
@ -197,7 +202,7 @@ EXPORTS
SDrawAutoInitialize @341 NONAME SDrawAutoInitialize @341 NONAME
SDrawCaptureScreen @342 NONAME SDrawCaptureScreen @342 NONAME
SDrawClearSurface @343 NONAME SDrawClearSurface @343 NONAME
SDrawClearSurface@0 @343 NONAME SDrawClearSurface@4 @343 NONAME
SDrawDestroy @344 NONAME SDrawDestroy @344 NONAME
;SDrawFlipPage @345 NONAME ;SDrawFlipPage @345 NONAME
SDrawGetFrameWindow @346 NONAME SDrawGetFrameWindow @346 NONAME
@ -230,13 +235,17 @@ EXPORTS
;SGdiBitBlt @381 NONAME ;SGdiBitBlt @381 NONAME
;SGdiCreateFont @382 NONAME ;SGdiCreateFont @382 NONAME
SGdiDeleteObject @383 NONAME SGdiDeleteObject @383 NONAME
SGdiDeleteObject@4 @383 NONAME
;SGdiDestroy @384 NONAME ;SGdiDestroy @384 NONAME
SGdiExtTextOut @385 NONAME SGdiExtTextOut @385 NONAME
SGdiImportFont @386 NONAME SGdiImportFont @386 NONAME
SGdiImportFont@8 @386 NONAME
;SGdiLoadFont @387 NONAME ;SGdiLoadFont @387 NONAME
;SGdiRectangle @388 NONAME ;SGdiRectangle @388 NONAME
SGdiSelectObject @389 NONAME SGdiSelectObject @389 NONAME
SGdiSelectObject@4 @389 NONAME
SGdiSetPitch @390 NONAME SGdiSetPitch @390 NONAME
SGdiSetPitch@4 @390 NONAME
SGdiTextOut @391 NONAME SGdiTextOut @391 NONAME
SGdiTextOut@24 @391 NONAME SGdiTextOut@24 @391 NONAME
;SGdi392 @392 NONAME ;SGdi392 @392 NONAME
@ -279,10 +288,12 @@ EXPORTS
;SReg429 @429 NONAME ;SReg429 @429 NONAME
;SReg430 @430 NONAME ;SReg430 @430 NONAME
STransBlt @431 NONAME STransBlt @431 NONAME
STransBlt@20 @431 NONAME
STransBltUsingMask @432 NONAME STransBltUsingMask @432 NONAME
STransCreateI @433 NONAME STransCreateI @433 NONAME
STransCreateI@28 @433 NONAME STransCreateI@28 @433 NONAME
STransDelete @434 NONAME STransDelete @434 NONAME
STransDelete@4 @434 NONAME
STransDuplicate @436 NONAME STransDuplicate @436 NONAME
STransIntersectDirtyArray @437 NONAME STransIntersectDirtyArray @437 NONAME
@ -357,6 +368,7 @@ EXPORTS
SStrCopy@12 @501 NONAME SStrCopy@12 @501 NONAME
SStrHash @502 NONAME SStrHash @502 NONAME
SStrPack @503 NONAME SStrPack @503 NONAME
SStrPack@12 @503 NONAME
;SStrTokenize @504 NONAME ;SStrTokenize @504 NONAME
;SStrPack @505 NONAME ;SStrPack @505 NONAME
SStrLen @506 NONAME SStrLen @506 NONAME

7
DiabloUI/_temp_data.cpp

@ -16,6 +16,7 @@ int CreaStat_cpp_float_value = 2139095040; // weak
int credits_cpp_float_value = 2139095040; // weak int credits_cpp_float_value = 2139095040; // weak
int DiabEdit_cpp_float_value = 2139095040; // weak int DiabEdit_cpp_float_value = 2139095040; // weak
int DiabloUI_cpp_float_value = 2139095040; // weak int DiabloUI_cpp_float_value = 2139095040; // weak
int disclaim_cpp_float_value = 2139095040; // weak
int doom_cpp_float_value = 2139095040; // weak int doom_cpp_float_value = 2139095040; // weak
int EntName_cpp_float_value = 2139095040; // weak int EntName_cpp_float_value = 2139095040; // weak
int fade_cpp_float_value = 2139095040; // weak int fade_cpp_float_value = 2139095040; // weak
@ -58,8 +59,8 @@ int dword_10022A38[2] = { 1097, 0 };
int dword_10022A40[2] = { 1102, 0 }; int dword_10022A40[2] = { 1102, 0 };
int dword_10022A48[3] = { 1056, 1054, 0 }; int dword_10022A48[3] = { 1056, 1054, 0 };
int dword_10022A54[3] = { 1100, 1101, 0 }; int dword_10022A54[3] = { 1100, 1101, 0 };
int dword_10022A98[3] = { 1082, 1083, 0 }; int disclaim_msgtbl1[3] = { 1082, 1083, 0 };
int dword_10022AA4[4] = { 1084, 1085, 1086, 0 }; int disclaim_msgtbl2[4] = { 1084, 1085, 1086, 0 };
int dword_10022AFC[2] = { 1038, 0 }; int dword_10022AFC[2] = { 1038, 0 };
int dword_10022B04[3] = { 1056, 1054, 0 }; int dword_10022B04[3] = { 1056, 1054, 0 };
int dword_10022B10[2] = { 1116, 0 }; int dword_10022B10[2] = { 1116, 0 };
@ -231,7 +232,7 @@ int dword_10029840; // weak
int dword_10029844; // weak int dword_10029844; // weak
void *dword_10029848; // idb void *dword_10029848; // idb
int dword_1002984C; // weak int dword_1002984C; // weak
int dword_10029850; // weak int disclaim_cpp_float; // weak
int doom_cpp_float; // weak int doom_cpp_float; // weak
LPSTR dword_10029858; // idb LPSTR dword_10029858; // idb
int dword_1002985C; // weak int dword_1002985C; // weak

13
DiabloUI/_temp_funcs.h

@ -191,12 +191,13 @@ signed int __stdcall DirLink_1000632B(int a1, char *a2, char *a3);
HWND __fastcall DirLink_10006359(HWND hWnd, int a2, int height); HWND __fastcall DirLink_10006359(HWND hWnd, int a2, int height);
//signed int __stdcall UiBetaDisclaimer(int a1); BOOL __stdcall UiBetaDisclaimer(int a1);
int __stdcall disclaim_100063DA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); // idb LRESULT __stdcall disclaim_WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
void UNKCALL disclaim_100064C9(HWND hDlg); void __fastcall disclaim_DelDisclaimProcs(HWND hWnd);
int UNKCALL disclaim_100064F3(HWND hWnd); // idb void __fastcall disclaim_LoadDisclaimGFX(HWND hWnd);
int UNKCALL disclaim_10006552(void *arg); void __fastcall disclaim_FadeFromDisclaim(HWND hWnd);
signed int disclaim_10006571(); void __cdecl j_disclaim_cpp_init();
void __cdecl disclaim_cpp_init();
void __cdecl j_Doom_cpp_init(); void __cdecl j_Doom_cpp_init();

1
DiabloUI/diabloui.h

@ -56,6 +56,7 @@ BOOL __stdcall UiCreatePlayerDescription(_uiheroinfo *info, int mode, char *desc
void __stdcall UiSetupPlayerInfo(char *infostr, _uiheroinfo *pInfo, int type); void __stdcall UiSetupPlayerInfo(char *infostr, _uiheroinfo *pInfo, int type);
void __stdcall UiCreateGameCriteria(_uiheroinfo *pInfo, char *str); void __stdcall UiCreateGameCriteria(_uiheroinfo *pInfo, char *str);
BOOL __stdcall UiGetDefaultStats(int pclass, _uidefaultstats *pStats); BOOL __stdcall UiGetDefaultStats(int pclass, _uidefaultstats *pStats);
BOOL __stdcall UiBetaDisclaimer(int a1);
#ifdef __GNUC__ #ifdef __GNUC__
} }

41
DiabloUI/diabloui_gcc.def

@ -2,55 +2,56 @@ LIBRARY "DiabloUI"
EXPORTS EXPORTS
UiValidPlayerName @1 UiValidPlayerName @1
@UiValidPlayerName@4 @1 @UiValidPlayerName@4 @1 NONAME
UiAppActivate @2 UiAppActivate @2
UiAppActivate@4 @2 UiAppActivate@4 @2 NONAME
UiArtCallback @3 UiArtCallback @3
UiArtCallback@32 @3 UiArtCallback@32 @3 NONAME
UiAuthCallback @4 UiAuthCallback @4
UiAuthCallback@28 @4 UiAuthCallback@28 @4 NONAME
UiBetaDisclaimer @5 UiBetaDisclaimer @5
UiBetaDisclaimer@4 @5 NONAME
UiCategoryCallback @6 UiCategoryCallback @6
UiCategoryCallback@28 @6 UiCategoryCallback@28 @6 NONAME
UiCopyProtError @7 UiCopyProtError @7
UiCreateGameCallback @8 UiCreateGameCallback @8
UiCreateGameCallback@24 @8 UiCreateGameCallback@24 @8 NONAME
UiCreateGameCriteria @9 UiCreateGameCriteria @9
UiCreatePlayerDescription @10 UiCreatePlayerDescription @10
UiCreatePlayerDescription@12 @10 UiCreatePlayerDescription@12 @10 NONAME
UiCreditsDialog @11 UiCreditsDialog @11
UiCreditsDialog@4 @11 UiCreditsDialog@4 @11 NONAME
UiDestroy @12 UiDestroy @12
UiDrawDescCallback @13 UiDrawDescCallback @13
UiDrawDescCallback@32 @13 UiDrawDescCallback@32 @13 NONAME
UiGetDataCallback @14 UiGetDataCallback @14
UiGetDataCallback@20 @14 UiGetDataCallback@20 @14 NONAME
UiGetDefaultStats @15 UiGetDefaultStats @15
UiInitialize @16 UiInitialize @16
UiMainMenuDialog @17 UiMainMenuDialog @17
UiMainMenuDialog@16 @17 UiMainMenuDialog@16 @17 NONAME
UiMessageBoxCallback @18 UiMessageBoxCallback @18
UiMessageBoxCallback@16 @18 UiMessageBoxCallback@16 @18 NONAME
UiOnPaint @19 UiOnPaint @19
UiProfileCallback @20 UiProfileCallback @20
UiProfileDraw @21 UiProfileDraw @21
UiProfileGetString @22 UiProfileGetString @22
UiProgressDialog @23 UiProgressDialog @23
UiProgressDialog@20 @23 UiProgressDialog@20 @23 NONAME
UiSelHeroMultDialog @24 UiSelHeroMultDialog @24
UiSelHeroMultDialog@28 @24 UiSelHeroMultDialog@28 @24 NONAME
UiSelHeroSingDialog @25 UiSelHeroSingDialog @25
UiSelHeroSingDialog@28 @25 UiSelHeroSingDialog@28 @25 NONAME
UiSelectGame @26 UiSelectGame @26
UiSelectGame@24 @26 UiSelectGame@24 @26 NONAME
UiSelectProvider @27 UiSelectProvider @27
UiSelectProvider@24 @27 UiSelectProvider@24 @27 NONAME
UiSelectRegion @28 UiSelectRegion @28
UiSetBackgroundBitmap @29 UiSetBackgroundBitmap @29
UiSetSpawned @30 UiSetSpawned @30
UiSetupPlayerInfo @31 UiSetupPlayerInfo @31
UiSetupPlayerInfo@12 @31 UiSetupPlayerInfo@12 @31 NONAME
UiSoundCallback @32 UiSoundCallback @32
UiSoundCallback@12 @32 UiSoundCallback@12 @32 NONAME
UiTitleDialog @33 UiTitleDialog @33
UiTitleDialog@4 @33 UiTitleDialog@4 @33 NONAME

110
DiabloUI/disclaim.cpp

@ -1,20 +1,18 @@
// ref: 0x100063B3 // ref: 0x100063B3
signed int __stdcall UiBetaDisclaimer(int a1) { return 0; } BOOL __stdcall UiBetaDisclaimer(int a1)
/* { {
int v1; // eax int v1; // eax
v1 = SDrawGetFrameWindow(); v1 = (int)SDrawGetFrameWindow();
SDlgDialogBoxParam(hInstance, "DISCLAIMER_DIALOG", v1, disclaim_100063DA, a1); SDlgDialogBoxParam(ghUiInst, "DISCLAIMER_DIALOG", v1, disclaim_WndProc, a1);
return 1; return 1;
} */ }
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow(); // 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// ref: 0x100063DA // ref: 0x100063DA
int __stdcall disclaim_100063DA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { return 0; } LRESULT __stdcall disclaim_WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
/* { {
HWND v5; // eax HWND v5; // eax
int v6; // [esp+0h] [ebp-8h]
if ( Msg > 0x111 ) if ( Msg > 0x111 )
{ {
@ -23,15 +21,15 @@ int __stdcall disclaim_100063DA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPara
if ( Msg == 528 ) if ( Msg == 528 )
{ {
if ( (_WORD)wParam == 513 || (_WORD)wParam == 516 ) if ( (_WORD)wParam == 513 || (_WORD)wParam == 516 )
disclaim_10006552(hWnd); disclaim_FadeFromDisclaim(hWnd);
} }
else if ( Msg == 2024 ) else if ( Msg == 2024 )
{ {
if ( !Fade_1000739F() ) if ( !Fade_CheckRange5() )
Fade_100073FD(hWnd, v6); Fade_SetFadeTimer((int)hWnd);
return 0; return 0;
} }
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); return (LRESULT)SDlgDefDialogProc(hWnd, Msg, (HDC)wParam, (HWND)lParam);
} }
} }
else if ( Msg != 273 ) else if ( Msg != 273 )
@ -49,77 +47,63 @@ int __stdcall disclaim_100063DA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPara
} }
else if ( Msg == 272 ) else if ( Msg == 272 )
{ {
disclaim_100064F3(hWnd); disclaim_LoadDisclaimGFX(hWnd);
PostMessageA(hWnd, 0x7E8u, 0, 0); PostMessageA(hWnd, 0x7E8u, 0, 0);
return 1; return 1;
} }
} }
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); return (LRESULT)SDlgDefDialogProc(hWnd, Msg, (HDC)wParam, (HWND)lParam);
} }
goto LABEL_21; goto LABEL_21;
} }
disclaim_100064C9(hWnd); disclaim_DelDisclaimProcs(hWnd);
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); return (LRESULT)SDlgDefDialogProc(hWnd, Msg, (HDC)wParam, (HWND)lParam);
} }
LABEL_21: LABEL_21:
disclaim_10006552(hWnd); disclaim_FadeFromDisclaim(hWnd);
return 0; return 0;
} */ }
// 1001037C: using guessed type int __stdcall SDlgDefDialogProc(_DWORD, _DWORD, _DWORD, _DWORD);
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow(); // 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// ref: 0x100064C9 // ref: 0x100064C9
void UNKCALL disclaim_100064C9(HWND hDlg) { return; } void __fastcall disclaim_DelDisclaimProcs(HWND hWnd)
/* { {
HWND v1; // esi void **v2; // eax
_DWORD *v2; // eax
v1 = hDlg; Doom_DeleteFreeProcs(hWnd, disclaim_msgtbl2);
Doom_10006C53(hDlg, (int *)&unk_10022AA4); Doom_DeleteFreeProcs(hWnd, disclaim_msgtbl1);
Doom_10006C53(v1, (int *)&unk_10022A98); v2 = (void **)GetWindowLongA(hWnd, -21);
v2 = (_DWORD *)GetWindowLongA(v1, -21); local_FreeMemPtr(v2);
local_10007F72(v2); }
} */
// ref: 0x100064F3 // ref: 0x100064F3
int UNKCALL disclaim_100064F3(HWND hWnd) { return 0; } void __fastcall disclaim_LoadDisclaimGFX(HWND hWnd)
/* { {
HWND v1; // edi DWORD *v2; // eax MAPDST
int v2; // eax
int *v3; // esi
v1 = hWnd; v2 = local_AllocWndLongData();
v2 = local_10007F46();
v3 = (int *)v2;
if ( v2 ) if ( v2 )
{ {
SetWindowLongA(v1, -21, v2); SetWindowLongA(hWnd, -21, (LONG)v2);
local_10007944((int)v1, 0, &byte_10029448, -1, 1, (int)"ui_art\\disclaim.pcx", v3, v3 + 1, 0); local_LoadArtWithPal(hWnd, 0, &nullcharacter, -1, 1, "ui_art\\disclaim.pcx", (BYTE **)v2, v2 + 1, 0);
Fade_100073C5(v1, 0); Fade_NoInputAndArt(hWnd, 0);
} }
Doom_100068AB(v1, (int *)&unk_10022A98, 5); Doom_ParseWndProc3(hWnd, disclaim_msgtbl1, 5);
return Doom_100068AB(v1, (int *)&unk_10022AA4, 2); Doom_ParseWndProc3(hWnd, disclaim_msgtbl2, 2);
} */ }
// ref: 0x10006552 // ref: 0x10006552
int UNKCALL disclaim_10006552(void *arg) { return 0; } void __fastcall disclaim_FadeFromDisclaim(HWND hWnd)
/* { {
void *v1; // esi Fade_Range5SetZero();
Fade_UpdatePaletteRange(10);
v1 = arg; SDlgEndDialog(hWnd, (void *)HANDLE_FLAG_INHERIT);
Fade_100073B4(); }
Fade_100072BE(10);
return SDlgEndDialog(v1, 1);
} */
// 10010376: using guessed type int __stdcall SDlgEndDialog(_DWORD, _DWORD);
// ref: 0x10006571 // ref: 0x10006571
signed int disclaim_10006571() { return 0; } void __cdecl disclaim_cpp_init()
/* { {
signed int result; // eax disclaim_cpp_float = disclaim_cpp_float_value;
}
result = 2139095040; // 1001F418: using guessed type int disclaim_cpp_float_value;
dword_10029850 = 2139095040; // 10029850: using guessed type int disclaim_cpp_float;
return result;
} */
// 10029850: using guessed type int dword_10029850;

Loading…
Cancel
Save