Browse Source

Add gold constants

pull/133/head
Duarte Alvim 7 years ago committed by Anders Jenbo
parent
commit
6a4142fb08
  1. 4
      Source/control.cpp
  2. 4
      Source/debug.cpp
  3. 52
      Source/inv.cpp
  4. 18
      Source/items.cpp
  5. 8
      Source/player.cpp
  6. 40
      Source/stores.cpp
  7. 4
      defs.h

4
Source/control.cpp

@ -2397,9 +2397,9 @@ void control_remove_gold(int pnum, int gold_index)
void control_set_gold_curs(int pnum)
{
if (plr[pnum].HoldItem._ivalue >= 2500)
if (plr[pnum].HoldItem._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].HoldItem._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].HoldItem._ivalue <= 1000)
else if (plr[pnum].HoldItem._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].HoldItem._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].HoldItem._iCurs = ICURS_GOLD_MEDIUM;

4
Source/debug.cpp

@ -102,9 +102,9 @@ void GiveGoldCheat()
ni = plr[myplr]._pNumInv++;
SetPlrHandItem(&plr[myplr].InvList[ni], IDI_GOLD);
GetPlrHandSeed(&plr[myplr].InvList[ni]);
plr[myplr].InvList[ni]._ivalue = 5000;
plr[myplr].InvList[ni]._ivalue = GOLD_MAX_LIMIT;
plr[myplr].InvList[ni]._iCurs = 6;
plr[myplr]._pGold += 5000;
plr[myplr]._pGold += GOLD_MAX_LIMIT;
plr[myplr].InvGrid[i] = plr[myplr]._pNumInv;
}
}

52
Source/inv.cpp

