|
|
|
|
@ -625,9 +625,9 @@ void DeltaAddItem(int ii)
|
|
|
|
|
TCmdPItem *pD = sgLevels[currlevel].item; |
|
|
|
|
for (i = 0; i < MAXITEMS; i++, pD++) { |
|
|
|
|
if (pD->bCmd != 0xFF |
|
|
|
|
&& pD->wIndx == item[ii].IDidx |
|
|
|
|
&& pD->wCI == item[ii]._iCreateInfo |
|
|
|
|
&& pD->dwSeed == item[ii]._iSeed |
|
|
|
|
&& pD->wIndx == items[ii].IDidx |
|
|
|
|
&& pD->wCI == items[ii]._iCreateInfo |
|
|
|
|
&& pD->dwSeed == items[ii]._iSeed |
|
|
|
|
&& (pD->bCmd == CMD_WALKXY || pD->bCmd == CMD_STAND)) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
@ -638,24 +638,24 @@ void DeltaAddItem(int ii)
|
|
|
|
|
if (pD->bCmd == 0xFF) { |
|
|
|
|
sgbDeltaChanged = TRUE; |
|
|
|
|
pD->bCmd = CMD_STAND; |
|
|
|
|
pD->x = item[ii]._ix; |
|
|
|
|
pD->y = item[ii]._iy; |
|
|
|
|
pD->wIndx = item[ii].IDidx; |
|
|
|
|
pD->wCI = item[ii]._iCreateInfo; |
|
|
|
|
pD->dwSeed = item[ii]._iSeed; |
|
|
|
|
pD->bId = item[ii]._iIdentified; |
|
|
|
|
pD->bDur = item[ii]._iDurability; |
|
|
|
|
pD->bMDur = item[ii]._iMaxDur; |
|
|
|
|
pD->bCh = item[ii]._iCharges; |
|
|
|
|
pD->bMCh = item[ii]._iMaxCharges; |
|
|
|
|
pD->wValue = item[ii]._ivalue; |
|
|
|
|
pD->wToHit = item[ii]._iPLToHit; |
|
|
|
|
pD->wMaxDam = item[ii]._iMaxDam; |
|
|
|
|
pD->bMinStr = item[ii]._iMinStr; |
|
|
|
|
pD->bMinMag = item[ii]._iMinMag; |
|
|
|
|
pD->bMinDex = item[ii]._iMinDex; |
|
|
|
|
pD->bAC = item[ii]._iAC; |
|
|
|
|
pD->dwBuff = item[ii].dwBuff; |
|
|
|
|
pD->x = items[ii]._ix; |
|
|
|
|
pD->y = items[ii]._iy; |
|
|
|
|
pD->wIndx = items[ii].IDidx; |
|
|
|
|
pD->wCI = items[ii]._iCreateInfo; |
|
|
|
|
pD->dwSeed = items[ii]._iSeed; |
|
|
|
|
pD->bId = items[ii]._iIdentified; |
|
|
|
|
pD->bDur = items[ii]._iDurability; |
|
|
|
|
pD->bMDur = items[ii]._iMaxDur; |
|
|
|
|
pD->bCh = items[ii]._iCharges; |
|
|
|
|
pD->bMCh = items[ii]._iMaxCharges; |
|
|
|
|
pD->wValue = items[ii]._ivalue; |
|
|
|
|
pD->wToHit = items[ii]._iPLToHit; |
|
|
|
|
pD->wMaxDam = items[ii]._iMaxDam; |
|
|
|
|
pD->bMinStr = items[ii]._iMinStr; |
|
|
|
|
pD->bMinMag = items[ii]._iMinMag; |
|
|
|
|
pD->bMinDex = items[ii]._iMinDex; |
|
|
|
|
pD->bAC = items[ii]._iAC; |
|
|
|
|
pD->dwBuff = items[ii].dwBuff; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -737,8 +737,8 @@ void DeltaLoadLevel()
|
|
|
|
|
sgLevels[currlevel].item[i].wCI, |
|
|
|
|
sgLevels[currlevel].item[i].dwSeed); |
|
|
|
|
if (ii != -1) { |
|
|
|
|
if (dItem[item[ii]._ix][item[ii]._iy] == ii + 1) |
|
|
|
|
dItem[item[ii]._ix][item[ii]._iy] = 0; |
|
|
|
|
if (dItem[items[ii]._ix][items[ii]._iy] == ii + 1) |
|
|
|
|
dItem[items[ii]._ix][items[ii]._iy] = 0; |
|
|
|
|
DeleteItem(ii, i); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -766,18 +766,18 @@ void DeltaLoadLevel()
|
|
|
|
|
sgLevels[currlevel].item[i].wValue, |
|
|
|
|
(sgLevels[currlevel].item[i].dwBuff & CF_HELLFIRE) != 0); |
|
|
|
|
if (sgLevels[currlevel].item[i].bId) |
|
|
|
|
item[ii]._iIdentified = TRUE; |
|
|
|
|
item[ii]._iDurability = sgLevels[currlevel].item[i].bDur; |
|
|
|
|
item[ii]._iMaxDur = sgLevels[currlevel].item[i].bMDur; |
|
|
|
|
item[ii]._iCharges = sgLevels[currlevel].item[i].bCh; |
|
|
|
|
item[ii]._iMaxCharges = sgLevels[currlevel].item[i].bMCh; |
|
|
|
|
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; |
|
|
|
|
item[ii].dwBuff = sgLevels[currlevel].item[i].dwBuff; |
|
|
|
|
items[ii]._iIdentified = TRUE; |
|
|
|
|
items[ii]._iDurability = sgLevels[currlevel].item[i].bDur; |
|
|
|
|
items[ii]._iMaxDur = sgLevels[currlevel].item[i].bMDur; |
|
|
|
|
items[ii]._iCharges = sgLevels[currlevel].item[i].bCh; |
|
|
|
|
items[ii]._iMaxCharges = sgLevels[currlevel].item[i].bMCh; |
|
|
|
|
items[ii]._iPLToHit = sgLevels[currlevel].item[i].wToHit; |
|
|
|
|
items[ii]._iMaxDam = sgLevels[currlevel].item[i].wMaxDam; |
|
|
|
|
items[ii]._iMinStr = sgLevels[currlevel].item[i].bMinStr; |
|
|
|
|
items[ii]._iMinMag = sgLevels[currlevel].item[i].bMinMag; |
|
|
|
|
items[ii]._iMinDex = sgLevels[currlevel].item[i].bMinDex; |
|
|
|
|
items[ii]._iAC = sgLevels[currlevel].item[i].bAC; |
|
|
|
|
items[ii].dwBuff = sgLevels[currlevel].item[i].dwBuff; |
|
|
|
|
} |
|
|
|
|
x = sgLevels[currlevel].item[i].x; |
|
|
|
|
y = sgLevels[currlevel].item[i].y; |
|
|
|
|
@ -797,9 +797,9 @@ void DeltaLoadLevel()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
item[ii]._ix = x; |
|
|
|
|
item[ii]._iy = y; |
|
|
|
|
dItem[item[ii]._ix][item[ii]._iy] = ii + 1; |
|
|
|
|
items[ii]._ix = x; |
|
|
|
|
items[ii]._iy = y; |
|
|
|
|
dItem[items[ii]._ix][items[ii]._iy] = ii + 1; |
|
|
|
|
RespawnItem(ii, FALSE); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -976,36 +976,36 @@ void NetSendCmdGItem(BOOL bHiPri, BYTE bCmd, BYTE mast, BYTE pnum, BYTE ii)
|
|
|
|
|
cmd.bLevel = currlevel; |
|
|
|
|
cmd.bCursitem = ii; |
|
|
|
|
cmd.dwTime = 0; |
|
|
|
|
cmd.x = item[ii]._ix; |
|
|
|
|
cmd.y = item[ii]._iy; |
|
|
|
|
cmd.wIndx = item[ii].IDidx; |
|
|
|
|
|
|
|
|
|
if (item[ii].IDidx == IDI_EAR) { |
|
|
|
|
cmd.wCI = item[ii]._iName[8] | (item[ii]._iName[7] << 8); |
|
|
|
|
cmd.dwSeed = item[ii]._iName[12] | ((item[ii]._iName[11] | ((item[ii]._iName[10] | (item[ii]._iName[9] << 8)) << 8)) << 8); |
|
|
|
|
cmd.bId = item[ii]._iName[13]; |
|
|
|
|
cmd.bDur = item[ii]._iName[14]; |
|
|
|
|
cmd.bMDur = item[ii]._iName[15]; |
|
|
|
|
cmd.bCh = item[ii]._iName[16]; |
|
|
|
|
cmd.bMCh = item[ii]._iName[17]; |
|
|
|
|
cmd.wValue = item[ii]._ivalue | (item[ii]._iName[18] << 8) | ((item[ii]._iCurs - ICURS_EAR_SORCERER) << 6); |
|
|
|
|
cmd.dwBuff = item[ii]._iName[22] | ((item[ii]._iName[21] | ((item[ii]._iName[20] | (item[ii]._iName[19] << 8)) << 8)) << 8); |
|
|
|
|
cmd.x = items[ii]._ix; |
|
|
|
|
cmd.y = items[ii]._iy; |
|
|
|
|
cmd.wIndx = items[ii].IDidx; |
|
|
|
|
|
|
|
|
|
if (items[ii].IDidx == IDI_EAR) { |
|
|
|
|
cmd.wCI = items[ii]._iName[8] | (items[ii]._iName[7] << 8); |
|
|
|
|
cmd.dwSeed = items[ii]._iName[12] | ((items[ii]._iName[11] | ((items[ii]._iName[10] | (items[ii]._iName[9] << 8)) << 8)) << 8); |
|
|
|
|
cmd.bId = items[ii]._iName[13]; |
|
|
|
|
cmd.bDur = items[ii]._iName[14]; |
|
|
|
|
cmd.bMDur = items[ii]._iName[15]; |
|
|
|
|
cmd.bCh = items[ii]._iName[16]; |
|
|
|
|
cmd.bMCh = items[ii]._iName[17]; |
|
|
|
|
cmd.wValue = items[ii]._ivalue | (items[ii]._iName[18] << 8) | ((items[ii]._iCurs - ICURS_EAR_SORCERER) << 6); |
|
|
|
|
cmd.dwBuff = items[ii]._iName[22] | ((items[ii]._iName[21] | ((items[ii]._iName[20] | (items[ii]._iName[19] << 8)) << 8)) << 8); |
|
|
|
|
} else { |
|
|
|
|
cmd.wCI = item[ii]._iCreateInfo; |
|
|
|
|
cmd.dwSeed = item[ii]._iSeed; |
|
|
|
|
cmd.bId = item[ii]._iIdentified; |
|
|
|
|
cmd.bDur = item[ii]._iDurability; |
|
|
|
|
cmd.bMDur = item[ii]._iMaxDur; |
|
|
|
|
cmd.bCh = item[ii]._iCharges; |
|
|
|
|
cmd.bMCh = item[ii]._iMaxCharges; |
|
|
|
|
cmd.wValue = item[ii]._ivalue; |
|
|
|
|
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; |
|
|
|
|
cmd.dwBuff = item[ii].dwBuff; |
|
|
|
|
cmd.wCI = items[ii]._iCreateInfo; |
|
|
|
|
cmd.dwSeed = items[ii]._iSeed; |
|
|
|
|
cmd.bId = items[ii]._iIdentified; |
|
|
|
|
cmd.bDur = items[ii]._iDurability; |
|
|
|
|
cmd.bMDur = items[ii]._iMaxDur; |
|
|
|
|
cmd.bCh = items[ii]._iCharges; |
|
|
|
|
cmd.bMCh = items[ii]._iMaxCharges; |
|
|
|
|
cmd.wValue = items[ii]._ivalue; |
|
|
|
|
cmd.wToHit = items[ii]._iPLToHit; |
|
|
|
|
cmd.wMaxDam = items[ii]._iMaxDam; |
|
|
|
|
cmd.bMinStr = items[ii]._iMinStr; |
|
|
|
|
cmd.bMinMag = items[ii]._iMinMag; |
|
|
|
|
cmd.bMinDex = items[ii]._iMinDex; |
|
|
|
|
cmd.bAC = items[ii]._iAC; |
|
|
|
|
cmd.dwBuff = items[ii].dwBuff; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (bHiPri) |
|
|
|
|
@ -1147,36 +1147,36 @@ void NetSendCmdDItem(BOOL bHiPri, int ii)
|
|
|
|
|
TCmdPItem cmd; |
|
|
|
|
|
|
|
|
|
cmd.bCmd = CMD_DROPITEM; |
|
|
|
|
cmd.x = item[ii]._ix; |
|
|
|
|
cmd.y = item[ii]._iy; |
|
|
|
|
cmd.wIndx = item[ii].IDidx; |
|
|
|
|
|
|
|
|
|
if (item[ii].IDidx == IDI_EAR) { |
|
|
|
|
cmd.wCI = item[ii]._iName[8] | (item[ii]._iName[7] << 8); |
|
|
|
|
cmd.dwSeed = item[ii]._iName[12] | ((item[ii]._iName[11] | ((item[ii]._iName[10] | (item[ii]._iName[9] << 8)) << 8)) << 8); |
|
|
|
|
cmd.bId = item[ii]._iName[13]; |
|
|
|
|
cmd.bDur = item[ii]._iName[14]; |
|
|
|
|
cmd.bMDur = item[ii]._iName[15]; |
|
|
|
|
cmd.bCh = item[ii]._iName[16]; |
|
|
|
|
cmd.bMCh = item[ii]._iName[17]; |
|
|
|
|
cmd.wValue = item[ii]._ivalue | (item[ii]._iName[18] << 8) | ((item[ii]._iCurs - ICURS_EAR_SORCERER) << 6); |
|
|
|
|
cmd.dwBuff = item[ii]._iName[22] | ((item[ii]._iName[21] | ((item[ii]._iName[20] | (item[ii]._iName[19] << 8)) << 8)) << 8); |
|
|
|
|
cmd.x = items[ii]._ix; |
|
|
|
|
cmd.y = items[ii]._iy; |
|
|
|
|
cmd.wIndx = items[ii].IDidx; |
|
|
|
|
|
|
|
|
|
if (items[ii].IDidx == IDI_EAR) { |
|
|
|
|
cmd.wCI = items[ii]._iName[8] | (items[ii]._iName[7] << 8); |
|
|
|
|
cmd.dwSeed = items[ii]._iName[12] | ((items[ii]._iName[11] | ((items[ii]._iName[10] | (items[ii]._iName[9] << 8)) << 8)) << 8); |
|
|
|
|
cmd.bId = items[ii]._iName[13]; |
|
|
|
|
cmd.bDur = items[ii]._iName[14]; |
|
|
|
|
cmd.bMDur = items[ii]._iName[15]; |
|
|
|
|
cmd.bCh = items[ii]._iName[16]; |
|
|
|
|
cmd.bMCh = items[ii]._iName[17]; |
|
|
|
|
cmd.wValue = items[ii]._ivalue | (items[ii]._iName[18] << 8) | ((items[ii]._iCurs - ICURS_EAR_SORCERER) << 6); |
|
|
|
|
cmd.dwBuff = items[ii]._iName[22] | ((items[ii]._iName[21] | ((items[ii]._iName[20] | (items[ii]._iName[19] << 8)) << 8)) << 8); |
|
|
|
|
} else { |
|
|
|
|
cmd.wCI = item[ii]._iCreateInfo; |
|
|
|
|
cmd.dwSeed = item[ii]._iSeed; |
|
|
|
|
cmd.bId = item[ii]._iIdentified; |
|
|
|
|
cmd.bDur = item[ii]._iDurability; |
|
|
|
|
cmd.bMDur = item[ii]._iMaxDur; |
|
|
|
|
cmd.bCh = item[ii]._iCharges; |
|
|
|
|
cmd.bMCh = item[ii]._iMaxCharges; |
|
|
|
|
cmd.wValue = item[ii]._ivalue; |
|
|
|
|
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; |
|
|
|
|
cmd.dwBuff = item[ii].dwBuff; |
|
|
|
|
cmd.wCI = items[ii]._iCreateInfo; |
|
|
|
|
cmd.dwSeed = items[ii]._iSeed; |
|
|
|
|
cmd.bId = items[ii]._iIdentified; |
|
|
|
|
cmd.bDur = items[ii]._iDurability; |
|
|
|
|
cmd.bMDur = items[ii]._iMaxDur; |
|
|
|
|
cmd.bCh = items[ii]._iCharges; |
|
|
|
|
cmd.bMCh = items[ii]._iMaxCharges; |
|
|
|
|
cmd.wValue = items[ii]._ivalue; |
|
|
|
|
cmd.wToHit = items[ii]._iPLToHit; |
|
|
|
|
cmd.wMaxDam = items[ii]._iMaxDam; |
|
|
|
|
cmd.bMinStr = items[ii]._iMinStr; |
|
|
|
|
cmd.bMinMag = items[ii]._iMinMag; |
|
|
|
|
cmd.bMinDex = items[ii]._iMinDex; |
|
|
|
|
cmd.bAC = items[ii]._iAC; |
|
|
|
|
cmd.dwBuff = items[ii].dwBuff; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (bHiPri) |
|
|
|
|
@ -1527,7 +1527,7 @@ static DWORD On_PUTITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
ii = SyncPutItem(pnum, p->x, p->y, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); |
|
|
|
|
if (ii != -1) { |
|
|
|
|
PutItemRecord(p->dwSeed, p->wCI, p->wIndx); |
|
|
|
|
delta_put_item(p, item[ii]._ix, item[ii]._iy, plr[pnum].plrlevel); |
|
|
|
|
delta_put_item(p, items[ii]._ix, items[ii]._iy, plr[pnum].plrlevel); |
|
|
|
|
check_update_plr(pnum); |
|
|
|
|
} |
|
|
|
|
return sizeof(*p); |
|
|
|
|
@ -1550,7 +1550,7 @@ static DWORD On_SYNCPUTITEM(TCmd *pCmd, int pnum)
|
|
|
|
|
int ii = SyncPutItem(pnum, p->x, p->y, p->wIndx, p->wCI, p->dwSeed, p->bId, p->bDur, p->bMDur, p->bCh, p->bMCh, p->wValue, p->dwBuff, p->wToHit, p->wMaxDam, p->bMinStr, p->bMinMag, p->bMinDex, p->bAC); |
|
|
|
|
if (ii != -1) { |
|
|
|
|
PutItemRecord(p->dwSeed, p->wCI, p->wIndx); |
|
|
|
|
delta_put_item(p, item[ii]._ix, item[ii]._iy, plr[pnum].plrlevel); |
|
|
|
|
delta_put_item(p, items[ii]._ix, items[ii]._iy, plr[pnum].plrlevel); |
|
|
|
|
check_update_plr(pnum); |
|
|
|
|
} |
|
|
|
|
return sizeof(*p); |
|
|
|
|
|