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.
477 lines
13 KiB
477 lines
13 KiB
// ref: 0x1000855D |
|
int Modem_1000855D() { return 0; } |
|
/* { |
|
return dword_1002A124; |
|
} */ |
|
// 1002A124: using guessed type int dword_1002A124; |
|
|
|
// ref: 0x10008563 |
|
HWND __fastcall Modem_10008563(HWND hDlg, const char *a2, int a3) { return 0; } |
|
/* { |
|
HWND v3; // esi |
|
const char *v4; // ebp |
|
HWND result; // eax |
|
|
|
v3 = hDlg; |
|
v4 = a2; |
|
result = GetDlgItem(hDlg, 1108); |
|
if ( result ) |
|
{ |
|
result = (HWND)GetWindowLongA(result, -21); |
|
if ( result ) |
|
{ |
|
local_10007FA4((int)result, (const char *)a3); |
|
Doom_10006A13(v3, (int *)&unk_10022C5C, 1); |
|
result = GetDlgItem(v3, 1080); |
|
if ( result ) |
|
{ |
|
result = (HWND)GetWindowLongA(result, -21); |
|
if ( result ) |
|
{ |
|
local_10007FA4((int)result, v4); |
|
result = (HWND)Doom_10006A13(v3, (int *)&unk_10022C54, 3); |
|
} |
|
} |
|
} |
|
} |
|
return result; |
|
} */ |
|
|
|
// ref: 0x100085D8 |
|
int __stdcall Modem_100085D8(int a1, char *a2, char *a3) { return 0; } |
|
/* { |
|
dword_1002A150 = a1; |
|
strcpy(&byte_1002A154, a2); |
|
strcpy(&byte_1002A1D4, a3); |
|
return 1; |
|
} */ |
|
// 1002A150: using guessed type int dword_1002A150; |
|
|
|
// ref: 0x10008606 |
|
BOOL Modem_10008606() { return 0; } |
|
/* { |
|
BOOL result; // eax |
|
|
|
dword_1002A150 = 0; |
|
byte_1002A154 = 0; |
|
byte_1002A1D4 = 0; |
|
if ( SNetEnumGames(0, 0, Modem_100085D8, 0) ) |
|
result = dword_1002A150 != 0; |
|
else |
|
result = 0; |
|
return result; |
|
} */ |
|
// 10010436: using guessed type int __stdcall SNetEnumGames(_DWORD, _DWORD, _DWORD, _DWORD); |
|
// 1002A150: using guessed type int dword_1002A150; |
|
|
|
// ref: 0x1000863D |
|
char *Modem_1000863D() { return 0; } |
|
/* { |
|
return &byte_1002A154; |
|
} */ |
|
|
|
// ref: 0x10008648 |
|
signed int Modem_10008648() { return 0; } |
|
/* { |
|
signed int result; // eax |
|
|
|
result = 2139095040; |
|
dword_1002A128 = 2139095040; |
|
return result; |
|
} */ |
|
// 1002A128: using guessed type int dword_1002A128; |
|
|
|
// ref: 0x10008653 |
|
int Modem_10008653() { return 0; } |
|
/* { |
|
return dword_1002A148; |
|
} */ |
|
// 1002A148: using guessed type int dword_1002A148; |
|
|
|
// ref: 0x10008659 |
|
int Modem_10008659() { return 0; } |
|
/* { |
|
return dword_1002A134; |
|
} */ |
|
// 1002A134: using guessed type int dword_1002A134; |
|
|
|
// ref: 0x1000865F |
|
int UNKCALL Modem_1000865F(char *arg) { return 0; } |
|
/* { |
|
char v1; // al |
|
int result; // eax |
|
|
|
while ( 1 ) |
|
{ |
|
v1 = *arg; |
|
if ( !*arg || (unsigned char)v1 >= 0x30u && (unsigned char)v1 <= 0x39u ) |
|
break; |
|
++arg; |
|
} |
|
if ( *arg ) |
|
result = atoi(arg); |
|
else |
|
result = 0; |
|
return result; |
|
} */ |
|
|
|
// ref: 0x10008680 |
|
BOOL __fastcall Modem_10008680(int a1, int a2, int a3, _DWORD *a4, int a5, int playerid) { return 0; } |
|
/* { |
|
int v6; // esi |
|
|
|
dword_1002A13C = a3; |
|
dword_1002A138 = a2; |
|
dword_1002A144 = a5; |
|
dword_1002A14C = a4; |
|
gnModemPlayerid = playerid; |
|
artfont_10001159(); |
|
v6 = SDlgDialogBoxParam(hInstance, "MODEM_DIALOG", a4[2], Modem_100086DE, 0); |
|
artfont_100010C8(); |
|
return v6 == 1; |
|
} */ |
|
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
// 1002A138: using guessed type int dword_1002A138; |
|
// 1002A13C: using guessed type int dword_1002A13C; |
|
// 1002A140: using guessed type int gnModemPlayerid; |
|
// 1002A144: using guessed type int dword_1002A144; |
|
|
|
// ref: 0x100086DE |
|
int __stdcall Modem_100086DE(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { return 0; } |
|
/* { |
|
HWND v4; // eax |
|
int v6; // [esp+0h] [ebp-8h] |
|
|
|
if ( Msg > 0x7E8 ) |
|
{ |
|
switch ( Msg ) |
|
{ |
|
case 0xBD0u: |
|
Modem_100088DB(hWnd); |
|
return 0; |
|
case 0xBD1u: |
|
Modem_10008BB7(hWnd); |
|
return 0; |
|
case 0xBD2u: |
|
Modem_10008BFE(hWnd); |
|
return 0; |
|
} |
|
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); |
|
} |
|
if ( Msg == 2024 ) |
|
{ |
|
if ( !Fade_1000739F() ) |
|
Fade_100073FD(hWnd, v6); |
|
return 0; |
|
} |
|
if ( Msg == 2 ) |
|
{ |
|
Modem_1000879E(hWnd); |
|
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); |
|
} |
|
if ( Msg <= 0x103 ) |
|
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); |
|
if ( Msg <= 0x105 ) |
|
{ |
|
v4 = (HWND)SDrawGetFrameWindow(NULL); |
|
SendMessageA(v4, Msg, wParam, lParam); |
|
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); |
|
} |
|
if ( Msg != 272 ) |
|
return SDlgDefDialogProc(hWnd, Msg, wParam, lParam); |
|
Modem_100087DB(hWnd); |
|
PostMessageA(hWnd, 0x7E8u, 0, 0); |
|
return 0; |
|
} */ |
|
// 1001037C: using guessed type int __stdcall SDlgDefDialogProc(_DWORD, _DWORD, _DWORD, _DWORD); |
|
// 10010382: using guessed type _DWORD __stdcall SDrawGetFrameWindow(); |
|
|
|
// ref: 0x1000879E |
|
void **UNKCALL Modem_1000879E(HWND hDlg) { return 0; } |
|
/* { |
|
HWND v1; // esi |
|
_DWORD *v2; // eax |
|
|
|
v1 = hDlg; |
|
Doom_10006C53(hDlg, (int *)&unk_10022C5C); |
|
Doom_10006C53(v1, (int *)&unk_10022C54); |
|
Doom_10006C53(v1, (int *)&unk_10022C4C); |
|
v2 = (_DWORD *)GetWindowLongA(v1, -21); |
|
local_10007F72(v2); |
|
return Title_100100E7(v1); |
|
} */ |
|
|
|
// ref: 0x100087DB |
|
BOOL UNKCALL Modem_100087DB(HWND hWnd) { return 0; } |
|
/* { |
|
HWND v1; // esi |
|
int v2; // eax |
|
int *v3; // edi |
|
HWND v5; // [esp+0h] [ebp-10h] |
|
|
|
v1 = hWnd; |
|
Title_1001009E(hWnd, (int)"ui_art\\smlogo.pcx", v5); |
|
v2 = local_10007F46(); |
|
v3 = (int *)v2; |
|
if ( v2 ) |
|
{ |
|
SetWindowLongA(v1, -21, v2); |
|
local_10007944((int)v1, 0, &byte_10029448, -1, 1, (int)"ui_art\\selgame.pcx", v3, v3 + 1, 0); |
|
Fade_100073C5(v1, 1); |
|
} |
|
Doom_100068AB(v1, (int *)&unk_10022C4C, 5); |
|
Doom_100068AB(v1, (int *)&unk_10022C54, 3); |
|
Doom_100068AB(v1, (int *)&unk_10022C5C, 1); |
|
Modem_10008888(); |
|
if ( dword_1002A124 ) |
|
return PostMessageA(v1, 0xBD2u, 0, 0); |
|
dword_1002A134 = 1; |
|
dword_1002A130 = 1; |
|
return PostMessageA(v1, 0xBD0u, 0, 0); |
|
} */ |
|
// 1002A124: using guessed type int dword_1002A124; |
|
// 1002A130: using guessed type int dword_1002A130; |
|
// 1002A134: using guessed type int dword_1002A134; |
|
|
|
// ref: 0x10008888 |
|
int Modem_10008888() { return 0; } |
|
/* { |
|
int result; // eax |
|
|
|
dword_1002A150 = 0; |
|
byte_1002A154 = 0; |
|
byte_1002A1D4 = 0; |
|
result = SNetEnumGames(0, 0, Modem_100085D8, 0); |
|
if ( result ) |
|
{ |
|
dword_1002A124 = 1; |
|
} |
|
else |
|
{ |
|
result = SErrGetLastError(); |
|
if ( result == 1222 ) |
|
{ |
|
dword_1002A124 = 0; |
|
result = 1; |
|
dword_1002A134 = 1; |
|
dword_1002A130 = 1; |
|
} |
|
} |
|
return result; |
|
} */ |
|
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError(); |
|
// 10010436: using guessed type int __stdcall SNetEnumGames(_DWORD, _DWORD, _DWORD, _DWORD); |
|
// 1002A124: using guessed type int dword_1002A124; |
|
// 1002A130: using guessed type int dword_1002A130; |
|
// 1002A134: using guessed type int dword_1002A134; |
|
// 1002A150: using guessed type int dword_1002A150; |
|
|
|
// ref: 0x100088DB |
|
int UNKCALL Modem_100088DB(HWND hWnd) { return 0; } |
|
/* { |
|
HWND v1; // esi |
|
int v2; // eax |
|
int v3; // eax |
|
int v5; // [esp+4h] [ebp-20h] |
|
|
|
v1 = hWnd; |
|
v2 = SDlgDialogBoxParam(hInstance, "SELDIAL_DIALOG", hWnd, SelDial_1000B0CF, &v5) - 3; |
|
if ( !v2 ) |
|
return Modem_1000893D(v1); |
|
v3 = v2 - 1; |
|
if ( !v3 ) |
|
return Modem_10008A38(v1, (int)&v5); |
|
if ( v3 == 1 ) |
|
return PostMessageA(v1, 0xBD1u, 0, 0); |
|
return SelHero_1000C3E2((int)v1, 2); |
|
} */ |
|
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
|
|
// ref: 0x1000893D |
|
int UNKCALL Modem_1000893D(HWND hWnd) { return 0; } |
|
/* { |
|
HWND v1; // esi |
|
int v2; // eax |
|
int result; // eax |
|
CHAR v4; // [esp+8h] [ebp-C0h] |
|
int v5; // [esp+48h] [ebp-80h] |
|
HWND v6; // [esp+50h] [ebp-78h] |
|
CHAR Buffer; // [esp+98h] [ebp-30h] |
|
int v8; // [esp+B8h] [ebp-10h] |
|
int v9; // [esp+BCh] [ebp-Ch] |
|
int v10; // [esp+C0h] [ebp-8h] |
|
int v11; // [esp+C4h] [ebp-4h] |
|
|
|
v1 = hWnd; |
|
memcpy(&v5, dword_1002A14C, 0x50u); |
|
v5 = 80; |
|
v6 = v1; |
|
memset(&v8, 0, 0x10u); |
|
v8 = 16; |
|
v9 = 1297040461; |
|
v2 = *(_DWORD *)(dword_1002A138 + 24); |
|
v11 = 0; |
|
v10 = v2; |
|
LoadStringA(hInstance, 0x47u, &Buffer, 31);//"Game %d" |
|
wsprintfA(&v4, &Buffer, dword_1002A130); |
|
if ( CreaDung_100051D8( |
|
(int)&v8, |
|
dword_1002A138, |
|
dword_1002A13C, |
|
(int)&v5, |
|
dword_1002A144, |
|
gnModemPlayerid, |
|
1, |
|
(int)&v4) ) |
|
{ |
|
++dword_1002A130; |
|
result = SelHero_1000C3E2((int)v1, 1); |
|
} |
|
else if ( dword_1002A124 ) |
|
{ |
|
if ( SErrGetLastError() == 183 ) |
|
++dword_1002A130; |
|
result = PostMessageA(v1, 0xBD2u, 0, 0); |
|
} |
|
else |
|
{ |
|
result = PostMessageA(v1, 0xBD0u, 0, 0); |
|
} |
|
return result; |
|
} */ |
|
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError(); |
|
// 1002A124: using guessed type int dword_1002A124; |
|
// 1002A130: using guessed type int dword_1002A130; |
|
// 1002A138: using guessed type int dword_1002A138; |
|
// 1002A13C: using guessed type int dword_1002A13C; |
|
// 1002A140: using guessed type int gnModemPlayerid; |
|
// 1002A144: using guessed type int dword_1002A144; |
|
|
|
// ref: 0x10008A38 |
|
int __fastcall Modem_10008A38(HWND hWnd, int a2) { return 0; } |
|
/* { |
|
char *v2; // ebx |
|
HWND v3; // edi |
|
int v4; // eax |
|
int result; // eax |
|
CHAR Buffer; // [esp+Ch] [ebp-80h] |
|
|
|
v2 = (char *)a2; |
|
v3 = hWnd; |
|
dword_1002A148 = 0; |
|
_beginthread((int)Modem_10008B42, 0, a2); |
|
ModmStat_10008C87(v3); |
|
if ( !dword_1002A120 ) |
|
{ |
|
switch ( dword_1002A12C ) |
|
{ |
|
case -2062548871: |
|
LoadStringA(hInstance, 0x32u, &Buffer, 127);//"\nUnable to join the detected game. Your version of Diablo is incompatible with the game creator's version." |
|
break; |
|
case 54: |
|
LoadStringA(hInstance, 0x42u, &Buffer, 127);//"\n\nUnable to connect. The number dialed was busy." |
|
break; |
|
case 1204: |
|
LoadStringA(hInstance, 0x4Cu, &Buffer, 127);//"Modem not detected. Please ensure that your modem is turned on and connected correctly." |
|
break; |
|
case 1222: |
|
LoadStringA(hInstance, 0x41u, &Buffer, 127);//"\n\nUnable to dial. No dial tone was detected." |
|
break; |
|
case 1223: |
|
goto LABEL_18; |
|
case 2250: |
|
LoadStringA(hInstance, 0x40u, &Buffer, 127);//"\n\nUnable to connect. There was no answer at the number dialed." |
|
break; |
|
default: |
|
LoadStringA(hInstance, 0x33u, &Buffer, 127);//"\nUnable to establish a connection. A game of Diablo was not detected at the specified phone number." |
|
break; |
|
} |
|
SelYesNo_1000FD39((int)v3, &Buffer, 0, 1); |
|
LABEL_18: |
|
if ( dword_1002A124 ) |
|
result = PostMessageA(v3, 0xBD2u, 0, 0); |
|
else |
|
result = PostMessageA(v3, 0xBD0u, 0, 0); |
|
return result; |
|
} |
|
if ( !dword_1002A124 ) |
|
{ |
|
SelDial_1000B011(v2); |
|
Modem_10008606(); |
|
} |
|
v4 = Modem_1000865F(&byte_1002A154); |
|
dword_1002A134 = v4; |
|
dword_1002A130 = v4 + 1; |
|
return SelHero_1000C3E2((int)v3, 1); |
|
} */ |
|
// 1002A120: using guessed type int dword_1002A120; |
|
// 1002A124: using guessed type int dword_1002A124; |
|
// 1002A12C: using guessed type int dword_1002A12C; |
|
// 1002A130: using guessed type int dword_1002A130; |
|
// 1002A134: using guessed type int dword_1002A134; |
|
// 1002A148: using guessed type int dword_1002A148; |
|
|
|
// ref: 0x10008B42 |
|
void __cdecl Modem_10008B42(char *a1) { return; } |
|
/* { |
|
char *v1; // eax |
|
char v2; // [esp+0h] [ebp-100h] |
|
char v3; // [esp+80h] [ebp-80h] |
|
|
|
Connect_10004028((int)&v2, 128, (int)&v3, 128); |
|
dword_1002A148 = 0; |
|
v1 = &byte_1002A154; |
|
if ( !dword_1002A124 ) |
|
v1 = a1; |
|
dword_1002A120 = SNetJoinGame(0, v1, 0, &v2, &v3, gnModemPlayerid); |
|
if ( !dword_1002A120 ) |
|
dword_1002A12C = SErrGetLastError(); |
|
dword_1002A148 = 1; |
|
_endthread(); |
|
} */ |
|
// 10010406: using guessed type _DWORD __stdcall SErrGetLastError(); |
|
// 10010430: using guessed type int __stdcall SNetJoinGame(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
// 10011E20: using guessed type int _endthread(void); |
|
// 1002A120: using guessed type int dword_1002A120; |
|
// 1002A124: using guessed type int dword_1002A124; |
|
// 1002A12C: using guessed type int dword_1002A12C; |
|
// 1002A140: using guessed type int gnModemPlayerid; |
|
// 1002A148: using guessed type int dword_1002A148; |
|
|
|
// ref: 0x10008BB7 |
|
int UNKCALL Modem_10008BB7(HWND hWnd) { return 0; } |
|
/* { |
|
HWND v1; // esi |
|
int result; // eax |
|
int v3; // [esp+4h] [ebp-20h] |
|
|
|
v1 = hWnd; |
|
if ( SDlgDialogBoxParam(hInstance, "ENTERDIAL_DIALOG", hWnd, EntDial_10006C96, &v3) == 1 ) |
|
result = Modem_10008A38(v1, (int)&v3); |
|
else |
|
result = PostMessageA(v1, 0xBD0u, 0, 0); |
|
return result; |
|
} */ |
|
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
|
|
// ref: 0x10008BFE |
|
int UNKCALL Modem_10008BFE(HWND hWnd) { return 0; } |
|
/* { |
|
HWND v1; // esi |
|
int v2; // eax |
|
int v3; // eax |
|
|
|
v1 = hWnd; |
|
v2 = SDlgDialogBoxParam(hInstance, "SELCRE8JOIN_DIALOG", hWnd, SelDial_1000B0CF, 0) - 3; |
|
if ( !v2 ) |
|
return Modem_1000893D(v1); |
|
v3 = v2 - 2; |
|
if ( !v3 ) |
|
return Modem_10008A38(v1, (int)&byte_1002A154); |
|
if ( v3 != 1217 ) |
|
return SelHero_1000C3E2((int)v1, 2); |
|
dword_1002A124 = 0; |
|
return PostMessageA(v1, 0xBD0u, 0, 0); |
|
} */ |
|
// 10010370: using guessed type int __stdcall SDlgDialogBoxParam(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); |
|
// 1002A124: using guessed type int dword_1002A124;
|
|
|