From c46d31c993ea5e87d3ed8082ac8a49514ed84f8a Mon Sep 17 00:00:00 2001 From: Austin Wagner Date: Fri, 9 Apr 2021 23:22:26 -0400 Subject: [PATCH] Fix manual gold stacking when max is modified Affects dragging and dropping gold in inventory and gaining gold via purchases when the Auric Amulet is equipped --- Source/inv.cpp | 12 ++++++------ Source/stores.cpp | 32 ++++++++++++++++---------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Source/inv.cpp b/Source/inv.cpp index 6f55738b5..5d4b5b879 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -1382,15 +1382,15 @@ void CheckInvPaste(int pnum, int mx, int my) il--; gt = plr[pnum].InvList[il]._ivalue; ig = plr[pnum].HoldItem._ivalue + gt; - if (ig <= GOLD_MAX_LIMIT) { + if (ig <= MaxGold) { plr[pnum].InvList[il]._ivalue = ig; plr[pnum]._pGold += plr[pnum].HoldItem._ivalue; SetPlrHandGoldCurs(&plr[pnum].InvList[il]); } else { - ig = GOLD_MAX_LIMIT - gt; + ig = MaxGold - gt; plr[pnum]._pGold += ig; plr[pnum].HoldItem._ivalue -= ig; - plr[pnum].InvList[il]._ivalue = GOLD_MAX_LIMIT; + plr[pnum].InvList[il]._ivalue = MaxGold; plr[pnum].InvList[il]._iCurs = ICURS_GOLD_LARGE; // BUGFIX: incorrect values here are leftover from beta (fixed) cn = GetGoldCursor(plr[pnum].HoldItem._ivalue); @@ -1448,15 +1448,15 @@ void CheckInvPaste(int pnum, int mx, int my) if (!plr[pnum].SpdList[ii].isEmpty()) { if (plr[pnum].SpdList[ii]._itype == ITYPE_GOLD) { i = plr[pnum].HoldItem._ivalue + plr[pnum].SpdList[ii]._ivalue; - if (i <= GOLD_MAX_LIMIT) { + if (i <= MaxGold) { plr[pnum].SpdList[ii]._ivalue = i; plr[pnum]._pGold += plr[pnum].HoldItem._ivalue; SetPlrHandGoldCurs(&plr[pnum].SpdList[ii]); } else { - i = GOLD_MAX_LIMIT - plr[pnum].SpdList[ii]._ivalue; + i = MaxGold - plr[pnum].SpdList[ii]._ivalue; plr[pnum]._pGold += i; plr[pnum].HoldItem._ivalue -= i; - plr[pnum].SpdList[ii]._ivalue = GOLD_MAX_LIMIT; + plr[pnum].SpdList[ii]._ivalue = MaxGold; plr[pnum].SpdList[ii]._iCurs = ICURS_GOLD_LARGE; // BUGFIX: incorrect values here are leftover from beta (fixed) diff --git a/Source/stores.cpp b/Source/stores.cpp index 0b02d2312..a4463377e 100644 --- a/Source/stores.cpp +++ b/Source/stores.cpp @@ -1384,8 +1384,8 @@ bool StoreGoldFit(int idx) int i, sz, cost, numsqrs; cost = storehold[idx]._iIvalue; - sz = cost / GOLD_MAX_LIMIT; - if (cost % GOLD_MAX_LIMIT != 0) + sz = cost / MaxGold; + if (cost % MaxGold != 0) sz++; NewCursor(storehold[idx]._iCurs + CURSOR_FIRSTITEM); @@ -1401,16 +1401,16 @@ bool StoreGoldFit(int idx) } for (i = 0; i < plr[myplr]._pNumInv; i++) { - if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != GOLD_MAX_LIMIT) { - if (cost + plr[myplr].InvList[i]._ivalue <= GOLD_MAX_LIMIT) + if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != MaxGold) { + if (cost + plr[myplr].InvList[i]._ivalue <= MaxGold) cost = 0; else - cost -= GOLD_MAX_LIMIT - plr[myplr].InvList[i]._ivalue; + cost -= MaxGold - plr[myplr].InvList[i]._ivalue; } } - sz = cost / GOLD_MAX_LIMIT; - if (cost % GOLD_MAX_LIMIT) + sz = cost / MaxGold; + if (cost % MaxGold) sz++; return numsqrs >= sz; @@ -1466,22 +1466,22 @@ void StoreSellItem() } plr[myplr]._pGold += cost; for (i = 0; i < plr[myplr]._pNumInv && cost > 0; i++) { - if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != GOLD_MAX_LIMIT) { - if (cost + plr[myplr].InvList[i]._ivalue <= GOLD_MAX_LIMIT) { + if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != MaxGold) { + if (cost + plr[myplr].InvList[i]._ivalue <= MaxGold) { plr[myplr].InvList[i]._ivalue += cost; SetGoldCurs(myplr, i); cost = 0; } else { - cost -= GOLD_MAX_LIMIT - plr[myplr].InvList[i]._ivalue; - plr[myplr].InvList[i]._ivalue = GOLD_MAX_LIMIT; + cost -= MaxGold - plr[myplr].InvList[i]._ivalue; + plr[myplr].InvList[i]._ivalue = MaxGold; SetGoldCurs(myplr, i); } } } if (cost > 0) { - while (cost > GOLD_MAX_LIMIT) { - PlaceStoreGold(GOLD_MAX_LIMIT); - cost -= GOLD_MAX_LIMIT; + while (cost > MaxGold) { + PlaceStoreGold(MaxGold); + cost -= MaxGold; } PlaceStoreGold(cost); } @@ -2628,7 +2628,7 @@ void TakePlrsMoney(int cost) plr[myplr]._pGold = CalculateGold(myplr) - cost; for (i = 0; i < MAXBELTITEMS && cost > 0; i++) { - if (plr[myplr].SpdList[i]._itype == ITYPE_GOLD && plr[myplr].SpdList[i]._ivalue != GOLD_MAX_LIMIT) { + if (plr[myplr].SpdList[i]._itype == ITYPE_GOLD && plr[myplr].SpdList[i]._ivalue != MaxGold) { if (cost < plr[myplr].SpdList[i]._ivalue) { plr[myplr].SpdList[i]._ivalue -= cost; SetSpdbarGoldCurs(myplr, i); @@ -2658,7 +2658,7 @@ void TakePlrsMoney(int cost) force_redraw = 255; if (cost > 0) { for (i = 0; i < plr[myplr]._pNumInv && cost > 0; i++) { - if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != GOLD_MAX_LIMIT) { + if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != MaxGold) { if (cost < plr[myplr].InvList[i]._ivalue) { plr[myplr].InvList[i]._ivalue -= cost; SetGoldCurs(myplr, i);