You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.3 KiB
140 lines
3.3 KiB
// ref: 0x1000722B |
|
void __fastcall Fade_ApplyPaletteRange(int range1, int range2) |
|
{ |
|
tagPALETTEENTRY *v4; // eax MAPDST |
|
BYTE *v6; // esi |
|
BYTE v7; // al |
|
|
|
v4 = local_GetArtPalEntry(0); |
|
if (range1 == range2) { |
|
memcpy(fadepal, v4, 0x400u); |
|
} else if (range2) { |
|
v6 = &fadepal[0].peGreen; |
|
do { |
|
v7 = range2 * v4->peRed / range1; |
|
++v4; |
|
*(v6 - 1) = v7; |
|
*v6 = range2 * v4[-1].peGreen / range1; |
|
v6 += 4; |
|
*(v6 - 3) = range2 * v4[-1].peBlue / range1; |
|
} while ((signed int)v6 < (signed int)&fadepal[256].peGreen); |
|
} else { |
|
memcpy(fadepal, v4, 0x400u); |
|
local_ClearPalette(fadepal); |
|
} |
|
SDrawUpdatePalette(0, 0x100u, fadepal, 1); |
|
} |
|
|
|
// ref: 0x100072BE |
|
void __fastcall Fade_UpdatePaletteRange(int range) |
|
{ |
|
tagPALETTEENTRY *v2; // eax |
|
tagPALETTEENTRY *v3; // edi |
|
BYTE *v4; // ecx |
|
BYTE v5; // al |
|
HPALETTE v6; // ebx |
|
int v7; // [esp+10h] [ebp-4h] |
|
|
|
v2 = local_GetArtPalEntry(0); |
|
memcpy(fadepal, v2, 0x400u); |
|
if (range > 0) { |
|
v7 = range; |
|
do { |
|
v3 = local_GetArtPalEntry(0); |
|
v4 = &fadepal[0].peGreen; |
|
do { |
|
v5 = v3->peRed / range; |
|
++v3; |
|
*(v4 - 1) -= v5; |
|
*v4 -= v3[-1].peGreen / range; |
|
v4 += 4; |
|
*(v4 - 3) -= v3[-1].peBlue / range; |
|
} while ((signed int)v4 < (signed int)&fadepal[256].peGreen); |
|
SDrawUpdatePalette(0, 0x100u, fadepal, 1); |
|
--v7; |
|
} while (v7); |
|
} |
|
local_ClearPalette(fadepal); |
|
SDrawUpdatePalette(0, 0x100u, fadepal, 1); |
|
local_SetCursorDefault(); |
|
SDrawClearSurface(0); |
|
v6 = (HPALETTE)GetStockObject(15); |
|
GetPaletteEntries(v6, 0, 0xAu, fadepal); |
|
GetPaletteEntries(v6, 0xAu, 0xAu, &fadepal[246]); |
|
SDrawUpdatePalette(0, 0x100u, fadepal, 1); |
|
} |
|
// 1001043C: using guessed type int __stdcall SDrawClearSurface(_DWORD); |
|
|
|
// ref: 0x1000739F |
|
BOOL __cdecl Fade_CheckRange5() |
|
{ |
|
BOOL result; // eax |
|
|
|
result = 0; |
|
if (sgbIsFading) { |
|
if (sgbFadeRange <= 5) |
|
result = 1; |
|
} |
|
return result; |
|
} |
|
// 10029C70: using guessed type int sgbIsFading; |
|
|
|
// ref: 0x100073B4 |
|
void __cdecl Fade_Range5SetZero() |
|
{ |
|
if (Fade_CheckRange5()) |
|
sgbIsFading = 0; |
|
} |
|
// 10029C70: using guessed type int sgbIsFading; |
|
|
|
// ref: 0x100073C5 |
|
void __fastcall Fade_NoInputAndArt(HWND hWnd, BOOL bShowCurs) |
|
{ |
|
HWND v3; // eax |
|
|
|
v3 = GetParent(hWnd); |
|
local_DisableKeyWaitMouse(v3); |
|
if (bShowCurs) |
|
local_SetCursorArt(); |
|
sgbIsFading = 0; |
|
sgbFadeRange = 0; |
|
} |
|
// 10029C70: using guessed type int sgbIsFading; |
|
|
|
// ref: 0x100073EF |
|
void __fastcall Fade_SetInputWindow(HWND hWnd) |
|
{ |
|
HWND v1; // eax |
|
|
|
v1 = GetParent(hWnd); |
|
local_DisableKeyWaitMouse(v1); |
|
} |
|
|
|
// ref: 0x100073FD |
|
void __fastcall Fade_SetFadeTimer(int nTime) |
|
{ |
|
if (!sgbIsFading) { |
|
SDlgSetTimer(nTime, 16, 50, Fade_TimerFunctionDlg); |
|
sgbIsFading = 1; |
|
} |
|
} |
|
// 10029C70: using guessed type int sgbIsFading; |
|
|
|
// ref: 0x10007420 |
|
void __stdcall Fade_TimerFunctionDlg(int a1, int a2, int a3, int a4) |
|
{ |
|
if (sgbFadeRange > 5) { |
|
SDlgKillTimer(a1, 16); |
|
} else { |
|
Fade_ApplyPaletteRange(5, sgbFadeRange); |
|
++sgbFadeRange; |
|
} |
|
} |
|
|
|
// ref: 0x1000744D |
|
void __cdecl Fade_cpp_init() |
|
{ |
|
fade_cpp_float = fade_cpp_float_value; |
|
} |
|
// 1001F428: using guessed type int fade_cpp_float_value; |
|
// 10029868: using guessed type int fade_cpp_float;
|
|
|