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.
277 lines
6.8 KiB
277 lines
6.8 KiB
|
8 years ago
|
// ref: 0x100099B5
|
||
|
|
signed int Sbar_100099B5() { return 0; }
|
||
|
|
/* {
|
||
|
|
signed int result; // eax
|
||
|
|
|
||
|
|
result = 2139095040;
|
||
|
|
dword_1002A338 = 2139095040;
|
||
|
|
return result;
|
||
|
|
} */
|
||
|
|
// 1002A338: using guessed type int dword_1002A338;
|
||
|
|
|
||
|
|
// ref: 0x100099C0
|
||
|
|
int UNKCALL Sbar_100099C0(HWND hWnd) { return 0; }
|
||
|
|
/* {
|
||
|
|
_DWORD *v1; // eax
|
||
|
|
|
||
|
|
v1 = (_DWORD *)GetWindowLongA(hWnd, -21);
|
||
|
|
if ( !v1 || !*v1 )
|
||
|
|
return 0;
|
||
|
|
*v1 = 0;
|
||
|
|
return 1;
|
||
|
|
} */
|
||
|
|
|
||
|
|
// ref: 0x100099DC
|
||
|
|
int __fastcall Sbar_100099DC(HWND hWnd, LONG a2, int a3) { return 0; }
|
||
|
|
/* {
|
||
|
|
HWND v3; // esi
|
||
|
|
_DWORD *v4; // eax
|
||
|
|
_DWORD *v5; // esi
|
||
|
|
int result; // eax
|
||
|
|
signed int v7; // ecx
|
||
|
|
LONG v8; // ebx
|
||
|
|
LONG v9; // edi
|
||
|
|
signed int v10; // [esp-4h] [ebp-1Ch]
|
||
|
|
struct tagPOINT Point; // [esp+Ch] [ebp-Ch]
|
||
|
|
HWND hWnda; // [esp+14h] [ebp-4h]
|
||
|
|
|
||
|
|
v3 = hWnd;
|
||
|
|
hWnda = hWnd;
|
||
|
|
Point.x = a2;
|
||
|
|
Point.y = a3;
|
||
|
|
if ( !hWnd )
|
||
|
|
return 0;
|
||
|
|
if ( !IsWindowVisible(hWnd) )
|
||
|
|
return 0;
|
||
|
|
v4 = (_DWORD *)GetWindowLongA(v3, -21);
|
||
|
|
v5 = v4;
|
||
|
|
if ( !v4 )
|
||
|
|
return 0;
|
||
|
|
v7 = v4[13];
|
||
|
|
if ( v7 <= 1 )
|
||
|
|
v8 = 22;
|
||
|
|
else
|
||
|
|
v8 = v4[14] * (v4[3] - v4[9] - 44) / (v7 - 1) + 22;
|
||
|
|
v9 = v8 + v4[9];
|
||
|
|
ScreenToClient(hWnda, &Point);
|
||
|
|
if ( Point.y >= 22 )
|
||
|
|
{
|
||
|
|
if ( Point.y >= v8 )
|
||
|
|
{
|
||
|
|
if ( Point.y >= v9 )
|
||
|
|
{
|
||
|
|
if ( Point.y >= v5[3] - 22 )
|
||
|
|
{
|
||
|
|
*v5 = 4;
|
||
|
|
v10 = 2;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
*v5 = 8;
|
||
|
|
v10 = 4;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
*v5 = 16;
|
||
|
|
v10 = 5;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
*v5 = 2;
|
||
|
|
v10 = 3;
|
||
|
|
}
|
||
|
|
result = v10;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
result = 1;
|
||
|
|
*v5 = 1;
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
} */
|
||
|
|
|
||
|
|
// ref: 0x10009A99
|
||
|
|
HWND __fastcall Sbar_10009A99(HWND hDlg, int nIDDlgItem, int a3, int a4) { return 0; }
|
||
|
|
/* {
|
||
|
|
HWND result; // eax
|
||
|
|
HWND v5; // esi
|
||
|
|
bool v6; // zf
|
||
|
|
int v7; // eax
|
||
|
|
int v8; // [esp+Ch] [ebp-24h]
|
||
|
|
int v9; // [esp+10h] [ebp-20h]
|
||
|
|
int v10; // [esp+14h] [ebp-1Ch]
|
||
|
|
int v11; // [esp+18h] [ebp-18h]
|
||
|
|
int v12; // [esp+1Ch] [ebp-14h]
|
||
|
|
int v13; // [esp+20h] [ebp-10h]
|
||
|
|
int v14; // [esp+24h] [ebp-Ch]
|
||
|
|
int v15; // [esp+28h] [ebp-8h]
|
||
|
|
HWND hWnd; // [esp+2Ch] [ebp-4h]
|
||
|
|
|
||
|
|
result = GetDlgItem(hDlg, nIDDlgItem);
|
||
|
|
hWnd = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
result = (HWND)GetWindowLongA(result, -21);
|
||
|
|
v5 = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
if ( *((_DWORD *)result + 1) )
|
||
|
|
{
|
||
|
|
v6 = *((_DWORD *)result + 4) == 0;
|
||
|
|
*((_DWORD *)result + 13) = a3;
|
||
|
|
result = (HWND)a4;
|
||
|
|
*((_DWORD *)v5 + 14) = a4;
|
||
|
|
if ( !v6 )
|
||
|
|
{
|
||
|
|
v12 = 0;
|
||
|
|
v8 = 0;
|
||
|
|
v13 = 0;
|
||
|
|
v9 = 0;
|
||
|
|
v10 = *((_DWORD *)v5 + 2) - 1;
|
||
|
|
v11 = *((_DWORD *)v5 + 3) - 1;
|
||
|
|
v14 = *((_DWORD *)v5 + 2) - 1;
|
||
|
|
v15 = *((_DWORD *)v5 + 6) - 1;
|
||
|
|
result = (HWND)SBltROP3Tiled(
|
||
|
|
*((_DWORD *)v5 + 1),
|
||
|
|
&v8,
|
||
|
|
*((_DWORD *)v5 + 2),
|
||
|
|
*((_DWORD *)v5 + 4),
|
||
|
|
&v12,
|
||
|
|
*((_DWORD *)v5 + 5),
|
||
|
|
0,
|
||
|
|
0,
|
||
|
|
0,
|
||
|
|
13369376);
|
||
|
|
if ( *((_DWORD *)v5 + 7) )
|
||
|
|
{
|
||
|
|
if ( a3 <= 1 )
|
||
|
|
v7 = 22;
|
||
|
|
else
|
||
|
|
v7 = a4 * (*((_DWORD *)v5 + 3) - *((_DWORD *)v5 + 9) - 44) / (a3 - 1) + 22;
|
||
|
|
SBltROP3(
|
||
|
|
v7 * *((_DWORD *)v5 + 2) + *((_DWORD *)v5 + 1) + 3,
|
||
|
|
*((_DWORD *)v5 + 7),
|
||
|
|
18,
|
||
|
|
*((_DWORD *)v5 + 9),
|
||
|
|
*((_DWORD *)v5 + 2),
|
||
|
|
*((_DWORD *)v5 + 8),
|
||
|
|
0,
|
||
|
|
13369376);
|
||
|
|
SBltROP3(
|
||
|
|
*((_DWORD *)v5 + 1),
|
||
|
|
*((_DWORD *)v5 + 10) + 22 * (~*(_BYTE *)v5 & 1) * *((_DWORD *)v5 + 11),
|
||
|
|
*((_DWORD *)v5 + 2),
|
||
|
|
22,
|
||
|
|
*((_DWORD *)v5 + 2),
|
||
|
|
*((_DWORD *)v5 + 11),
|
||
|
|
0,
|
||
|
|
13369376);
|
||
|
|
SBltROP3(
|
||
|
|
*((_DWORD *)v5 + 1) + *((_DWORD *)v5 + 2) * (*((_DWORD *)v5 + 3) - 22),
|
||
|
|
*((_DWORD *)v5 + 10) + 22 * ((~*(_BYTE *)v5 & 4 | 8u) >> 2) * *((_DWORD *)v5 + 11),
|
||
|
|
*((_DWORD *)v5 + 2),
|
||
|
|
22,
|
||
|
|
*((_DWORD *)v5 + 2),
|
||
|
|
*((_DWORD *)v5 + 11),
|
||
|
|
0,
|
||
|
|
13369376);
|
||
|
|
result = (HWND)InvalidateRect(hWnd, 0, 0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
} */
|
||
|
|
// 100103F4: using guessed type int __stdcall SBltROP3(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
|
||
|
|
// 1001046C: using guessed type int __stdcall SBltROP3Tiled(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
|
||
|
|
|
||
|
|
// ref: 0x10009BF1
|
||
|
|
HWND __fastcall Sbar_10009BF1(HWND hDlg, int nIDDlgItem) { return 0; }
|
||
|
|
/* {
|
||
|
|
HWND result; // eax
|
||
|
|
HWND v3; // esi
|
||
|
|
struct tagRECT Rect; // [esp+Ch] [ebp-14h]
|
||
|
|
HWND hWnd; // [esp+1Ch] [ebp-4h]
|
||
|
|
|
||
|
|
result = GetDlgItem(hDlg, nIDDlgItem);
|
||
|
|
hWnd = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
result = (HWND)SMemAlloc(60, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 221, 0);
|
||
|
|
v3 = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
SetWindowLongA(hWnd, -21, (LONG)result);
|
||
|
|
*(_DWORD *)v3 = 0;
|
||
|
|
GetClientRect(hWnd, &Rect);
|
||
|
|
*(_DWORD *)(v3 + 2) = Rect.right;
|
||
|
|
*(_DWORD *)(v3 + 3) = Rect.bottom;
|
||
|
|
result = (HWND)SMemAlloc(Rect.right * Rect.bottom, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 230, 0);
|
||
|
|
*((_DWORD *)v3 + 1) = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
SDlgSetBitmapI(hWnd, 0, &byte_10029448, -1, 1, result, 0, *((_DWORD *)v3 + 2), *((_DWORD *)v3 + 3), -1);
|
||
|
|
local_100078BE((int)"ui_art\\sb_bg.pcx", (int *)v3 + 4, (_DWORD *)v3 + 5);
|
||
|
|
local_100078BE((int)"ui_art\\sb_thumb.pcx", (int *)v3 + 7, (_DWORD *)v3 + 8);
|
||
|
|
result = (HWND)local_100078BE((int)"ui_art\\sb_arrow.pcx", (int *)v3 + 10, (_DWORD *)v3 + 11);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
} */
|
||
|
|
// 10010364: using guessed type int __stdcall SMemAlloc(_DWORD, _DWORD, _DWORD, _DWORD);
|
||
|
|
// 10010400: using guessed type int __stdcall SDlgSetBitmapI(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
|
||
|
|
|
||
|
|
// ref: 0x10009CC7
|
||
|
|
signed int Sbar_10009CC7() { return 0; }
|
||
|
|
/* {
|
||
|
|
signed int result; // eax
|
||
|
|
|
||
|
|
result = 2139095040;
|
||
|
|
dword_1002A344 = 2139095040;
|
||
|
|
return result;
|
||
|
|
} */
|
||
|
|
// 1002A344: using guessed type int dword_1002A344;
|
||
|
|
|
||
|
|
// ref: 0x10009CD2
|
||
|
|
HWND __fastcall Sbar_10009CD2(HWND hDlg, int nIDDlgItem) { return 0; }
|
||
|
|
/* {
|
||
|
|
HWND result; // eax
|
||
|
|
HWND v3; // ebp
|
||
|
|
HWND v4; // esi
|
||
|
|
int v5; // eax
|
||
|
|
int v6; // eax
|
||
|
|
int v7; // eax
|
||
|
|
int v8; // eax
|
||
|
|
|
||
|
|
result = GetDlgItem(hDlg, nIDDlgItem);
|
||
|
|
v3 = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
result = (HWND)GetWindowLongA(result, -21);
|
||
|
|
v4 = result;
|
||
|
|
if ( result )
|
||
|
|
{
|
||
|
|
v5 = *((_DWORD *)result + 1);
|
||
|
|
if ( v5 )
|
||
|
|
SMemFree(v5, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 267, 0);
|
||
|
|
v6 = *((_DWORD *)v4 + 4);
|
||
|
|
if ( v6 )
|
||
|
|
SMemFree(v6, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 269, 0);
|
||
|
|
v7 = *((_DWORD *)v4 + 7);
|
||
|
|
if ( v7 )
|
||
|
|
SMemFree(v7, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 271, 0);
|
||
|
|
v8 = *((_DWORD *)v4 + 10);
|
||
|
|
if ( v8 )
|
||
|
|
SMemFree(v8, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 273, 0);
|
||
|
|
SMemFree(v4, "C:\\Src\\Diablo\\DiabloUI\\Sbar.cpp", 275, 0);
|
||
|
|
result = (HWND)SetWindowLongA(v3, -21, 0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
} */
|
||
|
|
// 10010340: using guessed type int __stdcall SMemFree(_DWORD, _DWORD, _DWORD, _DWORD);
|