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

// 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);