From 0bd8b2b664ac0faa9af57b79e33cbbf3516bafed Mon Sep 17 00:00:00 2001 From: qndel Date: Sun, 8 Nov 2020 00:06:39 +0100 Subject: [PATCH] 2 functions --- Source/msg.cpp | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/Source/msg.cpp b/Source/msg.cpp index a06cc2fcb..7e22dfc54 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -670,7 +670,11 @@ static void delta_put_item(TCmdPItem *pI, int x, int y, BYTE bLevel) for (i = 0; i < MAXITEMS; i++, pD++) { if (pD->bCmd == 0xFF) { sgbDeltaChanged = TRUE; +#ifdef HELLFIRE + *pD = *pI; +#else memcpy(pD, pI, sizeof(TCmdPItem)); +#endif pD->bCmd = CMD_ACK_PLRINFO; pD->x = x; pD->y = y; @@ -767,19 +771,17 @@ void DeltaLoadLevel() for (i = 0; i < nummonsters; i++) { if (sgLevels[currlevel].monster[i]._mx != 0xFF) { M_ClearSquares(i); - x = sgLevels[currlevel].monster[i]._mx; - y = sgLevels[currlevel].monster[i]._my; - monster[i]._mx = x; - monster[i]._my = y; - monster[i]._moldx = x; - monster[i]._moldy = y; - monster[i]._mfutx = x; - monster[i]._mfuty = y; + monster[i]._mx = sgLevels[currlevel].monster[i]._mx; + monster[i]._my = sgLevels[currlevel].monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mfutx = monster[i]._mx; + monster[i]._mfuty = monster[i]._my; if (sgLevels[currlevel].monster[i]._mhitpoints != -1) monster[i]._mhitpoints = sgLevels[currlevel].monster[i]._mhitpoints; - if (!sgLevels[currlevel].monster[i]._mhitpoints) { - monster[i]._moldx = x; - monster[i]._moldy = y; + if (sgLevels[currlevel].monster[i]._mhitpoints == 0) { + monster[i]._moldx = sgLevels[currlevel].monster[i]._mx; // CODEFIX: useless assignment + monster[i]._moldy = sgLevels[currlevel].monster[i]._my; // CODEFIX: useless assignment M_ClearSquares(i); if (monster[i]._mAi != AI_DIABLO) { if (!monster[i]._uniqtype) @@ -849,6 +851,14 @@ void DeltaLoadLevel() item[ii]._iMaxDur = sgLevels[currlevel].item[i].bMDur; item[ii]._iCharges = sgLevels[currlevel].item[i].bCh; item[ii]._iMaxCharges = sgLevels[currlevel].item[i].bMCh; +#ifdef HELLFIRE + item[ii]._iPLToHit = sgLevels[currlevel].item[i].wToHit; + item[ii]._iMaxDam = sgLevels[currlevel].item[i].wMaxDam; + item[ii]._iMinStr = sgLevels[currlevel].item[i].bMinStr; + item[ii]._iMinMag = sgLevels[currlevel].item[i].bMinMag; + item[ii]._iMinDex = sgLevels[currlevel].item[i].bMinDex; + item[ii]._iAC = sgLevels[currlevel].item[i].bAC; +#endif } x = sgLevels[currlevel].item[i].x; y = sgLevels[currlevel].item[i].y; @@ -870,7 +880,7 @@ void DeltaLoadLevel() } item[ii]._ix = x; item[ii]._iy = y; - dItem[x][y] = ii + 1; + dItem[item[ii]._ix][item[ii]._iy] = ii + 1; RespawnItem(ii, FALSE); numitems++; } @@ -1250,6 +1260,14 @@ void NetSendCmdDItem(BOOL bHiPri, int ii) cmd.bCh = item[ii]._iCharges; cmd.bMCh = item[ii]._iMaxCharges; cmd.wValue = item[ii]._ivalue; +#ifdef HELLFIRE + cmd.wToHit = item[ii]._iPLToHit; + cmd.wMaxDam = item[ii]._iMaxDam; + cmd.bMinStr = item[ii]._iMinStr; + cmd.bMinMag = item[ii]._iMinMag; + cmd.bMinDex = item[ii]._iMinDex; + cmd.bAC = item[ii]._iAC; +#endif } if (bHiPri)