1
0
Fork 0
mirror of https://github.com/galaxyhaxz/devilution synced 2025-02-22 12:34:59 +00:00
devilution/2020_03_31/DiabloUI/disclaim.cpp
PrisonOfMirrors b720183846 initial up
2020-11-28 18:24:54 -06:00

109 lines
2.5 KiB
C++

// ref: 0x100063B3
BOOL __stdcall UiBetaDisclaimer(int a1)
{
int v1; // eax
v1 = (int)SDrawGetFrameWindow(NULL);
SDlgDialogBoxParam(ghUiInst, "DISCLAIMER_DIALOG", v1, disclaim_WndProc, a1);
return 1;
}
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// ref: 0x100063DA
LRESULT __stdcall disclaim_WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
HWND v5; // eax
if ( Msg > 0x111 )
{
if ( Msg != 513 && Msg != 516 )
{
if ( Msg == 528 )
{
if ( (_WORD)wParam == 513 || (_WORD)wParam == 516 )
disclaim_FadeFromDisclaim(hWnd);
}
else if ( Msg == 2024 )
{
if ( !Fade_CheckRange5() )
Fade_SetFadeTimer((int)hWnd);
return 0;
}
return (LRESULT)SDlgDefDialogProc(hWnd, Msg, (HDC)wParam, (HWND)lParam);
}
}
else if ( Msg != 273 )
{
if ( Msg != 2 )
{
if ( Msg != 256 )
{
if ( Msg > 0x103 )
{
if ( Msg <= 0x105 )
{
v5 = (HWND)SDrawGetFrameWindow(NULL);
SendMessageA(v5, Msg, wParam, lParam);
}
else if ( Msg == 272 )
{
disclaim_LoadDisclaimGFX(hWnd);
PostMessageA(hWnd, 0x7E8u, 0, 0);
return 1;
}
}
return (LRESULT)SDlgDefDialogProc(hWnd, Msg, (HDC)wParam, (HWND)lParam);
}
goto LABEL_21;
}
disclaim_DelDisclaimProcs(hWnd);
return (LRESULT)SDlgDefDialogProc(hWnd, Msg, (HDC)wParam, (HWND)lParam);
}
LABEL_21:
disclaim_FadeFromDisclaim(hWnd);
return 0;
}
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// ref: 0x100064C9
void __fastcall disclaim_DelDisclaimProcs(HWND hWnd)
{
void **v2; // eax
Doom_DeleteFreeProcs(hWnd, disclaim_msgtbl2);
Doom_DeleteFreeProcs(hWnd, disclaim_msgtbl1);
v2 = (void **)GetWindowLongA(hWnd, -21);
local_FreeMemPtr(v2);
}
// ref: 0x100064F3
void __fastcall disclaim_LoadDisclaimGFX(HWND hWnd)
{
DWORD *v2; // eax MAPDST
v2 = local_AllocWndLongData();
if ( v2 )
{
SetWindowLongA(hWnd, -21, (LONG)v2);
local_LoadArtWithPal(hWnd, 0, &nullcharacter, -1, 1, "ui_art\\disclaim.pcx", (BYTE **)v2, v2 + 1, 0);
Fade_NoInputAndArt(hWnd, 0);
}
Doom_ParseWndProc3(hWnd, disclaim_msgtbl1, 5);
Doom_ParseWndProc3(hWnd, disclaim_msgtbl2, 2);
}
// ref: 0x10006552
void __fastcall disclaim_FadeFromDisclaim(HWND hWnd)
{
Fade_Range5SetZero();
Fade_UpdatePaletteRange(10);
SDlgEndDialog(hWnd, (void *)HANDLE_FLAG_INHERIT);
}
// ref: 0x10006571
void __cdecl disclaim_cpp_init()
{
disclaim_cpp_float = disclaim_cpp_float_value;
}
// 1001F418: using guessed type int disclaim_cpp_float_value;
// 10029850: using guessed type int disclaim_cpp_float;