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.
288 lines
7.4 KiB
288 lines
7.4 KiB
// ref: 0x10007458 |
|
int (__stdcall *UNKCALL Focus_10007458(void *arg))(_DWORD) { return 0; } |
|
/* { |
|
int v1; // esi |
|
int (__stdcall *result)(_DWORD); // eax |
|
|
|
v1 = (int)arg; |
|
if ( dword_10029CA4 && arg != (void *)dword_10029CA8 ) |
|
{ |
|
if ( dword_10029CAC ) |
|
result = TitleSnd_10010315(); |
|
dword_10029CA8 = v1; |
|
} |
|
return result; |
|
} */ |
|
// 10029CA4: using guessed type int dword_10029CA4; |
|
// 10029CA8: using guessed type int dword_10029CA8; |
|
// 10029CAC: using guessed type int dword_10029CAC; |
|
|
|
// ref: 0x10007482 |
|
int Focus_10007482() { return 0; } |
|
/* { |
|
return dword_10029CA4 != 0 ? dword_10029C98 : 0; |
|
} */ |
|
// 10029C98: using guessed type int dword_10029C98; |
|
// 10029CA4: using guessed type int dword_10029CA4; |
|
|
|
// ref: 0x10007492 |
|
_DWORD *__fastcall Focus_10007492(HWND hWnd, HWND a2) { return 0; } |
|
/* { |
|
_DWORD *v2; // edi |
|
_DWORD *result; // eax |
|
_DWORD *v4; // esi |
|
int v5; // eax |
|
int v6; // ST14_4 |
|
int v7; // eax |
|
struct tagRECT Rect; // [esp+8h] [ebp-18h] |
|
HWND v9; // [esp+18h] [ebp-8h] |
|
HWND hWnda; // [esp+1Ch] [ebp-4h] |
|
|
|
hWnda = a2; |
|
v9 = hWnd; |
|
v2 = (_DWORD *)GetWindowLongA(hWnd, -21); |
|
result = (_DWORD *)GetWindowLongA(hWnda, -21); |
|
v4 = result; |
|
if ( v2 && result && *v2 ) |
|
{ |
|
if ( *result ) |
|
{ |
|
GetWindowRect(hWnda, &Rect); |
|
ScreenToClient(v9, (LPPOINT)&Rect); |
|
ScreenToClient(v9, (LPPOINT)&Rect.right); |
|
SBltROP3(*v4, Rect.left + *v2 + Rect.top * v2[1], dword_10029C98, v4[2], v4[1], v2[1], 0, 13369376); |
|
v5 = v2[1]; |
|
v6 = v5; |
|
v7 = *v2 + Rect.top * v5; |
|
v9 = (HWND)v4[1]; |
|
SBltROP3( |
|
(char *)v9 + *v4 - dword_10029C98, |
|
(char *)v9 + v7 - dword_10029C98 + Rect.left, |
|
dword_10029C98, |
|
v4[2], |
|
v9, |
|
v6, |
|
0, |
|
13369376); |
|
result = (_DWORD *)Focus_10007566(hWnda); |
|
} |
|
} |
|
return result; |
|
} */ |
|
// 100103F4: using guessed type int __stdcall SBltROP3(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
// 10029C98: using guessed type int dword_10029C98; |
|
|
|
// ref: 0x10007566 |
|
BOOL UNKCALL Focus_10007566(HWND hWnd) { return 0; } |
|
/* { |
|
HWND v1; // edi |
|
struct tagRECT Rect; // [esp+8h] [ebp-10h] |
|
|
|
v1 = hWnd; |
|
GetClientRect(hWnd, &Rect); |
|
--Rect.bottom; |
|
Rect.left = --Rect.right - dword_10029C98; |
|
InvalidateRect(v1, &Rect, 0); |
|
Rect.left = 0; |
|
Rect.right = dword_10029C98 - 1; |
|
return InvalidateRect(v1, &Rect, 0); |
|
} */ |
|
// 10029C98: using guessed type int dword_10029C98; |
|
|
|
// ref: 0x100075B7 |
|
_DWORD *__fastcall Focus_100075B7(HWND hWnd, HWND a2) { return 0; } |
|
/* { |
|
HWND v2; // esi |
|
HWND v3; // edi |
|
_DWORD *result; // eax |
|
|
|
v2 = a2; |
|
v3 = hWnd; |
|
GetWindowLongA(a2, -12); |
|
result = Focus_10007492(v3, v2); |
|
dword_10029CAC = 1; |
|
return result; |
|
} */ |
|
// 10029CAC: using guessed type int dword_10029CAC; |
|
|
|
// ref: 0x100075DC |
|
int __fastcall Focus_100075DC(HWND hWnd, HWND a2) { return 0; } |
|
/* { |
|
HWND v2; // edi |
|
HWND v3; // ebx |
|
_DWORD *v4; // eax |
|
_DWORD *v5; // esi |
|
int v7; // edi |
|
struct tagRECT Rect; // [esp+Ch] [ebp-14h] |
|
HWND hWnda; // [esp+1Ch] [ebp-4h] |
|
|
|
v2 = hWnd; |
|
v3 = a2; |
|
hWnda = hWnd; |
|
if ( !dword_10029CA4 ) |
|
return 0; |
|
if ( !a2 ) |
|
return 0; |
|
GetWindowLongA(a2, -12); |
|
if ( v2 != GetParent(v3) ) |
|
return 0; |
|
Focus_10007492(v2, v3); |
|
v4 = (_DWORD *)GetWindowLongA(v3, -21); |
|
v5 = v4; |
|
if ( !v4 || !*v4 ) |
|
return 0; |
|
GetWindowRect(v3, &Rect); |
|
ScreenToClient(v2, (LPPOINT)&Rect); |
|
ScreenToClient(hWnda, (LPPOINT)&Rect.right); |
|
if ( dword_10029C78[dword_10029CB0] ) |
|
{ |
|
v7 = (v5[2] - dword_10029C9C) / 2; |
|
STransBlt(*v5, 0, v7, v5[1], dword_10029C78[dword_10029CB0]); |
|
STransBlt(*v5, v5[1] - dword_10029C98, v7, v5[1], dword_10029C78[dword_10029CB0]); |
|
Focus_10007566(v3); |
|
} |
|
if ( ++dword_10029CB0 >= 8 ) |
|
dword_10029CB0 = 0; |
|
return 1; |
|
} */ |
|
// 1001036A: using guessed type int __stdcall STransBlt(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
// 10029C98: using guessed type int dword_10029C98; |
|
// 10029C9C: using guessed type int dword_10029C9C; |
|
// 10029CA4: using guessed type int dword_10029CA4; |
|
// 10029CB0: using guessed type int dword_10029CB0; |
|
|
|
// ref: 0x100076C3 |
|
int Focus_100076C3() { return 0; } |
|
/* { |
|
int *v0; // esi |
|
int result; // eax |
|
|
|
v0 = dword_10029C78; |
|
do |
|
{ |
|
result = *v0; |
|
if ( *v0 ) |
|
{ |
|
result = STransDelete(*v0); |
|
*v0 = 0; |
|
} |
|
++v0; |
|
} |
|
while ( (signed int)v0 < (signed int)&dword_10029C98 ); |
|
dword_10029CAC = 0; |
|
dword_10029CA8 = 0; |
|
dword_10029CA4 = 0; |
|
return result; |
|
} */ |
|
// 1001033A: using guessed type int __stdcall STransDelete(_DWORD); |
|
// 10029C98: using guessed type int dword_10029C98; |
|
// 10029CA4: using guessed type int dword_10029CA4; |
|
// 10029CA8: using guessed type int dword_10029CA8; |
|
// 10029CAC: using guessed type int dword_10029CAC; |
|
|
|
// ref: 0x100076FA |
|
void Focus_100076FA() { return; } |
|
/* { |
|
dword_10029CAC = 0; |
|
dword_10029CA8 = 0; |
|
} */ |
|
// 10029CA8: using guessed type int dword_10029CA8; |
|
// 10029CAC: using guessed type int dword_10029CAC; |
|
|
|
// ref: 0x1000770E |
|
signed int Focus_1000770E() { return 0; } |
|
/* { |
|
signed int result; // eax |
|
|
|
result = 2139095040; |
|
dword_10029CA0 = 2139095040; |
|
return result; |
|
} */ |
|
// 10029CA0: using guessed type int dword_10029CA0; |
|
|
|
// ref: 0x10007719 |
|
void UNKCALL Focus_10007719(void *arg) { return; } |
|
/* { |
|
int *v1; // esi |
|
int v2; // ecx |
|
int v3; // eax |
|
int v4; // ebx |
|
int v5; // [esp+4h] [ebp-1Ch] |
|
int v6; // [esp+8h] [ebp-18h] |
|
int v7; // [esp+Ch] [ebp-14h] |
|
int v8; // [esp+10h] [ebp-10h] |
|
int v9; // [esp+14h] [ebp-Ch] |
|
int v10; // [esp+18h] [ebp-8h] |
|
int v11; // [esp+1Ch] [ebp-4h] |
|
|
|
if ( !dword_10029CA4 ) |
|
{ |
|
v11 = 0; |
|
dword_10029CAC = 0; |
|
dword_10029CA8 = 0; |
|
local_100078BE((int)arg, &v11, &v9); |
|
v1 = dword_10029C78; |
|
memset(dword_10029C78, 0, 0x20u); |
|
if ( v11 ) |
|
{ |
|
v2 = v9; |
|
dword_10029C98 = v9; |
|
v3 = v10 / 8; |
|
v4 = 0; |
|
dword_10029C9C = v10 / 8; |
|
while ( 1 ) |
|
{ |
|
v7 = v2 - 1; |
|
v6 = v4 * v3; |
|
v5 = 0; |
|
v8 = v3 + v4 * v3 - 1; |
|
STransCreateI(v11, v2, v3, 8, &v5, 16777466, v1); |
|
++v1; |
|
++v4; |
|
if ( (signed int)v1 >= (signed int)&dword_10029C98 ) |
|
break; |
|
v3 = dword_10029C9C; |
|
v2 = dword_10029C98; |
|
} |
|
SMemFree(v11, "C:\\Src\\Diablo\\DiabloUI\\Focus.cpp", 246, 0); |
|
} |
|
dword_10029CB0 = 0; |
|
dword_10029CA4 = 1; |
|
} |
|
} */ |
|
// 10010340: using guessed type int __stdcall SMemFree(_DWORD, _DWORD, _DWORD, _DWORD); |
|
// 10010346: using guessed type int __stdcall STransCreateI(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
// 10029C98: using guessed type int dword_10029C98; |
|
// 10029C9C: using guessed type int dword_10029C9C; |
|
// 10029CA4: using guessed type int dword_10029CA4; |
|
// 10029CA8: using guessed type int dword_10029CA8; |
|
// 10029CAC: using guessed type int dword_10029CAC; |
|
// 10029CB0: using guessed type int dword_10029CB0; |
|
|
|
// ref: 0x100077E9 |
|
int __fastcall Focus_100077E9(int a1, void *a2, HWND hWnd) { return 0; } |
|
/* { |
|
int v3; // esi |
|
|
|
v3 = a1; |
|
Focus_10007719(a2); |
|
return SDlgSetTimer(v3, 1, 55, Focus_10007804); |
|
} */ |
|
// 10010412: using guessed type int __stdcall SDlgSetTimer(_DWORD, _DWORD, _DWORD, _DWORD); |
|
|
|
// ref: 0x10007804 |
|
int __stdcall Focus_10007804(HWND hWnd, int a2, int a3, int a4) { return 0; } |
|
/* { |
|
HWND v4; // eax |
|
|
|
v4 = GetFocus(); |
|
return Focus_100075DC(hWnd, v4); |
|
} */ |
|
|
|
// ref: 0x10007818 |
|
int UNKCALL Focus_10007818(void *arg) { return 0; } |
|
/* { |
|
SDlgKillTimer(arg, 1); |
|
return Focus_100076C3(); |
|
} */ |
|
// 10010418: using guessed type int __stdcall SDlgKillTimer(_DWORD, _DWORD);
|
|
|