From e33ea53086ca94f22ec2aea9afa942fd26265877 Mon Sep 17 00:00:00 2001 From: Juliano Leal Goncalves Date: Mon, 15 Mar 2021 23:28:44 -0300 Subject: [PATCH] :recycle: Pass ItemStruct on inv AutoGetItem function --- Source/inv.cpp | 18 +++++++++--------- Source/inv.h | 2 +- Source/msg.cpp | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Source/inv.cpp b/Source/inv.cpp index a5a4cf78d..48f2ac682 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -2150,7 +2150,7 @@ void InvGetItem(int pnum, ItemStruct *item, int ii) SetCursor_(plr[pnum].HoldItem._iCurs + CURSOR_FIRSTITEM); } -void AutoGetItem(int pnum, int ii) +void AutoGetItem(int pnum, ItemStruct *item, int ii) { int i, idx; int w, h; @@ -2165,11 +2165,11 @@ void AutoGetItem(int pnum, int ii) dropGoldValue = 0; } - if (dItem[items[ii]._ix][items[ii]._iy] == 0) + if (dItem[item->_ix][item->_iy] == 0) return; - items[ii]._iCreateInfo &= ~CF_PREGEN; - plr[pnum].HoldItem = items[ii]; /// BUGFIX: overwrites cursor item, allowing for belt dupe bug + item->_iCreateInfo &= ~CF_PREGEN; + plr[pnum].HoldItem = *item; /// BUGFIX: overwrites cursor item, allowing for belt dupe bug CheckQuestItem(pnum); CheckBookLevel(pnum); CheckItemStats(pnum); @@ -2177,8 +2177,8 @@ void AutoGetItem(int pnum, int ii) if (plr[pnum].HoldItem._itype == ITYPE_GOLD) { done = GoldAutoPlace(pnum); if (!done) { - items[ii]._ivalue = plr[pnum].HoldItem._ivalue; - SetPlrHandGoldCurs(&items[ii]); + item->_ivalue = plr[pnum].HoldItem._ivalue; + SetPlrHandGoldCurs(item); } } else { done = AutoEquipEnabled(plr[pnum], plr[pnum].HoldItem) && AutoEquip(pnum, plr[pnum].HoldItem); @@ -2210,9 +2210,9 @@ void AutoGetItem(int pnum, int ii) PlaySFX(random_(0, 3) + PS_WARR14); } } - plr[pnum].HoldItem = items[ii]; - RespawnItem(&items[ii], TRUE); - NetSendCmdPItem(TRUE, CMD_RESPAWNITEM, items[ii]._ix, items[ii]._iy); + plr[pnum].HoldItem = *item; + RespawnItem(item, TRUE); + NetSendCmdPItem(TRUE, CMD_RESPAWNITEM, item->_ix, item->_iy); plr[pnum].HoldItem._itype = ITYPE_NONE; } diff --git a/Source/inv.h b/Source/inv.h index b6c2a372b..cc1e0a7cb 100644 --- a/Source/inv.h +++ b/Source/inv.h @@ -53,7 +53,7 @@ void CheckInvItem(bool isShiftHeld = false); void CheckInvScrn(bool isShiftHeld); void CheckItemStats(int pnum); void InvGetItem(int pnum, ItemStruct *item, int ii); -void AutoGetItem(int pnum, int ii); +void AutoGetItem(int pnum, ItemStruct *item, int ii); int FindGetItem(int idx, WORD ci, int iseed); void SyncGetItem(int x, int y, int idx, WORD ci, int iseed); BOOL CanPut(int x, int y); diff --git a/Source/msg.cpp b/Source/msg.cpp index 9653573e7..b7ff06ae9 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -1461,7 +1461,7 @@ static DWORD On_REQUESTAGITEM(TCmd *pCmd, int pnum) if (p->bPnum != myplr) SyncGetItem(p->x, p->y, p->wIndx, p->wCI, p->dwSeed); else - AutoGetItem(myplr, p->bCursitem); + AutoGetItem(myplr, &items[p->bCursitem], p->bCursitem); SetItemRecord(p->dwSeed, p->wCI, p->wIndx); } else if (!NetSendCmdReq2(CMD_REQUESTAGITEM, myplr, p->bPnum, p)) NetSendCmdExtra(p); @@ -1485,9 +1485,9 @@ static DWORD On_AGETITEM(TCmd *pCmd, int pnum) if (currlevel != p->bLevel) { int ii = SyncPutItem(myplr, plr[myplr]._px, plr[myplr]._py, 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) - AutoGetItem(myplr, ii); + AutoGetItem(myplr, &items[ii], ii); } else - AutoGetItem(myplr, p->bCursitem); + AutoGetItem(myplr, &items[p->bCursitem], p->bCursitem); } else SyncGetItem(p->x, p->y, p->wIndx, p->wCI, p->dwSeed); }