diff --git a/Source/msg.cpp b/Source/msg.cpp index 4d0a741f3..6c1f6d7b2 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -437,7 +437,7 @@ void __fastcall delta_sync_golem(TCmdGolem *pG, int pnum, BYTE bLevel) void __fastcall delta_leave_sync(BYTE bLevel) { unsigned char v1; // bl - BOOLEAN v2; // zf + BOOLEAN v2; // zf int v3; // eax int i; // ebp int v5; // ecx @@ -807,9 +807,9 @@ void __fastcall NetSendCmd(BOOL bHiPri, BYTE bCmd) cmd.bCmd = bCmd; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 1u); + NetSendHiPri((BYTE *)&cmd, 1u); else - NetSendLoPri((unsigned char *)&cmd, 1u); + NetSendLoPri((BYTE *)&cmd, 1u); } void __fastcall NetSendCmdGolem(BYTE mx, BYTE my, BYTE dir, BYTE menemy, int hp, BYTE cl) @@ -823,7 +823,7 @@ void __fastcall NetSendCmdGolem(BYTE mx, BYTE my, BYTE dir, BYTE menemy, int hp, cmd._my = my; cmd.bCmd = CMD_AWAKEGOLEM; cmd._currlevel = cl; - NetSendLoPri((unsigned char *)&cmd, 0xAu); + NetSendLoPri((BYTE *)&cmd, 0xAu); } void __fastcall NetSendCmdLoc(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) @@ -834,9 +834,9 @@ void __fastcall NetSendCmdLoc(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) cmd.x = x; cmd.y = y; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 3u); + NetSendHiPri((BYTE *)&cmd, 3u); else - NetSendLoPri((unsigned char *)&cmd, 3u); + NetSendLoPri((BYTE *)&cmd, 3u); } void __fastcall NetSendCmdLocParam1(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1) @@ -848,9 +848,9 @@ void __fastcall NetSendCmdLocParam1(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD cmd.y = y; cmd.wParam1 = wParam1; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 5u); + NetSendHiPri((BYTE *)&cmd, 5u); else - NetSendLoPri((unsigned char *)&cmd, 5u); + NetSendLoPri((BYTE *)&cmd, 5u); } void __fastcall NetSendCmdLocParam2(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2) @@ -863,9 +863,9 @@ void __fastcall NetSendCmdLocParam2(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD cmd.wParam1 = wParam1; cmd.wParam2 = wParam2; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 7u); + NetSendHiPri((BYTE *)&cmd, 7u); else - NetSendLoPri((unsigned char *)&cmd, 7u); + NetSendLoPri((BYTE *)&cmd, 7u); } void __fastcall NetSendCmdLocParam3(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD wParam1, WORD wParam2, WORD wParam3) @@ -879,21 +879,21 @@ void __fastcall NetSendCmdLocParam3(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y, WORD cmd.wParam2 = wParam2; cmd.wParam3 = wParam3; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 9u); + NetSendHiPri((BYTE *)&cmd, 9u); else - NetSendLoPri((unsigned char *)&cmd, 9u); + NetSendLoPri((BYTE *)&cmd, 9u); } void __fastcall NetSendCmdParam1(BOOL bHiPri, BYTE bCmd, WORD wParam1) { - TCmdParam1 cmd; // [esp+1h] [ebp-3h] + TCmdParam1 cmd; cmd.bCmd = bCmd; cmd.wParam1 = wParam1; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 3u); + NetSendHiPri((BYTE *)&cmd, 3u); else - NetSendLoPri((unsigned char *)&cmd, 3u); + NetSendLoPri((BYTE *)&cmd, 3u); } void __fastcall NetSendCmdParam2(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2) @@ -904,9 +904,9 @@ void __fastcall NetSendCmdParam2(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wPar cmd.wParam1 = wParam1; cmd.wParam2 = wParam2; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 5u); + NetSendHiPri((BYTE *)&cmd, 5u); else - NetSendLoPri((unsigned char *)&cmd, 5u); + NetSendLoPri((BYTE *)&cmd, 5u); } void __fastcall NetSendCmdParam3(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wParam2, WORD wParam3) @@ -918,9 +918,9 @@ void __fastcall NetSendCmdParam3(BOOL bHiPri, BYTE bCmd, WORD wParam1, WORD wPar cmd.wParam2 = wParam2; cmd.wParam3 = wParam3; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 7u); + NetSendHiPri((BYTE *)&cmd, 7u); else - NetSendLoPri((unsigned char *)&cmd, 7u); + NetSendLoPri((BYTE *)&cmd, 7u); } void __fastcall NetSendCmdQuest(BOOL bHiPri, BYTE q) @@ -938,15 +938,15 @@ void __fastcall NetSendCmdQuest(BOOL bHiPri, BYTE q) cmd.qlog = v3; cmd.qvar1 = v2; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 5u); + NetSendHiPri((BYTE *)&cmd, 5u); else - NetSendLoPri((unsigned char *)&cmd, 5u); + NetSendLoPri((BYTE *)&cmd, 5u); } void __fastcall NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, int ii) { int v5; // eax - BOOLEAN v6; // zf + BOOLEAN v6; // zf short v7; // dx short v8; // bx int v9; // esi @@ -995,9 +995,9 @@ void __fastcall NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, in cmd.wValue = v12; } if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 0x1Eu); + NetSendHiPri((BYTE *)&cmd, 0x1Eu); else - NetSendLoPri((unsigned char *)&cmd, 0x1Eu); + NetSendLoPri((BYTE *)&cmd, 0x1Eu); } void __fastcall NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p) @@ -1013,42 +1013,39 @@ void __fastcall NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, T cmd.bMaster = mast; if (!usonly) { cmd.dwTime = 0; - NetSendHiPri((unsigned char *)&cmd, 0x1Eu); + NetSendHiPri((BYTE *)&cmd, 0x1Eu); return; } v7 = GetTickCount(); - if (cmd.dwTime) { + if (!cmd.dwTime) { + cmd.dwTime = v7; + } else { if (v7 - cmd.dwTime > 5000) return; - } else { - cmd.dwTime = v7; } - multi_msg_add(&cmd.bCmd, 0x1Eu); + multi_msg_add((BYTE *)&cmd.bCmd, 0x1Eu); } BOOL __fastcall NetSendCmdReq2(BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p) { - unsigned char v4; // bl - int v5; // eax - TCmdGItem cmd; // [esp+4h] [ebp-24h] - unsigned char v8; // [esp+24h] [ebp-4h] + int ticks; + TCmdGItem cmd; - v4 = mast; - v8 = bCmd; - memcpy(&cmd, p, 0x1Eu); - cmd.bCmd = v8; + memcpy(&cmd, p, sizeof(TCmdGItem)); + cmd.bCmd = bCmd; cmd.bPnum = pnum; - cmd.bMaster = v4; - v5 = GetTickCount(); + cmd.bMaster = mast; + + ticks = GetTickCount(); if (!cmd.dwTime) { - cmd.dwTime = v5; - LABEL_3: - multi_msg_add(&cmd.bCmd, 0x1Eu); - return 1; + cmd.dwTime = ticks; + } else if (ticks - cmd.dwTime > 5000) { + return FALSE; } - if (v5 - cmd.dwTime <= 5000) - goto LABEL_3; - return 0; + + multi_msg_add((BYTE *)&cmd.bCmd, sizeof(TCmdGItem)); + + return TRUE; } void __fastcall NetSendCmdExtra(TCmdGItem *p) @@ -1058,14 +1055,14 @@ void __fastcall NetSendCmdExtra(TCmdGItem *p) memcpy(&cmd, p, 0x1Eu); cmd.dwTime = 0; cmd.bCmd = CMD_ITEMEXTRA; - NetSendHiPri((unsigned char *)&cmd, 0x1Eu); + NetSendHiPri((BYTE *)&cmd, 0x1Eu); } void __fastcall NetSendCmdPItem(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) { int v4; // eax short *v5; // edx - BOOLEAN v6; // zf + BOOLEAN v6; // zf short v7; // dx short v8; // bx int v9; // esi @@ -1110,9 +1107,9 @@ void __fastcall NetSendCmdPItem(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y) cmd.wValue = v12; } if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 0x16u); + NetSendHiPri((BYTE *)&cmd, 0x16u); else - NetSendLoPri((unsigned char *)&cmd, 0x16u); + NetSendLoPri((BYTE *)&cmd, 0x16u); } void __fastcall NetSendCmdChItem(BOOL bHiPri, BYTE bLoc) @@ -1130,9 +1127,9 @@ void __fastcall NetSendCmdChItem(BOOL bHiPri, BYTE bLoc) cmd.dwSeed = plr[myplr].HoldItem._iSeed; cmd.bId = v3; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 0xBu); + NetSendHiPri((BYTE *)&cmd, 0xBu); else - NetSendLoPri((unsigned char *)&cmd, 0xBu); + NetSendLoPri((BYTE *)&cmd, 0xBu); } void __fastcall NetSendCmdDelItem(BOOL bHiPri, BYTE bLoc) @@ -1142,16 +1139,16 @@ void __fastcall NetSendCmdDelItem(BOOL bHiPri, BYTE bLoc) cmd.bLoc = bLoc; cmd.bCmd = CMD_DELPLRITEMS; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 2u); + NetSendHiPri((BYTE *)&cmd, 2u); else - NetSendLoPri((unsigned char *)&cmd, 2u); + NetSendLoPri((BYTE *)&cmd, 2u); } void __fastcall NetSendCmdDItem(BOOL bHiPri, int ii) { int v2; // eax short *v3; // edx - BOOLEAN v4; // zf + BOOLEAN v4; // zf short v5; // dx short v6; // bx int v7; // esi @@ -1196,9 +1193,9 @@ void __fastcall NetSendCmdDItem(BOOL bHiPri, int ii) cmd.wValue = v10; } if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 0x16u); + NetSendHiPri((BYTE *)&cmd, 0x16u); else - NetSendLoPri((unsigned char *)&cmd, 0x16u); + NetSendLoPri((BYTE *)&cmd, 0x16u); } void __fastcall NetSendCmdDamage(BOOL bHiPri, BYTE bPlr, DWORD dwDam) @@ -1209,24 +1206,20 @@ void __fastcall NetSendCmdDamage(BOOL bHiPri, BYTE bPlr, DWORD dwDam) cmd.bCmd = CMD_PLRDAMAGE; cmd.dwDam = dwDam; if (bHiPri) - NetSendHiPri((unsigned char *)&cmd, 6u); + NetSendHiPri((BYTE *)&cmd, 6u); else - NetSendLoPri((unsigned char *)&cmd, 6u); + NetSendLoPri((BYTE *)&cmd, 6u); } void __fastcall NetSendCmdString(int pmask, const char *pszStr) { - const char *v2; // esi - int v3; // edi - char dwStrLen; // bl - TCmdString cmd; // [esp+Ch] [ebp-54h] + int dwStrLen; + TCmdString cmd; - v2 = pszStr; - v3 = pmask; dwStrLen = strlen(pszStr); cmd.bCmd = CMD_STRING; - strcpy(cmd.str, v2); - multi_send_msg_packet(v3, &cmd.bCmd, dwStrLen + 2); + strcpy(cmd.str, pszStr); + multi_send_msg_packet(pmask, (BYTE *)&cmd.bCmd, dwStrLen + 2); } void __fastcall RemovePlrPortal(int pnum) diff --git a/Source/multi.cpp b/Source/multi.cpp index 8bc65ec05..36a45d448 100644 --- a/Source/multi.cpp +++ b/Source/multi.cpp @@ -44,7 +44,7 @@ struct multi_cpp_init { // 47F154: using guessed type int multi_inf; // 678620: using guessed type int multi_cpp_init_value; -void __fastcall multi_msg_add(unsigned char *a1, unsigned char a2) +void __fastcall multi_msg_add(BYTE *a1, unsigned char a2) { if (a1) { if (a2) @@ -52,24 +52,17 @@ void __fastcall multi_msg_add(unsigned char *a1, unsigned char a2) } } -void __fastcall NetSendLoPri(unsigned char *pbMsg, unsigned char bLen) +void __fastcall NetSendLoPri(BYTE *pbMsg, BYTE bLen) { - unsigned char *v2; // esi - unsigned char v3; // bl - int v4; // edx - - v2 = pbMsg; - v3 = bLen; if (pbMsg) { if (bLen) { multi_copy_packet(pkdata_678658, pbMsg, bLen); - _LOBYTE(v4) = v3; - multi_send_packet(v2, v4); + multi_send_packet(pbMsg, bLen); } } } -void __fastcall multi_copy_packet(void *a1, void *packet, int size) +void __fastcall multi_copy_packet(void *a1, void *packet, BYTE size) { int v3; // eax int v4; // ebx @@ -86,7 +79,7 @@ void __fastcall multi_copy_packet(void *a1, void *packet, int size) } } -void __fastcall multi_send_packet(void *packet, int dwSize) +void __fastcall multi_send_packet(void *packet, BYTE dwSize) { void *v2; // esi unsigned char v3; // bl @@ -117,9 +110,6 @@ void __fastcall NetRecvPlrData(TPkt *pkt) void __fastcall NetSendHiPri(BYTE *pbMsg, BYTE bLen) { - unsigned char *v2; // edi - unsigned char v3; // bl - int v4; // edx unsigned char *v5; // eax TSyncHeader *v6; // eax int v7; // eax @@ -127,12 +117,9 @@ void __fastcall NetSendHiPri(BYTE *pbMsg, BYTE bLen) TPkt pkt; // [esp+Ch] [ebp-204h] int size; // [esp+20Ch] [ebp-4h] - v2 = pbMsg; - v3 = bLen; if (pbMsg && bLen) { multi_copy_packet(pkdata_6761C0, pbMsg, bLen); - _LOBYTE(v4) = v3; - multi_send_packet(v2, v4); + multi_send_packet(pbMsg, bLen); } if (!dword_678628) { dword_678628 = 1; @@ -141,7 +128,6 @@ void __fastcall NetSendHiPri(BYTE *pbMsg, BYTE bLen) v5 = multi_recv_packet(pkdata_6761C0, pkt.body, &size); v6 = (TSyncHeader *)multi_recv_packet(pkdata_678658, v5, &size); v7 = sync_all_monsters(v6, size); - size = v7; v8 = gdwNormalMsgSize - v7; pkt.hdr.wLen = v8; if (!SNetSendMessage(-2, &pkt.hdr, v8)) @@ -182,7 +168,7 @@ unsigned char *__fastcall multi_recv_packet(void *packet, unsigned char *a2, int return result; } -void __fastcall multi_send_msg_packet(int a1, unsigned char *a2, unsigned char len) +void __fastcall multi_send_msg_packet(int a1, BYTE *a2, BYTE len) { //const void *v3; // edx signed int v4; // ebx @@ -580,7 +566,7 @@ void __cdecl multi_process_tmsgs() TPkt pkt; // [esp+0h] [ebp-200h] while (1) { - v0 = tmsg_get((unsigned char *)&pkt, 512); + v0 = tmsg_get((BYTE *)&pkt, 512); if (!v0) break; multi_handle_all_packets(myplr, &pkt, v0); diff --git a/Source/multi.h b/Source/multi.h index b442ae7a1..3787d33fd 100644 --- a/Source/multi.h +++ b/Source/multi.h @@ -29,14 +29,14 @@ extern int sgbNetInited; // weak extern int player_state[MAX_PLRS]; void __cdecl multi_cpp_init(); -void __fastcall multi_msg_add(unsigned char *a1, unsigned char a2); -void __fastcall NetSendLoPri(unsigned char *pbMsg, unsigned char bLen); -void __fastcall multi_copy_packet(void *a1, void *packet, int size); -void __fastcall multi_send_packet(void *packet, int dwSize); +void __fastcall multi_msg_add(BYTE *a1, unsigned char a2); +void __fastcall NetSendLoPri(BYTE *pbMsg, BYTE bLen); +void __fastcall multi_copy_packet(void *a1, void *packet, BYTE size); +void __fastcall multi_send_packet(void *packet, BYTE dwSize); void __fastcall NetRecvPlrData(TPkt *pkt); -void __fastcall NetSendHiPri(unsigned char *pbMsg, unsigned char bLen); +void __fastcall NetSendHiPri(BYTE *pbMsg, BYTE bLen); unsigned char *__fastcall multi_recv_packet(void *packet, unsigned char *a2, int *a3); -void __fastcall multi_send_msg_packet(int a1, unsigned char *a2, unsigned char len); +void __fastcall multi_send_msg_packet(int a1, BYTE *a2, BYTE len); void __cdecl multi_msg_countdown(); void __fastcall multi_parse_turn(int pnum, int turn); void __fastcall multi_handle_turn_upper_bit(int pnum); diff --git a/structs.h b/structs.h index 755ef056f..9665aa5b4 100644 --- a/structs.h +++ b/structs.h @@ -696,86 +696,86 @@ typedef struct PortalStruct { #pragma pack(push, 1) typedef struct TCmd { - BYTE bCmd; + char bCmd; } TCmd; typedef struct TCmdLoc { - BYTE bCmd; - BYTE x; - BYTE y; + char bCmd; + char x; + char y; } TCmdLoc; typedef struct TCmdLocParam1 { - BYTE bCmd; - BYTE x; - BYTE y; + char bCmd; + char x; + char y; WORD wParam1; } TCmdLocParam1; typedef struct TCmdLocParam2 { - BYTE bCmd; - BYTE x; - BYTE y; + char bCmd; + char x; + char y; WORD wParam1; WORD wParam2; } TCmdLocParam2; typedef struct TCmdLocParam3 { - BYTE bCmd; - BYTE x; - BYTE y; + char bCmd; + char x; + char y; WORD wParam1; WORD wParam2; WORD wParam3; } TCmdLocParam3; typedef struct TCmdParam1 { - BYTE bCmd; + char bCmd; WORD wParam1; } TCmdParam1; typedef struct TCmdParam2 { - BYTE bCmd; + char bCmd; WORD wParam1; WORD wParam2; } TCmdParam2; typedef struct TCmdParam3 { - BYTE bCmd; + char bCmd; WORD wParam1; WORD wParam2; WORD wParam3; } TCmdParam3; typedef struct TCmdGolem { - BYTE bCmd; - BYTE _mx; - BYTE _my; + char bCmd; + char _mx; + char _my; BYTE _mdir; - BYTE _menemy; + char _menemy; int _mhitpoints; BYTE _currlevel; } TCmdGolem; typedef struct TCmdQuest { - BYTE bCmd; + char bCmd; BYTE q; - BYTE qstate; + char qstate; BYTE qlog; BYTE qvar1; } TCmdQuest; typedef struct TCmdGItem { - BYTE bCmd; + char bCmd; BYTE bMaster; BYTE bPnum; BYTE bCursitem; BYTE bLevel; - BYTE x; - BYTE y; + char x; + char y; WORD wIndx; WORD wCI; - DWORD dwSeed; + int dwSeed; BYTE bId; BYTE bDur; BYTE bMDur; @@ -783,16 +783,16 @@ typedef struct TCmdGItem { BYTE bMCh; WORD wValue; DWORD dwBuff; - DWORD dwTime; + int dwTime; } TCmdGItem; typedef struct TCmdPItem { - BYTE bCmd; - BYTE x; - BYTE y; + char bCmd; + char x; + char y; WORD wIndx; WORD wCI; - DWORD dwSeed; + int dwSeed; BYTE bId; BYTE bDur; BYTE bMDur; @@ -803,49 +803,49 @@ typedef struct TCmdPItem { } TCmdPItem; typedef struct TCmdChItem { - BYTE bCmd; + char bCmd; BYTE bLoc; WORD wIndx; WORD wCI; - DWORD dwSeed; + int dwSeed; BYTE bId; } TCmdChItem; typedef struct TCmdDelItem { - BYTE bCmd; + char bCmd; BYTE bLoc; } TCmdDelItem; typedef struct TCmdDamage { - BYTE bCmd; + char bCmd; BYTE bPlr; DWORD dwDam; } TCmdDamage; typedef struct TCmdPlrInfoHdr { - BYTE bCmd; + char bCmd; WORD wOffset; WORD wBytes; } TCmdPlrInfoHdr; typedef struct TCmdString { - BYTE bCmd; + char bCmd; char str[MAX_SEND_STR_LEN]; } TCmdString; typedef struct TFakeCmdPlr { - BYTE bCmd; + char bCmd; BYTE bPlr; } TFakeCmdPlr; typedef struct TFakeDropPlr { - BYTE bCmd; + char bCmd; BYTE bPlr; DWORD dwReason; } TFakeDropPlr; typedef struct TSyncHeader { - BYTE bCmd; + char bCmd; BYTE bLevel; WORD wLen; BYTE bObjId; @@ -855,7 +855,7 @@ typedef struct TSyncHeader { BYTE bItemY; WORD wItemIndx; WORD wItemCI; - DWORD dwItemSeed; + int dwItemSeed; BYTE bItemId; BYTE bItemDur; BYTE bItemMDur; @@ -866,15 +866,15 @@ typedef struct TSyncHeader { BYTE bPInvLoc; WORD wPInvIndx; WORD wPInvCI; - DWORD dwPInvSeed; + int dwPInvSeed; BYTE bPInvId; } TSyncHeader; typedef struct TSyncMonster { BYTE _mndx; - BYTE _mx; - BYTE _my; - BYTE _menemy; + char _mx; + char _my; + char _menemy; BYTE _mdelta; } TSyncMonster; @@ -898,8 +898,8 @@ typedef struct TPkt { } TPkt; typedef struct DMonsterStr { - BYTE _mx; - BYTE _my; + char _mx; + char _my; BYTE _mdir; char _menemy; char _mactive; @@ -907,7 +907,7 @@ typedef struct DMonsterStr { } DMonsterStr; typedef struct DObjectStr { - BYTE bCmd; + char bCmd; } DObjectStr; typedef struct DLevel { @@ -917,19 +917,19 @@ typedef struct DLevel { } DLevel; typedef struct LocalLevel { - BYTE automapsv[40][40]; + BYTE automapsv[DMAXX][DMAXY]; } LocalLevel; typedef struct DPortal { - BYTE x; - BYTE y; + char x; + char y; BYTE level; BYTE ltype; BYTE setlvl; } DPortal; typedef struct MultiQuests { - BYTE qstate; + char qstate; BYTE qlog; BYTE qvar1; } MultiQuests; @@ -1450,7 +1450,7 @@ typedef struct TMsg TMsg; typedef struct TMsgHdr { TMsg *pNext; - DWORD dwTime; + int dwTime; BYTE bLen; } TMsgHdr;