From 11d625cf5a22badf371e4ccded8b10cc4ab0f8ea Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Thu, 11 Apr 2019 21:18:03 +0200 Subject: [PATCH] Clean up InvGetItem --- Source/inv.cpp | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/Source/inv.cpp b/Source/inv.cpp index 02e82d6de..30d1f518c 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -1743,42 +1743,33 @@ void CheckQuestItem(int pnum) void InvGetItem(int pnum, int ii) { - int v2; // ebp - int v3; // edx - int v4; // ecx - int v5; // ecx - int pnuma; // [esp+4h] [ebp-8h] - int v7; // [esp+8h] [ebp-4h] - - v7 = ii; - pnuma = pnum; + int i; + if (dropGoldFlag) { dropGoldFlag = FALSE; dropGoldValue = 0; } - v2 = ii; + if (dItem[item[ii]._ix][item[ii]._iy]) { if (myplr == pnum && pcurs >= CURSOR_FIRSTITEM) NetSendCmdPItem(TRUE, CMD_SYNCPUTITEM, plr[myplr].WorldX, plr[myplr].WorldY); - _HIBYTE(item[v2]._iCreateInfo) &= 0x7Fu; - qmemcpy(&plr[pnuma].HoldItem, &item[v2], sizeof(plr[pnuma].HoldItem)); - CheckQuestItem(pnuma); - CheckBookLevel(pnuma); - CheckItemStats(pnuma); - v3 = 0; - dItem[item[v2]._ix][item[v2]._iy] = 0; - while (v3 < numitems) { - v4 = itemactive[v3]; - if (v4 == v7) { - DeleteItem(v4, v3); - v3 = 0; + item[ii]._iCreateInfo &= ~0x8000; + plr[pnum].HoldItem = item[ii]; + CheckQuestItem(pnum); + CheckBookLevel(pnum); + CheckItemStats(pnum); + dItem[item[ii]._ix][item[ii]._iy] = 0; + i = 0; + while (i < numitems) { + if (itemactive[i] == ii) { + DeleteItem(itemactive[i], i); + i = 0; } else { - ++v3; + i++; } } - v5 = plr[pnuma].HoldItem._iCurs; pcursitem = -1; - SetCursor_(v5 + CURSOR_FIRSTITEM); + SetCursor_(plr[pnum].HoldItem._iCurs + CURSOR_FIRSTITEM); } } // 4B8CC0: using guessed type char pcursitem;