|
|
|
|
@ -3,7 +3,7 @@
|
|
|
|
|
* |
|
|
|
|
* Implementation of function for sending and reciving network messages. |
|
|
|
|
*/ |
|
|
|
|
#include <limits.h> |
|
|
|
|
#include <climits> |
|
|
|
|
|
|
|
|
|
#include "DiabloUI/diabloui.h" |
|
|
|
|
#include "automap.h" |
|
|
|
|
@ -79,12 +79,12 @@ static void msg_pre_packet()
|
|
|
|
|
size_t spaceLeft = sizeof(pkt->data); |
|
|
|
|
while (spaceLeft != pkt->dwSpaceLeft) { |
|
|
|
|
if (*data == FAKE_CMD_SETID) { |
|
|
|
|
TFakeCmdPlr *cmd = (TFakeCmdPlr *)data; |
|
|
|
|
auto *cmd = (TFakeCmdPlr *)data; |
|
|
|
|
data += sizeof(*cmd); |
|
|
|
|
spaceLeft -= sizeof(*cmd); |
|
|
|
|
i = cmd->bPlr; |
|
|
|
|
} else if (*data == FAKE_CMD_DROPID) { |
|
|
|
|
TFakeDropPlr *cmd = (TFakeDropPlr *)data; |
|
|
|
|
auto *cmd = (TFakeDropPlr *)data; |
|
|
|
|
data += sizeof(*cmd); |
|
|
|
|
spaceLeft -= sizeof(*cmd); |
|
|
|
|
multi_player_left(cmd->bPlr, cmd->dwReason); |
|
|
|
|
@ -387,7 +387,7 @@ static void DeltaImportData(BYTE cmd, DWORD recv_offset)
|
|
|
|
|
|
|
|
|
|
static DWORD On_DLEVEL(int pnum, TCmd *pCmd) |
|
|
|
|
{ |
|
|
|
|
TCmdPlrInfoHdr *p = (TCmdPlrInfoHdr *)pCmd; |
|
|
|
|
auto *p = (TCmdPlrInfoHdr *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbDeltaSender != pnum) { |
|
|
|
|
if (p->bCmd == CMD_DLEVEL_END) { |
|
|
|
|
@ -1263,7 +1263,7 @@ void NetSendCmdString(int pmask, const char *pszStr)
|
|
|
|
|
|
|
|
|
|
static DWORD On_STRING2(int pnum, TCmd *pCmd) |
|
|
|
|
{ |
|
|
|
|
TCmdString *p = (TCmdString *)pCmd; |
|
|
|
|
auto *p = (TCmdString *)pCmd; |
|
|
|
|
|
|
|
|
|
int len = strlen(p->str); |
|
|
|
|
if (!gbBufferMsgs) |
|
|
|
|
@ -1318,7 +1318,7 @@ static DWORD On_SYNCDATA(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_WALKXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLoc *p = (TCmdLoc *)pCmd; |
|
|
|
|
auto *p = (TCmdLoc *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
@ -1331,7 +1331,7 @@ static DWORD On_WALKXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ADDSTR(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1343,7 +1343,7 @@ static DWORD On_ADDSTR(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ADDMAG(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1355,7 +1355,7 @@ static DWORD On_ADDMAG(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ADDDEX(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1367,7 +1367,7 @@ static DWORD On_ADDDEX(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ADDVIT(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1379,10 +1379,10 @@ static DWORD On_ADDVIT(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SBSPELL(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam1; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam1); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
plr[pnum]._pSpell = spell; |
|
|
|
|
plr[pnum]._pSplType = plr[pnum]._pSBkSplType; |
|
|
|
|
@ -1397,7 +1397,7 @@ static DWORD On_SBSPELL(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_GOTOGETITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
MakePlrPath(pnum, p->x, p->y, false); |
|
|
|
|
@ -1410,7 +1410,7 @@ static DWORD On_GOTOGETITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_REQUESTGITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdGItem *p = (TCmdGItem *)pCmd; |
|
|
|
|
auto *p = (TCmdGItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && i_own_level(plr[pnum].plrlevel)) { |
|
|
|
|
if (GetItemRecord(p->dwSeed, p->wCI, p->wIndx)) { |
|
|
|
|
@ -1432,7 +1432,7 @@ static DWORD On_REQUESTGITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_GETITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdGItem *p = (TCmdGItem *)pCmd; |
|
|
|
|
auto *p = (TCmdGItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1459,7 +1459,7 @@ static DWORD On_GETITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_GOTOAGETITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
MakePlrPath(pnum, p->x, p->y, false); |
|
|
|
|
@ -1472,7 +1472,7 @@ static DWORD On_GOTOAGETITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_REQUESTAGITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdGItem *p = (TCmdGItem *)pCmd; |
|
|
|
|
auto *p = (TCmdGItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && i_own_level(plr[pnum].plrlevel)) { |
|
|
|
|
if (GetItemRecord(p->dwSeed, p->wCI, p->wIndx)) { |
|
|
|
|
@ -1494,7 +1494,7 @@ static DWORD On_REQUESTAGITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_AGETITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdGItem *p = (TCmdGItem *)pCmd; |
|
|
|
|
auto *p = (TCmdGItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1521,7 +1521,7 @@ static DWORD On_AGETITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ITEMEXTRA(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdGItem *p = (TCmdGItem *)pCmd; |
|
|
|
|
auto *p = (TCmdGItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1536,7 +1536,7 @@ static DWORD On_ITEMEXTRA(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_PUTITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdPItem *p = (TCmdPItem *)pCmd; |
|
|
|
|
auto *p = (TCmdPItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1563,7 +1563,7 @@ static DWORD On_PUTITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SYNCPUTITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdPItem *p = (TCmdPItem *)pCmd; |
|
|
|
|
auto *p = (TCmdPItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1586,7 +1586,7 @@ static DWORD On_SYNCPUTITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_RESPAWNITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdPItem *p = (TCmdPItem *)pCmd; |
|
|
|
|
auto *p = (TCmdPItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1603,7 +1603,7 @@ static DWORD On_RESPAWNITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ATTACKXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLoc *p = (TCmdLoc *)pCmd; |
|
|
|
|
auto *p = (TCmdLoc *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
MakePlrPath(pnum, p->x, p->y, false); |
|
|
|
|
@ -1617,7 +1617,7 @@ static DWORD On_ATTACKXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SATTACKXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLoc *p = (TCmdLoc *)pCmd; |
|
|
|
|
auto *p = (TCmdLoc *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
@ -1631,7 +1631,7 @@ static DWORD On_SATTACKXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_RATTACKXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLoc *p = (TCmdLoc *)pCmd; |
|
|
|
|
auto *p = (TCmdLoc *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
@ -1645,10 +1645,10 @@ static DWORD On_RATTACKXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SPELLXYD(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam3 *p = (TCmdLocParam3 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam3 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam1; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam1); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELLWALL; |
|
|
|
|
@ -1668,10 +1668,10 @@ static DWORD On_SPELLXYD(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SPELLXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam2 *p = (TCmdLocParam2 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam2 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam1; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam1); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELL; |
|
|
|
|
@ -1690,10 +1690,10 @@ static DWORD On_SPELLXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_TSPELLXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam2 *p = (TCmdLocParam2 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam2 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam1; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam1); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELL; |
|
|
|
|
@ -1712,7 +1712,7 @@ static DWORD On_TSPELLXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_OPOBJXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
if (object[p->wParam1]._oSolidFlag || object[p->wParam1]._oDoorFlag) |
|
|
|
|
@ -1728,7 +1728,7 @@ static DWORD On_OPOBJXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_DISARMXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
if (object[p->wParam1]._oSolidFlag || object[p->wParam1]._oDoorFlag) |
|
|
|
|
@ -1744,7 +1744,7 @@ static DWORD On_DISARMXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_OPOBJT(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
plr[pnum].destAction = ACTION_OPERATETK; |
|
|
|
|
@ -1756,7 +1756,7 @@ static DWORD On_OPOBJT(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ATTACKID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
int distx = abs(plr[pnum]._px - monster[p->wParam1]._mfutx); |
|
|
|
|
@ -1772,7 +1772,7 @@ static DWORD On_ATTACKID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ATTACKPID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
MakePlrPath(pnum, plr[p->wParam1]._pfutx, plr[p->wParam1]._pfuty, false); |
|
|
|
|
@ -1785,7 +1785,7 @@ static DWORD On_ATTACKPID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_RATTACKID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
@ -1798,7 +1798,7 @@ static DWORD On_RATTACKID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_RATTACKPID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
@ -1811,10 +1811,10 @@ static DWORD On_RATTACKPID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SPELLID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam3 *p = (TCmdParam3 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam3 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam2; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam2); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELLMON; |
|
|
|
|
@ -1832,10 +1832,10 @@ static DWORD On_SPELLID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SPELLPID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam3 *p = (TCmdParam3 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam3 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam2; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam2); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELLPLR; |
|
|
|
|
@ -1853,10 +1853,10 @@ static DWORD On_SPELLPID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_TSPELLID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam3 *p = (TCmdParam3 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam3 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam2; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam2); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELLMON; |
|
|
|
|
@ -1874,10 +1874,10 @@ static DWORD On_TSPELLID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_TSPELLPID(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam3 *p = (TCmdParam3 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam3 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
spell_id spell = (spell_id)p->wParam2; |
|
|
|
|
auto spell = static_cast<spell_id>(p->wParam2); |
|
|
|
|
if (currlevel != 0 || spelldata[spell].sTownSpell) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
plr[pnum].destAction = ACTION_SPELLPLR; |
|
|
|
|
@ -1895,7 +1895,7 @@ static DWORD On_TSPELLPID(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_KNOCKBACK(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
M_GetKnockback(p->wParam1); |
|
|
|
|
@ -1907,7 +1907,7 @@ static DWORD On_KNOCKBACK(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_RESURRECT(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1921,7 +1921,7 @@ static DWORD On_RESURRECT(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_HEALOTHER(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) |
|
|
|
|
DoHealOther(pnum, p->wParam1); |
|
|
|
|
@ -1931,7 +1931,7 @@ static DWORD On_HEALOTHER(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_TALKXY(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel) { |
|
|
|
|
MakePlrPath(pnum, p->x, p->y, false); |
|
|
|
|
@ -1944,7 +1944,7 @@ static DWORD On_TALKXY(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_NEWLVL(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam2 *p = (TCmdParam2 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam2 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1956,7 +1956,7 @@ static DWORD On_NEWLVL(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_WARP(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1969,7 +1969,7 @@ static DWORD On_WARP(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_MONSTDEATH(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1984,7 +1984,7 @@ static DWORD On_MONSTDEATH(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_KILLGOLEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -1999,7 +1999,7 @@ static DWORD On_KILLGOLEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_AWAKEGOLEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdGolem *p = (TCmdGolem *)pCmd; |
|
|
|
|
auto *p = (TCmdGolem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2025,7 +2025,7 @@ static DWORD On_AWAKEGOLEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_MONSTDAMAGE(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdMonDamage *p = (TCmdMonDamage *)pCmd; |
|
|
|
|
auto *p = (TCmdMonDamage *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); // BUGFIX: change to sizeof(*p) or it still uses TCmdParam2 size for hellfire (fixed)
|
|
|
|
|
@ -2046,7 +2046,7 @@ static DWORD On_MONSTDAMAGE(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_PLRDEAD(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2060,7 +2060,7 @@ static DWORD On_PLRDEAD(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_PLRDAMAGE(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdDamage *p = (TCmdDamage *)pCmd; |
|
|
|
|
auto *p = (TCmdDamage *)pCmd; |
|
|
|
|
|
|
|
|
|
if (p->bPlr == myplr && currlevel != 0 && gbBufferMsgs != 1) { |
|
|
|
|
if (currlevel == plr[pnum].plrlevel && p->dwDam <= 192000 && plr[myplr]._pHitPoints >> 6 > 0) { |
|
|
|
|
@ -2073,7 +2073,7 @@ static DWORD On_PLRDAMAGE(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_OPENDOOR(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2088,7 +2088,7 @@ static DWORD On_OPENDOOR(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_CLOSEDOOR(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2103,7 +2103,7 @@ static DWORD On_CLOSEDOOR(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_OPERATEOBJ(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2118,7 +2118,7 @@ static DWORD On_OPERATEOBJ(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_PLROPOBJ(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam2 *p = (TCmdParam2 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam2 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2133,7 +2133,7 @@ static DWORD On_PLROPOBJ(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_BREAKOBJ(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam2 *p = (TCmdParam2 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam2 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2148,7 +2148,7 @@ static DWORD On_BREAKOBJ(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_CHANGEPLRITEMS(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdChItem *p = (TCmdChItem *)pCmd; |
|
|
|
|
auto *p = (TCmdChItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2160,7 +2160,7 @@ static DWORD On_CHANGEPLRITEMS(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_DELPLRITEMS(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdDelItem *p = (TCmdDelItem *)pCmd; |
|
|
|
|
auto *p = (TCmdDelItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2172,7 +2172,7 @@ static DWORD On_DELPLRITEMS(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_PLRLEVEL(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2184,7 +2184,7 @@ static DWORD On_PLRLEVEL(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_DROPITEM(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdPItem *p = (TCmdPItem *)pCmd; |
|
|
|
|
auto *p = (TCmdPItem *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2196,7 +2196,7 @@ static DWORD On_DROPITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SEND_PLRINFO(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdPlrInfoHdr *p = (TCmdPlrInfoHdr *)pCmd; |
|
|
|
|
auto *p = (TCmdPlrInfoHdr *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, p->wBytes + sizeof(*p)); |
|
|
|
|
@ -2213,7 +2213,7 @@ static DWORD On_ACK_PLRINFO(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_PLAYER_JOINLEVEL(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam1 *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2257,7 +2257,7 @@ static DWORD On_PLAYER_JOINLEVEL(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_ACTIVATEPORTAL(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam3 *p = (TCmdLocParam3 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam3 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2317,7 +2317,7 @@ static DWORD On_RETOWN(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SETSTR(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2329,7 +2329,7 @@ static DWORD On_SETSTR(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SETDEX(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2341,7 +2341,7 @@ static DWORD On_SETDEX(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SETMAG(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2353,7 +2353,7 @@ static DWORD On_SETMAG(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SETVIT(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdParam1 *p = (TCmdParam1 *)pCmd; |
|
|
|
|
auto *p = (TCmdParam1 *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2370,7 +2370,7 @@ static DWORD On_STRING(TCmd *pCmd, int pnum)
|
|
|
|
|
|
|
|
|
|
static DWORD On_SYNCQUEST(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdQuest *p = (TCmdQuest *)pCmd; |
|
|
|
|
auto *p = (TCmdQuest *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs == 1) |
|
|
|
|
msg_send_packet(pnum, p, sizeof(*p)); |
|
|
|
|
@ -2432,7 +2432,7 @@ static DWORD On_DEBUG(TCmd *pCmd)
|
|
|
|
|
|
|
|
|
|
static DWORD On_NOVA(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLoc *p = (TCmdLoc *)pCmd; |
|
|
|
|
auto *p = (TCmdLoc *)pCmd; |
|
|
|
|
|
|
|
|
|
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel && pnum != myplr) { |
|
|
|
|
ClrPlrPath(pnum); |
|
|
|
|
@ -2482,7 +2482,7 @@ static DWORD On_NAKRUL(TCmd *pCmd)
|
|
|
|
|
{ |
|
|
|
|
if (gbBufferMsgs != 1) { |
|
|
|
|
operate_lv24_lever(); |
|
|
|
|
IsUberRoomOpened = 1; |
|
|
|
|
IsUberRoomOpened = true; |
|
|
|
|
quests[Q_NAKRUL]._qactive = QUEST_DONE; |
|
|
|
|
monster_some_crypt(); |
|
|
|
|
} |
|
|
|
|
@ -2491,7 +2491,7 @@ static DWORD On_NAKRUL(TCmd *pCmd)
|
|
|
|
|
|
|
|
|
|
static DWORD On_OPENHIVE(TCmd *pCmd, int pnum) |
|
|
|
|
{ |
|
|
|
|
TCmdLocParam2 *p = (TCmdLocParam2 *)pCmd; |
|
|
|
|
auto *p = (TCmdLocParam2 *)pCmd; |
|
|
|
|
if (gbBufferMsgs != 1) { |
|
|
|
|
AddMissile(p->x, p->y, p->wParam1, p->wParam2, 0, MIS_HIVEEXP2, TARGET_MONSTERS, pnum, 0, 0); |
|
|
|
|
TownOpenHive(); |
|
|
|
|
|