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.
289 lines
7.4 KiB
289 lines
7.4 KiB
|
8 years ago
|
// 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);
|