1
0
Fork 0
mirror of https://github.com/galaxyhaxz/devilution synced 2025-02-22 12:34:59 +00:00
devilution/2020_03_31/DiabloUI/selconn.cpp
PrisonOfMirrors b720183846 initial up
2020-11-28 18:24:54 -06:00

1146 lines
24 KiB
C++

// ref: 0x1000A082
void *SelConn_1000A082() { return 0; }
/* {
return SMemAlloc(272, "C:\\Src\\Diablo\\DiabloUI\\SelConn.cpp", 124, 0);
} */
// 10010364: using guessed type int __stdcall SMemAlloc(_DWORD, _DWORD, _DWORD, _DWORD);
// ref: 0x1000A09B
signed int SelConn_1000A09B() { return 0; }
/* {
signed int result; // eax
result = 2139095040;
dword_1002A350 = 2139095040;
return result;
} */
// 1002A350: using guessed type int dword_1002A350;
// ref: 0x1000A0A6
int __stdcall SelConn_1000A0A6(HWND hWnd, UINT Msg, WPARAM wParam, unsigned int lParam) { return 0; }
/* {
HWND v4; // eax
HWND v6; // eax
char *v7; // [esp+0h] [ebp-Ch]
int v8; // [esp+4h] [ebp-8h]
if ( Msg > 0x201 )
{
if ( Msg == 514 )
{
v6 = GetDlgItem(hWnd, 1105);
if ( !Sbar_100099C0(v6) )
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
goto LABEL_27;
}
if ( Msg != 515 )
{
if ( Msg != 2024 )
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
if ( !Fade_1000739F() )
Fade_100073FD(hWnd, (int)v7);
return 0;
}
LABEL_25:
SelConn_1000AE59(hWnd, (unsigned short)lParam, lParam >> 16);
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
}
if ( Msg == 513 )
goto LABEL_25;
if ( Msg == 2 )
{
SelConn_1000A43A(hWnd);
BNetGW_10002A07(&unk_10029480);
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
}
if ( Msg <= 0x103 )
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
if ( Msg <= 0x105 )
{
v4 = (HWND)SDrawGetFrameWindow();
SendMessageA(v4, Msg, wParam, lParam);
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
}
if ( Msg == 272 )
{
BNetGW_100028C2(&unk_10029480);
SelConn_1000A4E4(hWnd, v7, v8);
PostMessageA(hWnd, 0x7E8u, 0, 0);
return 0;
}
if ( Msg == 273 )
{
if ( HIWORD(wParam) == 7 )
{
Focus_100075B7(hWnd, (HWND)lParam);
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
}
if ( HIWORD(wParam) != 6 )
{
if ( wParam == 327681 )
{
SelConn_1000AC30(hWnd);
}
else if ( (_WORD)wParam == 2 )
{
SelConn_1000AC07((int)hWnd, 2);
}
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
}
Focus_10007458((void *)lParam);
Focus_100075DC(hWnd, (HWND)lParam);
SelConn_1000A226(hWnd, (unsigned short)wParam);
LABEL_27:
SelConn_1000A3E2(hWnd);
}
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam);
} */
// 1001037C: using guessed type int __stdcall SDlgDefDialogProc(_DWORD, _DWORD, _DWORD, _DWORD);
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// ref: 0x1000A226
HWND __fastcall SelConn_1000A226(HWND hDlg, int nIDDlgItem) { return 0; }
/* {
HWND v2; // edi
HWND result; // eax
int v4; // ebx
int v5; // eax
HWND v6; // ebp
unsigned int v7; // eax
int v8; // eax
const char *v9; // ebx
int v10; // eax
HWND v11; // eax
HWND v12; // eax
HWND v13; // eax
HWND v14; // eax
HWND v15; // eax
HWND v16; // eax
HWND v17; // eax
HWND v18; // eax
HWND hWnd; // [esp+10h] [ebp-8Ch]
CHAR Buffer; // [esp+14h] [ebp-88h]
CHAR v21; // [esp+54h] [ebp-48h]
v2 = hDlg;
result = GetDlgItem(hDlg, nIDDlgItem);
if ( result )
{
result = (HWND)GetWindowLongA(result, -21);
if ( result )
{
v4 = *((_DWORD *)result + 3);
if ( v4 )
{
result = GetDlgItem(v2, 1081);
if ( result )
{
v5 = GetWindowLongA(result, -21);
local_10007FA4(v5, (const char *)(v4 + 144));
result = GetDlgItem(v2, 1076);
v6 = result;
if ( result )
{
LoadStringA(hInstance, 0x21u, &Buffer, 63);
if ( dword_1002A370 )
{
v7 = *(_DWORD *)(dword_1002A370 + 24);
if ( v7 >= *(_DWORD *)(v4 + 12) )
v7 = *(_DWORD *)(v4 + 12);
wsprintfA(&v21, &Buffer, v7);
}
else
{
wsprintfA(&v21, &Buffer, *(_DWORD *)(v4 + 12));
}
v8 = GetWindowLongA(v6, -21);
local_10007FA4(v8, &v21);
if ( *(_DWORD *)(v4 + 8) == 1112425812 )
{
hWnd = GetDlgItem(v2, 1144);
v9 = BNetGW_10002B21(&unk_10029480, dword_1002948C);
if ( !v9 )
v9 = &byte_10029448;
if ( hWnd )
{
v10 = GetWindowLongA(hWnd, -21);
local_10007FA4(v10, v9);
}
v11 = GetDlgItem(v2, 1143);
ShowWindow(v11, 5);
v12 = GetDlgItem(v2, 1147);
ShowWindow(v12, 0);
v13 = GetDlgItem(v2, 1144);
ShowWindow(v13, 5);
v14 = GetDlgItem(v2, 1145);
ShowWindow(v14, 5);
dword_1002A354 = 1;
}
else
{
v15 = GetDlgItem(v2, 1143);
ShowWindow(v15, 0);
v16 = GetDlgItem(v2, 1147);
ShowWindow(v16, 5);
v17 = GetDlgItem(v2, 1144);
ShowWindow(v17, 0);
v18 = GetDlgItem(v2, 1145);
ShowWindow(v18, 0);
dword_1002A354 = 0;
}
result = (HWND)Doom_10006A13(v2, (int *)&unk_10022EF0, 1);
}
}
}
}
}
return result;
} */
// 1002948C: using guessed type int dword_1002948C;
// 1002A354: using guessed type int dword_1002A354;
// 1002A370: using guessed type int dword_1002A370;
// ref: 0x1000A3E2
HWND UNKCALL SelConn_1000A3E2(HWND hDlg) { return 0; }
/* {
HWND v1; // esi
int v2; // eax
v1 = hDlg;
v2 = SelConn_1000A3FF();
return Sbar_10009A99(v1, 1105, dword_1002A360, v2);
} */
// ref: 0x1000A3FF
int SelConn_1000A3FF() { return 0; }
/* {
HWND v0; // eax
LONG v1; // eax
_DWORD *v2; // ecx
_DWORD *v3; // eax
int v5; // edx
v0 = GetFocus();
if ( !v0 )
return 0;
v1 = GetWindowLongA(v0, -21);
if ( !v1 )
return 0;
v2 = (_DWORD *)dword_1002A35C;
if ( !dword_1002A35C )
return 0;
v3 = *(_DWORD **)(v1 + 12);
if ( !v3 )
return 0;
v5 = 0;
do
{
if ( v2 == v3 )
break;
v2 = (_DWORD *)*v2;
++v5;
}
while ( v2 );
return v5;
} */
// 1002A35C: using guessed type int dword_1002A35C;
// ref: 0x1000A43A
void UNKCALL SelConn_1000A43A(HWND hDlg) { return; }
/* {
HWND v1; // esi
_DWORD *v2; // eax
v1 = hDlg;
Title_100100E7(hDlg);
Focus_10007818(v1);
Sbar_10009CD2(v1, 1105);
SelConn_1000A4B9((_DWORD *)dword_1002A35C);
Doom_10006C53(v1, &dword_10022F18);
Doom_10006C53(v1, (int *)&unk_10022F08);
Doom_10006C53(v1, (int *)&unk_10022ED8);
Doom_10006C53(v1, (int *)&unk_10022EE4);
Doom_10006C53(v1, (int *)&unk_10022F00);
Doom_10006C53(v1, (int *)&unk_10022EF0);
v2 = (_DWORD *)GetWindowLongA(v1, -21);
local_10007F72(v2);
} */
// 10022F18: using guessed type int dword_10022F18;
// 1002A35C: using guessed type int dword_1002A35C;
// ref: 0x1000A4B9
int __fastcall SelConn_1000A4B9(_DWORD *a1) { return 0; }
/* {
_DWORD *v1; // esi
int result; // eax
if ( a1 )
{
do
{
v1 = (_DWORD *)*a1;
result = SelConn_1000A4CD(a1);
a1 = v1;
}
while ( v1 );
}
return result;
} */
// ref: 0x1000A4CD
int UNKCALL SelConn_1000A4CD(void *arg) { return 0; }
/* {
int result; // eax
if ( arg )
result = SMemFree(arg, "C:\\Src\\Diablo\\DiabloUI\\SelConn.cpp", 130, 0);
return result;
} */
// 10010340: using guessed type int __stdcall SMemFree(_DWORD, _DWORD, _DWORD, _DWORD);
// ref: 0x1000A4E4
HWND UNKCALL SelConn_1000A4E4(HWND hWnd, char *a2, int a3) { return 0; }
/* {
HWND v3; // esi
HWND v4; // ST1C_4
int v5; // eax
int *v6; // edi
HWND result; // eax
HWND v8; // eax
HWND v9; // [esp+0h] [ebp-Ch]
v3 = hWnd;
SelConn_1000A6EC(hWnd);
Focus_100077E9((int)v3, "ui_art\\focus16.pcx", v9);
Title_1001009E(v3, (int)"ui_art\\smlogo.pcx", v4);
v5 = local_10007F46();
v6 = (int *)v5;
if ( v5 )
{
SetWindowLongA(v3, -21, v5);
local_10007944((int)v3, 0, &byte_10029448, -1, 1, (int)"ui_art\\selconn.pcx", v6, v6 + 1, 0);
Fade_100073C5(v3, 1);
}
Doom_100068AB(v3, (int *)&unk_10022EF0, 1);
Doom_100068AB(v3, (int *)&unk_10022F00, 1);
Doom_100068AB(v3, (int *)&unk_10022ED8, 5);
Doom_100068AB(v3, (int *)&unk_10022EE4, 3);
Doom_1000658C(v3, (int *)&unk_10022F08, 4, 0);
Doom_1000658C(v3, &dword_10022F18, 0, 1);
dword_1002A360 = 0;
dword_1002A368 = dword_10029488;
dword_1002A35C = 0;
SNetEnumProviders(0, SelConn_1000A5F3);
SelConn_1000A670(v3, (const char *)dword_1002A35C);
result = Sbar_10009BF1(v3, 1105);
if ( dword_1002A360 <= 6 )
{
v8 = GetDlgItem(v3, 1105);
result = (HWND)ShowWindow(v8, 0);
}
return result;
} */
// 10010472: using guessed type int __stdcall SNetEnumProviders(_DWORD, _DWORD);
// 10022F18: using guessed type int dword_10022F18;
// 10029488: using guessed type int dword_10029488;
// 1002A35C: using guessed type int dword_1002A35C;
// 1002A368: using guessed type int dword_1002A368;
// ref: 0x1000A5F3
signed int __stdcall SelConn_1000A5F3(int a1, char *a2, char *a3, int a4) { return 0; }
/* {
int v4; // esi
int v6; // edx
_DWORD *v7; // eax
v4 = SelConn_1000A082();
if ( !v4 || a1 == 1112425812 && !dword_1002A368 )
return 0;
*(_DWORD *)v4 = 0;
v6 = *(_DWORD *)(a4 + 4);
*(_DWORD *)(v4 + 8) = a1;
*(_DWORD *)(v4 + 4) = v6 & 2;
*(_DWORD *)(v4 + 12) = *(_DWORD *)(a4 + 16);
strcpy((char *)(v4 + 16), a2);
strcpy((char *)(v4 + 144), a3);
v7 = SelRegn_1000EF56(dword_1002A35C, (_DWORD *)v4);
++dword_1002A360;
dword_1002A35C = (int)v7;
return 1;
} */
// 1002A35C: using guessed type int dword_1002A35C;
// 1002A368: using guessed type int dword_1002A368;
// ref: 0x1000A670
int __fastcall SelConn_1000A670(HWND a1, const char *a2) { return 0; }
/* {
const char *v2; // edi
int *v3; // ebx
HWND v4; // eax
HWND v5; // esi
int v6; // eax
HWND hDlg; // [esp+8h] [ebp-4h]
v2 = a2;
hDlg = a1;
v3 = &dword_10022F18;
if ( dword_10022F18 )
{
do
{
v4 = GetDlgItem(hDlg, *v3);
v5 = v4;
if ( v4 )
{
if ( v2 )
{
EnableWindow(v4, 1);
v6 = GetWindowLongA(v5, -21);
if ( v6 )
{
*(_DWORD *)(v6 + 12) = v2;
local_10007FA4(v6, v2 + 16);
v2 = *(const char **)v2;
}
}
else
{
EnableWindow(v4, 0);
}
}
++v3;
}
while ( *v3 );
}
return Doom_1000680A(hDlg, &dword_10022F18, 0, 1);
} */
// 10022F18: using guessed type int dword_10022F18;
// ref: 0x1000A6EC
void UNKCALL SelConn_1000A6EC(HWND hDlg) { return; }
/* {
HWND v1; // ebx
int *v2; // edi
HWND v3; // eax
HWND v4; // esi
void *v5; // eax
v1 = hDlg;
v2 = &dword_10022F18;
if ( dword_10022F18 )
{
do
{
v3 = GetDlgItem(v1, *v2);
v4 = v3;
if ( v3 )
{
v5 = (void *)GetWindowLongA(v3, -4);
SetPropA(v4, "UIOLDPROC", v5);
SetWindowLongA(v4, -4, (LONG)SelConn_1000A73E);
}
++v2;
}
while ( *v2 );
}
} */
// 10022F18: using guessed type int dword_10022F18;
// ref: 0x1000A73E
LRESULT __stdcall SelConn_1000A73E(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { return 0; }
/* {
LRESULT (__stdcall *v4)(HWND, UINT, WPARAM, LPARAM); // edi
HWND v5; // eax
WPARAM v7; // [esp-8h] [ebp-14h]
v4 = (LRESULT (__stdcall *)(HWND, UINT, WPARAM, LPARAM))GetPropA(hWnd, "UIOLDPROC");
switch ( Msg )
{
case 2u:
RemovePropA(hWnd, "UIOLDPROC");
if ( !v4 )
return DefWindowProcA(hWnd, Msg, wParam, lParam);
SetWindowLongA(hWnd, -4, (LONG)v4);
break;
case 0xFu:
local_10007C95(hWnd);
return 0;
case 0x87u:
return 4;
case 0x100u:
if ( wParam > 0x21 )
{
if ( wParam == 34 )
{
SelConn_1000A948(hWnd);
}
else if ( wParam > 0x24 )
{
if ( wParam <= 0x26 )
{
SelConn_1000AB83(hWnd);
}
else if ( wParam <= 0x28 )
{
SelConn_1000AAEB(hWnd);
}
}
return 0;
}
if ( wParam == 33 )
{
SelConn_1000AA3B(hWnd);
return 0;
}
if ( wParam == 9 )
{
if ( GetKeyState(16) >= 0 )
SelConn_1000A866(hWnd);
else
SelConn_1000A8D7(hWnd);
return 0;
}
if ( wParam != 13 )
{
if ( wParam == 27 )
{
v7 = 2;
goto LABEL_13;
}
if ( wParam != 32 )
return 0;
}
v7 = 1;
LABEL_13:
v5 = GetParent(hWnd);
SendMessageA(v5, 0x111u, v7, 0);
return 0;
}
if ( v4 )
return CallWindowProcA(v4, hWnd, Msg, wParam, lParam);
return DefWindowProcA(hWnd, Msg, wParam, lParam);
} */
// ref: 0x1000A866
HWND UNKCALL SelConn_1000A866(HWND hWnd) { return 0; }
/* {
HWND v1; // edi
HWND v2; // ebx
int nIDDlgItem[1066]; // [esp+0h] [ebp-10CCh]
int v5; // [esp+10A8h] [ebp-24h]
int v6; // [esp+10B4h] [ebp-18h]
int v7; // [esp+10B8h] [ebp-14h]
int v8; // [esp+10BCh] [ebp-10h]
int v9; // [esp+10C0h] [ebp-Ch]
int v10; // [esp+10C4h] [ebp-8h]
int v11; // [esp+10C8h] [ebp-4h]
v1 = hWnd;
v6 = 1070;
v7 = 1071;
v8 = 1072;
v9 = 1073;
v10 = 1074;
v11 = 1069;
v2 = GetParent(hWnd);
do
{
v5 = nIDDlgItem[GetWindowLongA(v1, -12)];
v1 = GetDlgItem(v2, v5);
}
while ( !IsWindowEnabled(v1) );
return SetFocus(v1);
} */
// 1000A866: using guessed type int nIDDlgItem[1066];
// ref: 0x1000A8D7
HWND UNKCALL SelConn_1000A8D7(HWND hWnd) { return 0; }
/* {
HWND v1; // edi
HWND v2; // ebx
int nIDDlgItem[1066]; // [esp+0h] [ebp-10CCh]
int v5; // [esp+10A8h] [ebp-24h]
int v6; // [esp+10B4h] [ebp-18h]
int v7; // [esp+10B8h] [ebp-14h]
int v8; // [esp+10BCh] [ebp-10h]
int v9; // [esp+10C0h] [ebp-Ch]
int v10; // [esp+10C4h] [ebp-8h]
int v11; // [esp+10C8h] [ebp-4h]
v1 = hWnd;
v6 = 1074;
v7 = 1069;
v8 = 1070;
v9 = 1071;
v10 = 1072;
v11 = 1073;
v2 = GetParent(hWnd);
do
{
v5 = nIDDlgItem[GetWindowLongA(v1, -12)];
v1 = GetDlgItem(v2, v5);
}
while ( !IsWindowEnabled(v1) );
return SetFocus(v1);
} */
// 1000A8D7: using guessed type int nIDDlgItem[1066];
// ref: 0x1000A948
HWND UNKCALL SelConn_1000A948(HWND hWnd) { return 0; }
/* {
HWND v1; // ebp
HWND result; // eax
HWND v3; // esi
HWND v4; // ebx
HWND v5; // eax
_DWORD *v6; // eax
int v7; // eax
const char *v8; // ebx
int v9; // eax
v1 = hWnd;
result = GetParent(hWnd);
v3 = result;
if ( result )
{
result = GetDlgItem(result, 1069);
v4 = result;
if ( result )
{
v5 = GetDlgItem(v3, 1074);
result = (HWND)GetWindowLongA(v5, -21);
if ( result )
{
v6 = (_DWORD *)*((_DWORD *)result + 3);
if ( v6 && *v6 )
{
v7 = SelConn_1000A9F3(v4) + 6;
if ( v7 > dword_1002A360 - 6 )
v7 = dword_1002A360 - 6;
result = (HWND)SelConn_1000AA28(v7);
v8 = (const char *)result;
if ( result )
{
TitleSnd_10010315();
SelConn_1000A670(v3, v8);
v9 = GetWindowLongA(v1, -12);
SelConn_1000A226(v3, v9);
result = SelConn_1000A3E2(v3);
}
}
else
{
result = SelConn_1000A8D7(v4);
}
}
}
}
return result;
} */
// ref: 0x1000A9F3
int UNKCALL SelConn_1000A9F3(HWND hWnd) { return 0; }
/* {
LONG v1; // eax
_DWORD *v2; // ecx
_DWORD *v3; // eax
int v5; // edx
if ( !hWnd )
return 0;
v1 = GetWindowLongA(hWnd, -21);
if ( !v1 )
return 0;
v2 = (_DWORD *)dword_1002A35C;
if ( !dword_1002A35C )
return 0;
v3 = *(_DWORD **)(v1 + 12);
if ( !v3 )
return 0;
v5 = 0;
do
{
if ( v2 == v3 )
break;
v2 = (_DWORD *)*v2;
++v5;
}
while ( v2 );
return v5;
} */
// 1002A35C: using guessed type int dword_1002A35C;
// ref: 0x1000AA28
_DWORD *__fastcall SelConn_1000AA28(int a1) { return 0; }
/* {
_DWORD *result; // eax
result = (_DWORD *)dword_1002A35C;
while ( result && a1 )
{
result = (_DWORD *)*result;
--a1;
}
return result;
} */
// 1002A35C: using guessed type int dword_1002A35C;
// ref: 0x1000AA3B
HWND UNKCALL SelConn_1000AA3B(HWND hWnd) { return 0; }
/* {
HWND result; // eax
HWND v2; // esi
HWND v3; // edi
HWND v4; // eax
int v5; // eax
const char *v6; // edi
int v7; // eax
HWND hWnda; // [esp+10h] [ebp-4h]
hWnda = hWnd;
result = GetParent(hWnd);
v2 = result;
if ( result )
{
result = GetDlgItem(result, 1069);
v3 = result;
if ( result )
{
result = (HWND)GetWindowLongA(result, -21);
if ( result )
{
result = (HWND)*((_DWORD *)result + 3);
if ( result )
{
if ( result == (HWND)dword_1002A35C )
{
v4 = GetDlgItem(v2, 1074);
result = SelConn_1000A866(v4);
}
else
{
v5 = SelConn_1000A9F3(v3) - 6;
if ( v5 < 0 )
v5 = 0;
result = (HWND)SelConn_1000AA28(v5);
v6 = (const char *)result;
if ( result )
{
TitleSnd_10010315();
SelConn_1000A670(v2, v6);
v7 = GetWindowLongA(hWnda, -12);
SelConn_1000A226(v2, v7);
result = SelConn_1000A3E2(v2);
}
}
}
}
}
}
return result;
} */
// 1002A35C: using guessed type int dword_1002A35C;
// ref: 0x1000AAEB
HWND UNKCALL SelConn_1000AAEB(HWND hWnd) { return 0; }
/* {
HWND v1; // edi
HWND result; // eax
HWND v3; // eax
const char *v4; // ebp
HWND v5; // eax
int v6; // ebx
HWND v7; // eax
HWND v8; // eax
v1 = hWnd;
result = (HWND)GetWindowLongA(hWnd, -21);
if ( result )
{
result = (HWND)*((_DWORD *)result + 3);
if ( result )
{
if ( *(_DWORD *)result )
{
if ( GetWindowLongA(v1, -12) >= 1074 )
{
v3 = GetParent(v1);
result = GetDlgItem(v3, 1070);
if ( result )
{
result = (HWND)GetWindowLongA(result, -21);
if ( result )
{
v4 = (const char *)*((_DWORD *)result + 3);
if ( v4 )
{
TitleSnd_10010315();
v5 = GetParent(v1);
SelConn_1000A670(v5, v4);
v6 = GetWindowLongA(v1, -12);
v7 = GetParent(v1);
SelConn_1000A226(v7, v6);
v8 = GetParent(v1);
result = SelConn_1000A3E2(v8);
}
}
}
}
else
{
result = SelConn_1000A866(v1);
}
}
}
}
return result;
} */
// ref: 0x1000AB83
HWND UNKCALL SelConn_1000AB83(HWND hWnd) { return 0; }
/* {
HWND v1; // edi
HWND result; // eax
const char *v3; // ebx
HWND v4; // eax
int v5; // ebx
HWND v6; // eax
HWND v7; // eax
v1 = hWnd;
if ( GetWindowLongA(hWnd, -12) > 1069 )
return SelConn_1000A8D7(v1);
result = (HWND)GetWindowLongA(v1, -21);
if ( result )
{
result = (HWND)*((_DWORD *)result + 3);
if ( result )
{
v3 = (const char *)dword_1002A35C;
if ( result != (HWND)dword_1002A35C )
{
while ( v3 && *(HWND *)v3 != result )
v3 = *(const char **)v3;
TitleSnd_10010315();
v4 = GetParent(v1);
SelConn_1000A670(v4, v3);
v5 = GetWindowLongA(v1, -12);
v6 = GetParent(v1);
SelConn_1000A226(v6, v5);
v7 = GetParent(v1);
result = SelConn_1000A3E2(v7);
}
}
}
return result;
} */
// 1002A35C: using guessed type int dword_1002A35C;
// ref: 0x1000AC07
int __fastcall SelConn_1000AC07(int a1, int a2) { return 0; }
/* {
int v2; // esi
int v3; // edi
v2 = a2;
v3 = a1;
if ( a2 == 2 )
TitleSnd_1001031F();
Fade_100073B4();
Fade_100072BE(10);
return SDlgEndDialog(v3, v2);
} */
// 10010376: using guessed type int __stdcall SDlgEndDialog(_DWORD, _DWORD);
// ref: 0x1000AC30
int UNKCALL SelConn_1000AC30(HWND arg) { return 0; }
/* {
int v1; // esi
int v2; // edx
int result; // eax
int v4; // eax
int v5; // ecx
UINT v6; // [esp-4h] [ebp-8h]
v1 = (int)arg;
if ( SelConn_1000AC9E(arg) )
{
v2 = 1;
return SelConn_1000AC07(v1, v2);
}
if ( SErrGetLastError() == -2062548873 )
{
dword_1002A374 = 1;
v2 = 0;
return SelConn_1000AC07(v1, v2);
}
result = SelGame_1000B67E();
switch ( result )
{
case 1230002254:
goto LABEL_17;
case 1297040461:
v4 = SErrGetLastError();
v5 = v1;
if ( v4 == 1222 )
v6 = 46;
else
v6 = 53;
goto LABEL_14;
case 1396916812:
LABEL_17:
v6 = 44;
v5 = v1;
LABEL_14:
result = SelConn_1000AE19(v5, v6);
break;
}
return result;
} */
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError();
// 1002A374: using guessed type int dword_1002A374;
// ref: 0x1000AC9E
int UNKCALL SelConn_1000AC9E(HWND hWnd) { return 0; }
/* {
HWND v1; // ebx
HWND v2; // eax
LONG v3; // eax
int v4; // esi
char *v6; // ST10_4
int v7; // ST08_4
int v8; // eax
int v9; // esi
char *v10; // ST14_4
int v11; // ST0C_4
void *v12; // eax
char v13; // [esp+8h] [ebp-8Ch]
HWND v14; // [esp+10h] [ebp-84h]
char v15; // [esp+58h] [ebp-3Ch]
v1 = hWnd;
TitleSnd_1001031F();
SelGame_1000B677(0);
SelGame_1000B66A(0);
v2 = GetFocus();
v3 = GetWindowLongA(v2, -21);
if ( !v3 )
return 0;
v4 = *(_DWORD *)(v3 + 12);
if ( !v4 )
return 0;
SelGame_1000B677(*(void **)(v4 + 8));
SelGame_1000B66A(*(void **)(v4 + 4));
if ( SelGame_1000B67E() == 1112425812 )
{
BNetGW_10002A07(&unk_10029480);
BNetGW_100028C2(&unk_10029480);
}
if ( dword_1002A364 )
qmemcpy(&v13, (const void *)dword_1002A364, 0x50u);
v14 = v1;
if ( dword_1002A370 )
qmemcpy(&v15, (const void *)dword_1002A370, 0x3Cu);
SelConn_1000ADA8(v1);
v6 = dword_1002A358;
v7 = dword_1002A34C;
v8 = SelGame_1000B67E();
v9 = SNetInitializeProvider(v8, &v15, v7, &v13, v6);
if ( v9 )
{
v10 = dword_1002A358;
v11 = dword_1002A34C;
v12 = (void *)SelGame_1000B67E();
v9 = SelModem_1000E435(v12, (int)&v15, v11, &v13, v10);
}
else
{
SNetDestroy();
}
if ( !v9 )
SelConn_1000ADD0(v1);
return v9;
} */
// 10010478: using guessed type _DWORD __stdcall SNetDestroy();
// 1001047E: using guessed type int __stdcall SNetInitializeProvider(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 1002A364: using guessed type int dword_1002A364;
// 1002A370: using guessed type int dword_1002A370;
// ref: 0x1000ADA8
int UNKCALL SelConn_1000ADA8(HWND hWnd) { return 0; }
/* {
HWND v1; // esi
v1 = hWnd;
Fade_100072BE(10);
local_1000811B();
ShowWindow(v1, 0);
Title_100100E7(v1);
return Focus_10007818(v1);
} */
// ref: 0x1000ADD0
BOOL UNKCALL SelConn_1000ADD0(HWND hWnd) { return 0; }
/* {
HWND v1; // esi
HWND v2; // ST10_4
HWND v4; // [esp+0h] [ebp-4h]
v1 = hWnd;
Focus_100077E9((int)hWnd, "ui_art\\focus16.pcx", v4);
Title_1001009E(v1, (int)"ui_art\\smlogo.pcx", v2);
local_100080F1();
Fade_100073C5(v1, 0);
PostMessageA(v1, 0x7E8u, 0, 0);
ShowWindow(v1, 5);
return UpdateWindow(v1);
} */
// ref: 0x1000AE19
int __fastcall SelConn_1000AE19(int a1, UINT a2) { return 0; }
/* {
UINT v2; // esi
int v3; // edi
int result; // eax
CHAR Buffer; // [esp+8h] [ebp-80h]
v2 = a2;
v3 = a1;
result = SErrGetLastError();
if ( result != 1223 )
{
LoadStringA(hInstance, v2, &Buffer, 127);
result = SelYesNo_1000FD39(v3, &Buffer, 0, 0);
}
return result;
} */
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError();
// ref: 0x1000AE59
HWND __fastcall SelConn_1000AE59(HWND hWnd, int a2, int a3) { return 0; }
/* {
int v3; // ebp
int v4; // ebx
int v5; // ST0C_4
HWND v6; // esi
int v7; // ST08_4
HWND v8; // eax
HWND result; // eax
HWND v10; // eax
HWND v11; // eax
HWND v12; // eax
HWND v13; // eax
int v14; // eax
int v15; // eax
int v16; // eax
HWND v17; // eax
HWND v18; // eax
HWND v19; // eax
HWND v20; // eax
v3 = a3;
v4 = a2;
v5 = a3;
v6 = hWnd;
v7 = a2;
v8 = GetDlgItem(hWnd, 1056);
if ( local_10007C3B(v6, v8, v7, v5) )
return (HWND)SelConn_1000AC30(v6);
v10 = GetDlgItem(v6, 1054);
if ( local_10007C3B(v6, v10, v4, v3) )
return (HWND)SelConn_1000AC07((int)v6, 2);
if ( dword_1002A354 && (v11 = GetDlgItem(v6, 1145), local_10007C3B(v6, v11, v4, v3)) )
{
SelConn_1000ADA8(v6);
TitleSnd_1001031F();
UiSelectRegion(&a3);
result = (HWND)SelConn_1000ADD0(v6);
}
else
{
v12 = GetDlgItem(v6, 1105);
result = (HWND)local_10007C3B(v6, v12, v4, v3);
if ( result )
{
v13 = GetDlgItem(v6, 1105);
v14 = Sbar_100099DC(v13, v4, v3) - 1;
if ( v14 )
{
v15 = v14 - 1;
if ( v15 )
{
v16 = v15 - 1;
if ( v16 )
{
result = (HWND)(v16 - 1);
if ( !result )
{
v17 = GetFocus();
result = SelConn_1000A948(v17);
}
}
else
{
v18 = GetFocus();
result = SelConn_1000AA3B(v18);
}
}
else
{
v19 = GetFocus();
result = SelConn_1000AAEB(v19);
}
}
else
{
v20 = GetFocus();
result = SelConn_1000AB83(v20);
}
}
}
return result;
} */
// 1002A354: using guessed type int dword_1002A354;
// ref: 0x1000AF69
int __stdcall UiSelectProvider(int a1, _SNETPROGRAMDATA *client_info, _SNETPLAYERDATA *user_info, _SNETUIDATA *ui_info, _SNETVERSIONDATA *file_info, DWORD *type) { return 0; }
/* {
int v6; // eax
int v7; // ebx
dword_1002A374 = 0;
dword_1002A36C = a1;
dword_1002A370 = a2;
dword_1002A34C = a3;
dword_1002A364 = a4;
dword_1002A358 = a5;
artfont_10001159();
v6 = SDrawGetFrameWindow();
v7 = SDlgDialogBoxParam(hInstance, "SELCONNECT_DIALOG", v6, SelConn_1000A0A6, 0);
if ( a6 )
*a6 = SelGame_1000B67E();
if ( dword_1002A374 )
{
artfont_100010C8();
local_100078B6();
SErrSetLastError(-2062548873);
}
else
{
if ( v7 == 1 )
{
artfont_100010C8();
local_100078B6();
return 1;
}
SErrSetLastError(1223);
}
return 0;
} */
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow();
// 1001041E: using guessed type int __stdcall SErrSetLastError(_DWORD);
// 1002A364: using guessed type int dword_1002A364;
// 1002A36C: using guessed type int dword_1002A36C;
// 1002A370: using guessed type int dword_1002A370;
// 1002A374: using guessed type int dword_1002A374;