Browse Source

delta_get_item cleanup

pull/898/head
qndel 5 years ago committed by Anders Jenbo
parent
commit
2d6f5d09b8
  1. 103
      Source/msg.cpp

103
Source/msg.cpp

@ -1497,62 +1497,67 @@ DWORD On_GETITEM(TCmd *pCmd, int pnum)
BOOL delta_get_item(TCmdGItem *pI, BYTE bLevel)
{
BOOL result;
TCmdPItem *pD;
int i;
BOOL found;
result = TRUE;
found = FALSE;
if (gbMaxPlayers != 1) {
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) {
found = TRUE;
break;
}
if (gbMaxPlayers == 1)
return TRUE;
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;
if (pD->bCmd == CMD_WALKXY) {
return TRUE;
}
if (found) {
if (pD->bCmd == CMD_WALKXY) {
return result;
}
if (pD->bCmd == CMD_STAND) {
sgbDeltaChanged = 1;
pD->bCmd = CMD_WALKXY;
return result;
}
if (pD->bCmd == CMD_ACK_PLRINFO) {
pD->bCmd = 0xFF;
sgbDeltaChanged = 1;
return result;
}
app_fatal("delta:1");
if (pD->bCmd == CMD_STAND) {
sgbDeltaChanged = TRUE;
pD->bCmd = CMD_WALKXY;
return TRUE;
}
if (((pI->wCI >> 8) & 0x80) == 0)
return FALSE;
pD = sgLevels[bLevel].item;
for (i = 0; i < MAXITEMS; i++, pD++) {
if (pD->bCmd == 0xFF) {
sgbDeltaChanged = 1;
pD->bCmd = CMD_WALKXY;
pD->x = pI->x;
pD->y = pI->y;
pD->wIndx = pI->wIndx;
pD->wCI = pI->wCI;
pD->dwSeed = pI->dwSeed;
pD->bId = pI->bId;
pD->bDur = pI->bDur;
pD->bMDur = pI->bMDur;
pD->bCh = pI->bCh;
pD->bMCh = pI->bMCh;
pD->wValue = pI->wValue;
pD->dwBuff = pI->dwBuff;
result = TRUE;
break;
}
if (pD->bCmd == CMD_ACK_PLRINFO) {
sgbDeltaChanged = TRUE;
pD->bCmd = 0xFF;
return TRUE;
}
app_fatal("delta:1");
break;
}
if ((pI->wCI & CF_PREGEN) == 0)
return FALSE;
pD = sgLevels[bLevel].item;
for (i = 0; i < MAXITEMS; i++, pD++) {
if (pD->bCmd == 0xFF) {
sgbDeltaChanged = TRUE;
pD->bCmd = CMD_WALKXY;
pD->x = pI->x;
pD->y = pI->y;
pD->wIndx = pI->wIndx;
pD->wCI = pI->wCI;
pD->dwSeed = pI->dwSeed;
pD->bId = pI->bId;
pD->bDur = pI->bDur;
pD->bMDur = pI->bMDur;
pD->bCh = pI->bCh;
pD->bMCh = pI->bMCh;
pD->wValue = pI->wValue;
pD->dwBuff = pI->dwBuff;
#ifdef HELLFIRE
pD->wToHit = pI->wToHit;
pD->wMaxDam = pI->wMaxDam;
pD->bMinStr = pI->bMinStr;
pD->bMinMag = pI->bMinMag;
pD->bMinDex = pI->bMinDex;
pD->bAC = pI->bAC;
#endif
break;
}
}
return result;
return TRUE;
}
DWORD On_GOTOAGETITEM(TCmd *pCmd, int pnum)

Loading…
Cancel
Save