diff --git a/Source/control.cpp b/Source/control.cpp index 359ace9c2..921fc6003 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -1,7 +1,7 @@ #include "diablo.h" char sgbNextTalkSave; // weak -BYTE sgbTalkSavePos; // weak +BYTE sgbTalkSavePos; void *pDurIcons; void *pChrButtons; BOOL drawhpflag; // idb @@ -2621,41 +2621,30 @@ void control_drop_gold(char vkey) void control_remove_gold(int pnum, int gold_index) { - int v2; // edi - int v3; // esi - int v4; // edx - _DWORD *v5; // eax - int v6; // edx - _DWORD *v7; // eax - int v8; // eax + int gi; - v2 = pnum; - v3 = pnum; if (gold_index > 46) { - v6 = gold_index - 47; - v7 = (unsigned int *)((char *)&plr[v3].SpdList[v6]._ivalue); - *v7 -= dropGoldValue; - if (*v7 <= 0) - RemoveSpdBarItem(pnum, v6); + gi = gold_index - 47; + plr[pnum].SpdList[gi]._ivalue -= dropGoldValue; + if (plr[pnum].SpdList[gi]._ivalue > 0) + SetSpdbarGoldCurs(pnum, gi); else - SetSpdbarGoldCurs(pnum, v6); + RemoveSpdBarItem(pnum, gi); } else { - v4 = gold_index - 7; - v5 = (unsigned int *)((char *)&plr[v3].InvList[v4]._ivalue); - *v5 -= dropGoldValue; - if (*v5 <= 0) - RemoveInvItem(pnum, v4); + gi = gold_index - 7; + plr[pnum].InvList[gi]._ivalue -= dropGoldValue; + if (plr[pnum].InvList[gi]._ivalue > 0) + SetGoldCurs(pnum, gi); else - SetGoldCurs(pnum, v4); - } - SetPlrHandItem(&plr[v3].HoldItem, IDI_GOLD); - GetGoldSeed(v2, &plr[v3].HoldItem); - plr[v3].HoldItem._ivalue = dropGoldValue; - plr[v3].HoldItem._iStatFlag = 1; - control_set_gold_curs(v2); - v8 = CalculateGold(v2); + RemoveInvItem(pnum, gi); + } + SetPlrHandItem(&plr[pnum].HoldItem, IDI_GOLD); + GetGoldSeed(pnum, &plr[pnum].HoldItem); + plr[pnum].HoldItem._ivalue = dropGoldValue; + plr[pnum].HoldItem._iStatFlag = 1; + control_set_gold_curs(pnum); + plr[pnum]._pGold = CalculateGold(pnum); dropGoldValue = 0; - plr[v3]._pGold = v8; } void control_set_gold_curs(int pnum)