Browse Source

msg.cpp cleanup

pull/944/head
qndel 5 years ago committed by Anders Jenbo
parent
commit
6ade48e855
  1. 346
      Source/msg.cpp

346
Source/msg.cpp

@ -33,9 +33,9 @@ static void msg_get_next_packet()
sgpCurrPkt->dwSpaceLeft = sizeof(result->data);
result = (TMegaPkt *)&sgpMegaPkt;
while (result->pNext) {
while (result->pNext)
result = result->pNext;
}
result->pNext = sgpCurrPkt;
}
@ -51,29 +51,25 @@ static void msg_free_packets()
static void msg_pre_packet()
{
int i;
int spaceLeft, pktSize;
TMegaPkt *pkt;
TFakeCmdPlr *cmd, *tmpCmd;
TFakeDropPlr *dropCmd;
i = -1;
for (pkt = sgpMegaPkt; pkt != NULL; pkt = pkt->pNext) {
spaceLeft = sizeof(pkt->data);
cmd = (TFakeCmdPlr *)pkt->data;
for (TMegaPkt *pkt = sgpMegaPkt; pkt != NULL; pkt = pkt->pNext) {
BYTE * data = pkt->data;
int spaceLeft = sizeof(pkt->data);
while (spaceLeft != pkt->dwSpaceLeft) {
if (cmd->bCmd == FAKE_CMD_SETID) {
tmpCmd = cmd;
cmd++;
i = tmpCmd->bPlr;
if (*data == FAKE_CMD_SETID) {
TFakeCmdPlr *cmd = (TFakeCmdPlr *)data;
data += sizeof(*cmd);
spaceLeft -= sizeof(*cmd);
} else if (cmd->bCmd == FAKE_CMD_DROPID) {
dropCmd = (TFakeDropPlr *)cmd;
cmd += 3;
spaceLeft -= sizeof(*dropCmd);
multi_player_left(dropCmd->bPlr, dropCmd->dwReason);
i = cmd->bPlr;
} else if (*data == FAKE_CMD_DROPID) {
TFakeDropPlr *cmd = (TFakeDropPlr *)data;
data += sizeof(*cmd);
spaceLeft -= sizeof(*cmd);
multi_player_left(cmd->bPlr, cmd->dwReason);
} else {
pktSize = ParseCmd(i, (TCmd *)cmd);
cmd = (TFakeCmdPlr *)((char *)cmd + pktSize);
int pktSize = ParseCmd(i, (TCmd *)data);
data += pktSize;
spaceLeft -= pktSize;
}
}
@ -82,7 +78,6 @@ static void msg_pre_packet()
static void msg_send_packet(int pnum, const void *packet, DWORD dwSize)
{
TMegaPkt *packeta;
TFakeCmdPlr cmd;
if (pnum != sgnCurrMegaPlayer) {
@ -91,12 +86,10 @@ static void msg_send_packet(int pnum, const void *packet, DWORD dwSize)
cmd.bPlr = pnum;
msg_send_packet(pnum, &cmd, sizeof(cmd));
}
packeta = sgpCurrPkt;
if (sgpCurrPkt->dwSpaceLeft < dwSize) {
if (sgpCurrPkt->dwSpaceLeft < dwSize)
msg_get_next_packet();
packeta = sgpCurrPkt;
}
memcpy((char *)&packeta[1] - packeta->dwSpaceLeft, packet, dwSize);
memcpy(sgpCurrPkt->data + sizeof(sgpCurrPkt->data) - sgpCurrPkt->dwSpaceLeft, packet, dwSize);
sgpCurrPkt->dwSpaceLeft -= dwSize;
}
@ -177,23 +170,21 @@ BOOL msg_wait_resync()
void run_delta_info()
{
if (gbMaxPlayers != 1) {
gbBufferMsgs = 2;
msg_pre_packet();
gbBufferMsgs = 0;
msg_free_packets();
}
if (gbMaxPlayers == 1)
return;
gbBufferMsgs = 2;
msg_pre_packet();
gbBufferMsgs = 0;
msg_free_packets();
}
static BYTE *DeltaExportItem(BYTE *dst, TCmdPItem *src)
{
int i;
for (i = 0; i < MAXITEMS; i++) {
if (src->bCmd == 0xFF) {
*dst = 0xFF;
dst++;
} else {
for (int i = 0; i < MAXITEMS; i++, src++) {
if (src->bCmd == 0xFF)
*dst++ = 0xFF;
else {
#ifdef HELLFIRE
*reinterpret_cast<TCmdPItem *>(dst) = *src;
#else
@ -201,7 +192,6 @@ static BYTE *DeltaExportItem(BYTE *dst, TCmdPItem *src)
#endif
dst += sizeof(TCmdPItem);
}
src++;
}
return dst;
@ -209,9 +199,7 @@ static BYTE *DeltaExportItem(BYTE *dst, TCmdPItem *src)
static BYTE *DeltaImportItem(BYTE *src, TCmdPItem *dst)
{
int i;
for (i = 0; i < MAXITEMS; i++) {
for (int i = 0; i < MAXITEMS; i++, dst++) {
if (*src == 0xFF) {
memset(dst, 0xFF, sizeof(TCmdPItem));
src++;
@ -223,7 +211,6 @@ static BYTE *DeltaImportItem(BYTE *src, TCmdPItem *dst)
#endif
src += sizeof(TCmdPItem);
}
dst++;
}
return src;
@ -243,13 +230,10 @@ static BYTE *DeltaImportObject(BYTE *src, DObjectStr *dst)
static BYTE *DeltaExportMonster(BYTE *dst, DMonsterStr *src)
{
int i;
for (i = 0; i < MAXMONSTERS; i++) {
if (src->_mx == 0xFF) {
*dst = 0xFF;
dst++;
} else {
for (int i = 0; i < MAXMONSTERS; i++, src++) {
if (src->_mx == 0xFF)
*dst++ = 0xFF;
else {
#ifdef HELLFIRE
*reinterpret_cast<DMonsterStr *>(dst) = *src;
#else
@ -257,7 +241,6 @@ static BYTE *DeltaExportMonster(BYTE *dst, DMonsterStr *src)
#endif
dst += sizeof(DMonsterStr);
}
src++;
}
return dst;
@ -265,9 +248,7 @@ static BYTE *DeltaExportMonster(BYTE *dst, DMonsterStr *src)
static BYTE *DeltaImportMonster(BYTE *src, DMonsterStr *dst)
{
int i;
for (i = 0; i < MAXMONSTERS; i++) {
for (int i = 0; i < MAXMONSTERS; i++, dst++) {
if (*src == 0xFF) {
memset(dst, 0xFF, sizeof(DMonsterStr));
src++;
@ -279,7 +260,6 @@ static BYTE *DeltaImportMonster(BYTE *src, DMonsterStr *dst)
#endif
src += sizeof(DMonsterStr);
}
dst++;
}
return src;
@ -291,8 +271,7 @@ static BYTE *DeltaExportJunk(BYTE *dst)
for (i = 0; i < MAXPORTAL; i++) {
if (sgJunk.portal[i].x == 0xFF) {
*dst = 0xFF;
dst++;
*dst++ = 0xFF;
} else {
#ifdef HELLFIRE
*reinterpret_cast<DPortal *>(dst) = sgJunk.portal[i];
@ -365,10 +344,8 @@ static void DeltaImportJunk(BYTE *src)
static int msg_comp_level(BYTE *buffer, BYTE *end)
{
int size, pkSize;
size = end - buffer - 1;
pkSize = PkwareCompress(buffer + 1, size);
int size = end - buffer - 1;
int pkSize = PkwareCompress(buffer + 1, size);
*buffer = size != pkSize;
return pkSize + 1;
@ -377,13 +354,10 @@ static int msg_comp_level(BYTE *buffer, BYTE *end)
// DeltaSendAllLevels
void DeltaExportData(int pnum)
{
BYTE *dst, *dstEnd;
int size, i;
char src;
if (sgbDeltaChanged) {
dst = (BYTE *)DiabloAllocPtr(sizeof(DLevel) + 1);
for (i = 0; i < NUMLEVELS; i++) {
int size;
BYTE *dstEnd, *dst = (BYTE *)DiabloAllocPtr(sizeof(DLevel) + 1);
for (int i = 0; i < NUMLEVELS; i++) {
dstEnd = dst + 1;
dstEnd = DeltaExportItem(dstEnd, sgLevels[i].item);
dstEnd = DeltaExportObject(dstEnd, sgLevels[i].object);
@ -397,19 +371,16 @@ void DeltaExportData(int pnum)
dthread_send_delta(pnum, CMD_DLEVEL_JUNK, dst, size);
mem_free_dbg(dst);
}
src = 0;
char src = 0;
dthread_send_delta(pnum, CMD_DLEVEL_END, &src, 1);
}
static void DeltaImportData(BYTE cmd, DWORD recv_offset)
{
BYTE i;
BYTE *src;
if (sgRecvBuf[0] != 0)
PkwareDecompress(&sgRecvBuf[1], recv_offset, (sizeof(sgRecvBuf) / sizeof(sgRecvBuf[0])) - 1);
PkwareDecompress(&sgRecvBuf[1], recv_offset, sizeof(sgRecvBuf) - 1);
src = &sgRecvBuf[1];
BYTE *src = &sgRecvBuf[1];
if (cmd == CMD_DLEVEL_JUNK) {
DeltaImportJunk(src);
#ifdef HELLFIRE
@ -417,7 +388,7 @@ static void DeltaImportData(BYTE cmd, DWORD recv_offset)
#else
} else if (cmd >= CMD_DLEVEL_0 && cmd <= CMD_DLEVEL_16) {
#endif
i = cmd - CMD_DLEVEL_0;
BYTE i = cmd - CMD_DLEVEL_0;
src = DeltaImportItem(src, sgLevels[i].item);
src = DeltaImportObject(src, sgLevels[i].object);
DeltaImportMonster(src, sgLevels[i].monster);
@ -483,112 +454,104 @@ void delta_init()
void delta_kill_monster(int mi, BYTE x, BYTE y, BYTE bLevel)
{
DMonsterStr *pD;
if (gbMaxPlayers == 1)
return;
if (gbMaxPlayers != 1) {
sgbDeltaChanged = TRUE;
pD = &sgLevels[bLevel].monster[mi];
pD->_mx = x;
pD->_my = y;
pD->_mdir = monster[mi]._mdir;
pD->_mhitpoints = 0;
}
sgbDeltaChanged = TRUE;
DMonsterStr *pD = &sgLevels[bLevel].monster[mi];
pD->_mx = x;
pD->_my = y;
pD->_mdir = monster[mi]._mdir;
pD->_mhitpoints = 0;
}
void delta_monster_hp(int mi, int hp, BYTE bLevel)
{
DMonsterStr *pD;
if (gbMaxPlayers == 1)
return;
if (gbMaxPlayers != 1) {
sgbDeltaChanged = TRUE;
pD = &sgLevels[bLevel].monster[mi];
if (pD->_mhitpoints > hp)
pD->_mhitpoints = hp;
}
sgbDeltaChanged = TRUE;
DMonsterStr *pD = &sgLevels[bLevel].monster[mi];
if (pD->_mhitpoints > hp)
pD->_mhitpoints = hp;
}
void delta_sync_monster(const TSyncMonster *pSync, BYTE bLevel)
{
DMonsterStr *pD;
if (gbMaxPlayers == 1) {
if (gbMaxPlayers == 1)
return;
}
/// ASSERT: assert(pSync != NULL);
/// ASSERT: assert(bLevel < NUMLEVELS);
sgbDeltaChanged = TRUE;
pD = &sgLevels[bLevel].monster[pSync->_mndx];
if (pD->_mhitpoints != 0) {
pD->_mx = pSync->_mx;
pD->_my = pSync->_my;
pD->_mactive = UCHAR_MAX;
pD->_menemy = pSync->_menemy;
}
DMonsterStr *pD = &sgLevels[bLevel].monster[pSync->_mndx];
if (pD->_mhitpoints == 0)
return;
pD->_mx = pSync->_mx;
pD->_my = pSync->_my;
pD->_mactive = UCHAR_MAX;
pD->_menemy = pSync->_menemy;
}
void delta_sync_golem(TCmdGolem *pG, int pnum, BYTE bLevel)
{
DMonsterStr *pD;
if (gbMaxPlayers == 1)
return;
if (gbMaxPlayers != 1) {
sgbDeltaChanged = TRUE;
pD = &sgLevels[bLevel].monster[pnum];
DMonsterStr *pD = &sgLevels[bLevel].monster[pnum];
pD->_mx = pG->_mx;
pD->_my = pG->_my;
pD->_mactive = UCHAR_MAX;
pD->_menemy = pG->_menemy;
pD->_mdir = pG->_mdir;
pD->_mhitpoints = pG->_mhitpoints;
}
}
void delta_leave_sync(BYTE bLevel)
{
int i, ma;
DMonsterStr *pD;
if (gbMaxPlayers == 1)
return;
if (currlevel == 0)
glSeedTbl[0] = GetRndSeed();
if (currlevel <= 0)
return;
if (gbMaxPlayers != 1) {
if (currlevel == 0) {
glSeedTbl[0] = GetRndSeed();
}
if (currlevel > 0) {
for (i = 0; i < nummonsters; ++i) {
ma = monstactive[i];
if (monster[ma]._mhitpoints) {
sgbDeltaChanged = TRUE;
pD = &sgLevels[bLevel].monster[ma];
pD->_mx = monster[ma]._mx;
pD->_my = monster[ma]._my;
pD->_mdir = monster[ma]._mdir;
pD->_menemy = encode_enemy(ma);
pD->_mhitpoints = monster[ma]._mhitpoints;
pD->_mactive = monster[ma]._msquelch;
}
}
memcpy(&sgLocals[bLevel], automapview, sizeof(automapview));
}
for (int i = 0; i < nummonsters; i++) {
int ma = monstactive[i];
if (monster[ma]._mhitpoints == 0)
continue;
sgbDeltaChanged = TRUE;
DMonsterStr *pD = &sgLevels[bLevel].monster[ma];
pD->_mx = monster[ma]._mx;
pD->_my = monster[ma]._my;
pD->_mdir = monster[ma]._mdir;
pD->_menemy = encode_enemy(ma);
pD->_mhitpoints = monster[ma]._mhitpoints;
pD->_mactive = monster[ma]._msquelch;
}
memcpy(&sgLocals[bLevel].automapsv, automapview, sizeof(automapview));
}
static void delta_sync_object(int oi, BYTE bCmd, BYTE bLevel)
{
if (gbMaxPlayers != 1) {
sgbDeltaChanged = TRUE;
sgLevels[bLevel].object[oi].bCmd = bCmd;
}
if (gbMaxPlayers == 1)
return;
sgbDeltaChanged = TRUE;
sgLevels[bLevel].object[oi].bCmd = bCmd;
}
static BOOL delta_get_item(TCmdGItem *pI, BYTE bLevel)
{
TCmdPItem *pD;
int i;
if (gbMaxPlayers == 1)
return TRUE;
pD = sgLevels[bLevel].item;
TCmdPItem *pD = sgLevels[bLevel].item;
for (i = 0; i < MAXITEMS; i++, pD++) {
if (pD->bCmd == 0xFF || pD->wIndx != pI->wIndx || pD->wCI != pI->wCI || pD->dwSeed != pI->dwSeed)
continue;
@ -648,12 +611,11 @@ static BOOL delta_get_item(TCmdGItem *pI, BYTE bLevel)
static void delta_put_item(TCmdPItem *pI, int x, int y, BYTE bLevel)
{
int i;
TCmdPItem *pD;
if (gbMaxPlayers == 1) {
if (gbMaxPlayers == 1)
return;
}
pD = sgLevels[bLevel].item;
TCmdPItem *pD = sgLevels[bLevel].item;
for (i = 0; i < MAXITEMS; i++, pD++) {
if (pD->bCmd != CMD_WALKXY
&& pD->bCmd != 0xFF
@ -696,12 +658,11 @@ BOOL delta_quest_inited(int i)
void DeltaAddItem(int ii)
{
int i;
TCmdPItem *pD;
if (gbMaxPlayers == 1)
return;
pD = sgLevels[currlevel].item;
TCmdPItem *pD = sgLevels[currlevel].item;
for (i = 0; i < MAXITEMS; i++, pD++) {
if (pD->bCmd != 0xFF
&& pD->wIndx == item[ii].IDidx
@ -743,16 +704,15 @@ void DeltaAddItem(int ii)
void DeltaSaveLevel()
{
int i;
if (gbMaxPlayers == 1)
return;
if (gbMaxPlayers != 1) {
for (i = 0; i < MAX_PLRS; i++) {
if (i != myplr)
plr[i]._pGFXLoad = 0;
}
plr[myplr]._pLvlVisited[currlevel] = TRUE;
delta_leave_sync(currlevel);
for (int i = 0; i < MAX_PLRS; i++) {
if (i != myplr)
plr[i]._pGFXLoad = 0;
}
plr[myplr]._pLvlVisited[currlevel] = TRUE;
delta_leave_sync(currlevel);
}
void DeltaLoadLevel()
@ -762,9 +722,8 @@ void DeltaLoadLevel()
int x, y, xx, yy;
BOOL done;
if (gbMaxPlayers == 1) {
if (gbMaxPlayers == 1)
return;
}
deltaload = TRUE;
if (currlevel != 0) {
@ -784,7 +743,7 @@ void DeltaLoadLevel()
monster[i]._moldy = sgLevels[currlevel].monster[i]._my; // CODEFIX: useless assignment
M_ClearSquares(i);
if (monster[i]._mAi != AI_DIABLO) {
if (!monster[i]._uniqtype)
if (monster[i]._uniqtype == 0)
/// ASSERT: assert(monster[i].MType != NULL);
AddDead(monster[i]._mx, monster[i]._my, monster[i].MType->mdeadval, (direction)monster[i]._mdir);
else
@ -1091,7 +1050,6 @@ void NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, BYTE ii)
void NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p)
{
int ticks;
TCmdGItem cmd;
#ifdef HELLFIRE
@ -1109,8 +1067,8 @@ void NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p
return;
}
ticks = GetTickCount();
if (!cmd.dwTime) {
int ticks = GetTickCount();
if (cmd.dwTime == 0) {
cmd.dwTime = ticks;
} else if (ticks - cmd.dwTime > 5000) {
return;
@ -1121,7 +1079,6 @@ void NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p
BOOL NetSendCmdReq2(BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p)
{
int ticks;
TCmdGItem cmd;
#ifdef HELLFIRE
@ -1133,12 +1090,11 @@ BOOL NetSendCmdReq2(BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p)
cmd.bPnum = pnum;
cmd.bMaster = mast;
ticks = GetTickCount();
if (!cmd.dwTime) {
int ticks = GetTickCount();
if (cmd.dwTime == 0)
cmd.dwTime = ticks;
} else if (ticks - cmd.dwTime > 5000) {
else if (ticks - cmd.dwTime > 5000)
return FALSE;
}
multi_msg_add((BYTE *)&cmd.bCmd, sizeof(cmd));
@ -1281,13 +1237,16 @@ static BOOL i_own_level(int nReqLevel)
int i;
for (i = 0; i < MAX_PLRS; i++) {
if (plr[i].plractive
&& !plr[i]._pLvlChanging
&& plr[i].plrlevel == nReqLevel
&& (i != myplr || !gbBufferMsgs))
break;
if (!plr[i].plractive)
continue;
if (plr[i]._pLvlChanging)
continue;
if (plr[i].plrlevel != nReqLevel)
continue;
if (i == myplr && gbBufferMsgs != 0)
continue;
break;
}
return i == myplr;
}
@ -2118,20 +2077,33 @@ static DWORD On_AWAKEGOLEM(TCmd *pCmd, int pnum)
static DWORD On_MONSTDAMAGE(TCmd *pCmd, int pnum)
{
#ifdef HELLFIRE
TCmdMonDamage *p = (TCmdMonDamage *)pCmd;
#else
TCmdParam2 *p = (TCmdParam2 *)pCmd;
#endif
if (gbBufferMsgs == 1)
msg_send_packet(pnum, p, sizeof(*p));
msg_send_packet(pnum, p, sizeof(TCmdParam2)); // BUGFIX: change to sizeof(*p) or it still uses TCmdParam2 size for hellfire
else if (pnum != myplr) {
if (currlevel == plr[pnum].plrlevel) {
#ifdef HELLFIRE
monster[p->wMon].mWhoHit |= 1 << pnum;
if (monster[p->wMon]._mhitpoints >= 0) {
monster[p->wMon]._mhitpoints -= p->dwDam;
if ((monster[p->wMon]._mhitpoints >> 6) < 1)
monster[p->wMon]._mhitpoints = 1 << 6;
delta_monster_hp(p->wMon, monster[p->wMon]._mhitpoints, plr[pnum].plrlevel);
}
#else
monster[p->wParam1].mWhoHit |= 1 << pnum;
if (monster[p->wParam1]._mhitpoints) {
if (monster[p->wParam1]._mhitpoints != 0) {
monster[p->wParam1]._mhitpoints -= p->wParam2;
if ((monster[p->wParam1]._mhitpoints >> 6) < 1)
monster[p->wParam1]._mhitpoints = 1 << 6;
delta_monster_hp(p->wParam1, monster[p->wParam1]._mhitpoints, plr[pnum].plrlevel);
}
#endif
}
}
@ -2156,18 +2128,17 @@ static DWORD On_PLRDAMAGE(TCmd *pCmd, int pnum)
{
TCmdDamage *p = (TCmdDamage *)pCmd;
if (p->bPlr == myplr && currlevel != 0) {
if (gbBufferMsgs != 1 && currlevel == plr[pnum].plrlevel && p->dwDam <= 192000) {
if ((plr[myplr]._pHitPoints >> 6) > 0) {
drawhpflag = TRUE;
plr[myplr]._pHitPoints -= p->dwDam;
plr[myplr]._pHPBase -= p->dwDam;
if (plr[myplr]._pHitPoints > plr[myplr]._pMaxHP) {
plr[myplr]._pHitPoints = plr[myplr]._pMaxHP;
plr[myplr]._pHPBase = plr[myplr]._pMaxHPBase;
}
if ((plr[myplr]._pHitPoints >> 6) <= 0)
SyncPlrKill(myplr, 1);
if (p->bPlr == myplr && currlevel != 0 && gbBufferMsgs != 1) {
if (currlevel == plr[pnum].plrlevel && p->dwDam <= 192000 && plr[myplr]._pHitPoints >> 6 > 0) {
drawhpflag = TRUE;
plr[myplr]._pHitPoints -= p->dwDam;
plr[myplr]._pHPBase -= p->dwDam;
if (plr[myplr]._pHitPoints > plr[myplr]._pMaxHP) {
plr[myplr]._pHitPoints = plr[myplr]._pMaxHP;
plr[myplr]._pHPBase = plr[myplr]._pMaxHPBase;
}
if (plr[myplr]._pHitPoints >> 6 <= 0) {
SyncPlrKill(myplr, 1);
}
}
}
@ -2323,7 +2294,7 @@ static DWORD On_PLAYER_JOINLEVEL(TCmd *pCmd, int pnum)
msg_send_packet(pnum, p, sizeof(*p));
else {
plr[pnum]._pLvlChanging = FALSE;
if (plr[pnum]._pName[0] && !plr[pnum].plractive) {
if (plr[pnum]._pName[0] != 0 && !plr[pnum].plractive) {
plr[pnum].plractive = TRUE;
gbActivePlayers++;
EventPlrMsg("Player '%s' (level %d) just joined the game", plr[pnum]._pName, plr[pnum]._pLevel);
@ -2370,13 +2341,12 @@ static DWORD On_ACTIVATEPORTAL(TCmd *pCmd, int pnum)
if (currlevel == 0)
AddInTownPortal(pnum);
else if (currlevel == plr[pnum].plrlevel) {
int i;
BOOL addPortal = TRUE;
for (i = 0; i < nummissiles; i++) {
for (int i = 0; i < nummissiles; i++) {
int mi = missileactive[i];
if (missile[mi]._mitype == MIS_TOWN && missile[mi]._misource == pnum) {
addPortal = FALSE;
// BUGFIX: break
// CODEFIX: break
}
}
if (addPortal)
@ -2490,10 +2460,8 @@ static DWORD On_SYNCQUEST(TCmd *pCmd, int pnum)
#ifdef HELLFIRE
static DWORD On_ENDREFLECT(TCmd *pCmd, int pnum)
{
int i;
if (gbBufferMsgs != 1 && pnum != myplr && currlevel == plr[pnum].plrlevel) {
for (i = 0; i < nummissiles; i++) {
for (int i = 0; i < nummissiles; i++) {
int mi = missileactive[i];
if (missile[mi]._mitype == MIS_REFLECT && missile[mi]._misource == pnum) {
ClearMissileSpot(mi);
@ -2508,10 +2476,8 @@ static DWORD On_ENDREFLECT(TCmd *pCmd, int pnum)
static DWORD On_ENDSHIELD(TCmd *pCmd, int pnum)
{
int i;
if (gbBufferMsgs != 1 && pnum != myplr && currlevel == plr[pnum].plrlevel) {
for (i = 0; i < nummissiles; i++) {
for (int i = 0; i < nummissiles; i++) {
int mi = missileactive[i];
if (missile[mi]._mitype == MIS_MANASHIELD && missile[mi]._misource == pnum) {
ClearMissileSpot(mi);

Loading…
Cancel
Save