@ -589,11 +589,11 @@ BOOL GoldAutoPlace(int pnum)
done = FALSE;
for (i = 0; i < plr[pnum]._pNumInv && !done; i++) {
if (plr[pnum].InvList[i]._itype == ITYPE_GOLD) {
if (plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue <= 5000) {
if (plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue <= GOLD_MAX_LIMIT) {
plr[pnum].InvList[i]._ivalue = plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue;
if (plr[pnum].InvList[i]._ivalue >= 2500)
if (plr[pnum].InvList[i]._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].InvList[i]._ivalue <= 1000)
else if (plr[pnum].InvList[i]._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_MEDIUM;
@ -606,12 +606,12 @@ BOOL GoldAutoPlace(int pnum)
return done;
for (i = 0; i < plr[pnum]._pNumInv && !done; i++) {
if (plr[pnum].InvList[i]._itype == ITYPE_GOLD && plr[pnum].InvList[i]._ivalue < 5000) {
if (plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue <= 5000) {
if (plr[pnum].InvList[i]._itype == ITYPE_GOLD && plr[pnum].InvList[i]._ivalue < GOLD_MAX_LIMIT) {
if (plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue <= GOLD_MAX_LIMIT) {
plr[pnum].InvList[i]._ivalue = plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue;
if (plr[pnum].InvList[i]._ivalue >= 2500)
if (plr[pnum].InvList[i]._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].InvList[i]._ivalue <= 1000)
else if (plr[pnum].InvList[i]._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_MEDIUM;
@ -631,9 +631,9 @@ BOOL GoldAutoPlace(int pnum)
plr[pnum].InvList[ii] = plr[pnum].HoldItem;
plr[pnum]._pNumInv = plr[pnum]._pNumInv + 1;
plr[pnum].InvGrid[xx + yy] = plr[pnum]._pNumInv;
if (plr[pnum].HoldItem._ivalue >= 2500)
if (plr[pnum].HoldItem._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].InvList[ii]._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].HoldItem._ivalue <= 1000)
else if (plr[pnum].HoldItem._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].InvList[ii]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].InvList[ii]._iCurs = ICURS_GOLD_MEDIUM;
@ -955,25 +955,25 @@ void CheckInvPaste(int pnum, int mx, int my)
il--;
gt = plr[pnum].InvList[il]._ivalue;
ig = plr[pnum].HoldItem._ivalue + gt;
if (ig <= 5000) {
if (ig <= GOLD_MAX_LIMIT) {
plr[pnum].InvList[il]._ivalue = ig;
plr[pnum]._pGold += plr[pnum].HoldItem._ivalue;
if (ig >= 2500)
if (ig >= GOLD_MEDIUM_LIMIT)
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_LARGE;
else if (ig <= 1000)
else if (ig <= GOLD_SMALL_LIMIT)
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_MEDIUM;
} else {
ig = 5000 - gt;
ig = GOLD_MAX_LIMIT - gt;
plr[pnum]._pGold += ig;
plr[pnum].HoldItem._ivalue -= ig;
plr[pnum].InvList[il]._ivalue = 5000;
plr[pnum].InvList[il]._ivalue = GOLD_MAX_LIMIT;
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_LARGE;
// BUGFIX: incorrect values here are leftover from beta
if (plr[pnum].HoldItem._ivalue >= 2500)
if (plr[pnum].HoldItem._ivalue >= GOLD_MEDIUM_LIMIT)
cn = 18;
else if (plr[pnum].HoldItem._ivalue <= 1000)
else if (plr[pnum].HoldItem._ivalue <= GOLD_SMALL_LIMIT)
cn = 16;
else
cn = 17;
@ -984,10 +984,10 @@ void CheckInvPaste(int pnum, int mx, int my)
plr[pnum]._pNumInv++;
plr[pnum].InvGrid[yy + xx] = plr[pnum]._pNumInv;
plr[pnum]._pGold += plr[pnum].HoldItem._ivalue;
if (plr[pnum].HoldItem._ivalue <= 5000) {
if (plr[pnum].HoldItem._ivalue >= 2500)
if (plr[pnum].HoldItem._ivalue <= GOLD_MAX_LIMIT) {
if (plr[pnum].HoldItem._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].HoldItem._ivalue <= 1000)
else if (plr[pnum].HoldItem._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].InvList[il]._iCurs = ICURS_GOLD_MEDIUM;
@ -1037,26 +1037,26 @@ void CheckInvPaste(int pnum, int mx, int my)
if (plr[pnum].SpdList[ii]._itype != ITYPE_NONE) {
if (plr[pnum].SpdList[ii]._itype == ITYPE_GOLD) {
i = plr[pnum].HoldItem._ivalue + plr[pnum].SpdList[ii]._ivalue;
if (i <= 5000) {
if (i <= GOLD_MAX_LIMIT) {
plr[pnum].SpdList[ii]._ivalue += plr[pnum].HoldItem._ivalue;
plr[pnum]._pGold += plr[pnum].HoldItem._ivalue;
if (i >= 2500)
if (i >= GOLD_MEDIUM_LIMIT)
plr[pnum].SpdList[ii]._iCurs = ICURS_GOLD_LARGE;
else if (i <= 1000)
else if (i <= GOLD_SMALL_LIMIT)
plr[pnum].SpdList[ii]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].SpdList[ii]._iCurs = ICURS_GOLD_MEDIUM;
} else {
i = 5000 - plr[pnum].SpdList[ii]._ivalue;
i = GOLD_MAX_LIMIT - plr[pnum].SpdList[ii]._ivalue;
plr[pnum]._pGold += i;
plr[pnum].HoldItem._ivalue -= i;
plr[pnum].SpdList[ii]._ivalue = 5000;
plr[pnum].SpdList[ii]._ivalue = GOLD_MAX_LIMIT;
plr[pnum].SpdList[ii]._iCurs = ICURS_GOLD_LARGE;
// BUGFIX: incorrect values here are leftover from beta
if (plr[pnum].HoldItem._ivalue >= 2500)
if (plr[pnum].HoldItem._ivalue >= GOLD_MEDIUM_LIMIT)
cn = 18;
else if (plr[pnum].HoldItem._ivalue <= 1000)
else if (plr[pnum].HoldItem._ivalue <= GOLD_SMALL_LIMIT)
cn = 16;
else
cn = 17;

18
Source/items.cpp

@ -840,9 +840,9 @@ void SetPlrHandSeed(ItemStruct *h, int iseed)
void SetPlrHandGoldCurs(ItemStruct *h)
{
if (h->_ivalue >= 2500)
if (h->_ivalue >= GOLD_MEDIUM_LIMIT)
h->_iCurs = ICURS_GOLD_LARGE;
else if (h->_ivalue <= 1000)
else if (h->_ivalue <= GOLD_SMALL_LIMIT)
h->_iCurs = ICURS_GOLD_SMALL;
else
h->_iCurs = ICURS_GOLD_MEDIUM;
@ -932,7 +932,7 @@ void CreatePlrItems(int p)
plr[p].InvGrid[30] = plr[p]._pNumInv;
#ifdef _DEBUG
} else {
plr[p].HoldItem._ivalue = 5000;
plr[p].HoldItem._ivalue = GOLD_MAX_LIMIT;
plr[p].HoldItem._iCurs = ICURS_GOLD_LARGE;
plr[p]._pGold = plr[p].HoldItem._ivalue * 40;
for (i = 0; i < 40; i++) {
@ -1306,15 +1306,15 @@ void GetItemAttrs(int i, int idata, int lvl)
if (leveltype == DTYPE_HELL)
rndv += rndv >> 3;
if (rndv > 5000)
rndv = 5000;
if (rndv > GOLD_MAX_LIMIT)
rndv = GOLD_MAX_LIMIT;
item[i]._ivalue = rndv;
if (rndv >= 2500)
if (rndv >= GOLD_MEDIUM_LIMIT)
item[i]._iCurs = ICURS_GOLD_LARGE;
else
item[i]._iCurs = (rndv > 1000) + 4;
item[i]._iCurs = (rndv > GOLD_SMALL_LIMIT) + 4;
}
}
@ -2227,9 +2227,9 @@ void RecreateItem(int ii, int idx, unsigned short ic, int iseed, int ivalue)
item[ii]._iSeed = iseed;
item[ii]._iCreateInfo = ic;
item[ii]._ivalue = ivalue;
if (ivalue >= 2500)
if (ivalue >= GOLD_MEDIUM_LIMIT)
item[ii]._iCurs = ICURS_GOLD_LARGE;
else if (ivalue <= 1000)
else if (ivalue <= GOLD_SMALL_LIMIT)
item[ii]._iCurs = ICURS_GOLD_SMALL;
else
item[ii]._iCurs = ICURS_GOLD_MEDIUM;

8
Source/player.cpp

@ -1791,7 +1791,7 @@ void DropHalfPlayersGold(int pnum)
hGold = plr[pnum]._pGold >> 1;
for (i = 0; i < MAXBELTITEMS && hGold > 0; i++) {
if (plr[pnum].SpdList[i]._itype == ITYPE_GOLD && plr[pnum].SpdList[i]._ivalue != 5000) {
if (plr[pnum].SpdList[i]._itype == ITYPE_GOLD && plr[pnum].SpdList[i]._ivalue != GOLD_MAX_LIMIT) {
if (hGold < plr[pnum].SpdList[i]._ivalue) {
plr[pnum].SpdList[i]._ivalue -= hGold;
SetSpdbarGoldCurs(pnum, i);
@ -1841,7 +1841,7 @@ void DropHalfPlayersGold(int pnum)
drawpanflag = 255;
if (hGold > 0) {
for (i = 0; i < plr[pnum]._pNumInv && hGold > 0; i++) {
if (plr[pnum].InvList[i]._itype == ITYPE_GOLD && plr[pnum].InvList[i]._ivalue != 5000) {
if (plr[pnum].InvList[i]._itype == ITYPE_GOLD && plr[pnum].InvList[i]._ivalue != GOLD_MAX_LIMIT) {
if (hGold < plr[pnum].InvList[i]._ivalue) {
plr[pnum].InvList[i]._ivalue -= hGold;
SetGoldCurs(pnum, i);
@ -3306,8 +3306,8 @@ void ValidatePlayer()
gt = 0;
for (i = 0; i < plr[myplr]._pNumInv; i++) {
if (plr[myplr].InvList[i]._itype == ITYPE_GOLD) {
if (plr[myplr].InvList[i]._ivalue > 5000) {
plr[myplr].InvList[i]._ivalue = 5000;
if (plr[myplr].InvList[i]._ivalue > GOLD_MAX_LIMIT) {
plr[myplr].InvList[i]._ivalue = GOLD_MAX_LIMIT;
}
gt += plr[myplr].InvList[i]._ivalue;
}

40
Source/stores.cpp

@ -1782,9 +1782,9 @@ void S_SmithEnter()
void SetGoldCurs(int pnum, int i)
{
if (plr[pnum].InvList[i]._ivalue >= 2500)
if (plr[pnum].InvList[i]._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].InvList[i]._ivalue <= 1000)
else if (plr[pnum].InvList[i]._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].InvList[i]._iCurs = ICURS_GOLD_MEDIUM;
@ -1792,9 +1792,9 @@ void SetGoldCurs(int pnum, int i)
void SetSpdbarGoldCurs(int pnum, int i)
{
if (plr[pnum].SpdList[i]._ivalue >= 2500)
if (plr[pnum].SpdList[i]._ivalue >= GOLD_MEDIUM_LIMIT)
plr[pnum].SpdList[i]._iCurs = ICURS_GOLD_LARGE;
else if (plr[pnum].SpdList[i]._ivalue <= 1000)
else if (plr[pnum].SpdList[i]._ivalue <= GOLD_SMALL_LIMIT)
plr[pnum].SpdList[i]._iCurs = ICURS_GOLD_SMALL;
else
plr[pnum].SpdList[i]._iCurs = ICURS_GOLD_MEDIUM;
@ -1806,7 +1806,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 != 5000) {
if (plr[myplr].SpdList[i]._itype == ITYPE_GOLD && plr[myplr].SpdList[i]._ivalue != GOLD_MAX_LIMIT) {
if (cost < plr[myplr].SpdList[i]._ivalue) {
plr[myplr].SpdList[i]._ivalue -= cost;
SetSpdbarGoldCurs(myplr, i);
@ -1836,7 +1836,7 @@ void TakePlrsMoney(int cost)
drawpanflag = 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 != 5000) {
if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != GOLD_MAX_LIMIT) {
if (cost < plr[myplr].InvList[i]._ivalue) {
plr[myplr].InvList[i]._ivalue -= cost;
SetGoldCurs(myplr, i);
@ -1984,8 +1984,8 @@ BOOL StoreGoldFit(int idx)
int i, sz, cost, numsqrs;
cost = storehold[idx]._iIvalue;
sz = cost / 5000;
if (cost % 5000)
sz = cost / GOLD_MAX_LIMIT;
if (cost % GOLD_MAX_LIMIT)
sz++;
SetCursor_(storehold[idx]._iCurs + CURSOR_FIRSTITEM);
@ -2001,16 +2001,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 != 5000) {
if (cost + plr[myplr].InvList[i]._ivalue <= 5000)
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)
cost = 0;
else
cost -= 5000 - plr[myplr].InvList[i]._ivalue;
cost -= GOLD_MAX_LIMIT - plr[myplr].InvList[i]._ivalue;
}
}
sz = cost / 5000;
if (cost % 5000)
sz = cost / GOLD_MAX_LIMIT;
if (cost % GOLD_MAX_LIMIT)
sz++;
return numsqrs >= sz;
@ -2059,22 +2059,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 != 5000) {
if (cost + plr[myplr].InvList[i]._ivalue <= 5000) {
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) {
plr[myplr].InvList[i]._ivalue += cost;
SetGoldCurs(myplr, i);
cost = 0;
} else {
cost -= 5000 - plr[myplr].InvList[i]._ivalue;
plr[myplr].InvList[i]._ivalue = 5000;
cost -= GOLD_MAX_LIMIT - plr[myplr].InvList[i]._ivalue;
plr[myplr].InvList[i]._ivalue = GOLD_MAX_LIMIT;
SetGoldCurs(myplr, i);
}
}
}
if (cost > 0) {
while (cost > 5000) {
PlaceStoreGold(5000);
cost -= 5000;
while (cost > GOLD_MAX_LIMIT) {
PlaceStoreGold(GOLD_MAX_LIMIT);
cost -= GOLD_MAX_LIMIT;
}
PlaceStoreGold(cost);
}

4
defs.h

@ -51,6 +51,10 @@
// from diablo 2 beta
#define MAXEXP 2000000000
#define GOLD_SMALL_LIMIT 1000
#define GOLD_MEDIUM_LIMIT 2500
#define GOLD_MAX_LIMIT 5000
#define PLR_NAME_LEN 32
#define MAXPATHNODES 300

Loading…
Cancel
Save