Browse Source

CalcSelfItems cleanup

pull/876/head
qndel 6 years ago committed by Anders Jenbo
parent
commit
1d308c5f95
  1. 37
      Source/items.cpp

37
Source/items.cpp

@ -1164,6 +1164,7 @@ void CalcSelfItems(int pnum)
{
int i;
PlayerStruct *p;
ItemStruct *pi;
BOOL sf, changeflag;
int sa, ma, da;
@ -1172,34 +1173,36 @@ void CalcSelfItems(int pnum)
sa = 0;
ma = 0;
da = 0;
for (i = 0; i < NUM_INVLOC; i++) {
if (p->InvBody[i]._itype != ITYPE_NONE) {
p->InvBody[i]._iStatFlag = TRUE;
if (p->InvBody[i]._iIdentified) {
sa += p->InvBody[i]._iPLStr;
ma += p->InvBody[i]._iPLMag;
da += p->InvBody[i]._iPLDex;
pi = p->InvBody;
for (i = 0; i < NUM_INVLOC; i++, pi++) {
if (pi->_itype != ITYPE_NONE) {
pi->_iStatFlag = TRUE;
if (pi->_iIdentified) {
sa += pi->_iPLStr;
ma += pi->_iPLMag;
da += pi->_iPLDex;
}
}
}
do {
changeflag = FALSE;
for (i = 0; i < NUM_INVLOC; i++) {
if (p->InvBody[i]._itype != ITYPE_NONE && p->InvBody[i]._iStatFlag) {
pi = p->InvBody;
for (i = 0; i < NUM_INVLOC; i++, pi++) {
if (pi->_itype != ITYPE_NONE && pi->_iStatFlag) {
sf = TRUE;
if (sa + p->_pBaseStr < p->InvBody[i]._iMinStr)
if (sa + p->_pBaseStr < pi->_iMinStr)
sf = FALSE;
if (ma + p->_pBaseMag < p->InvBody[i]._iMinMag)
if (ma + p->_pBaseMag < pi->_iMinMag)
sf = FALSE;
if (da + p->_pBaseDex < p->InvBody[i]._iMinDex)
if (da + p->_pBaseDex < pi->_iMinDex)
sf = FALSE;
if (!sf) {
changeflag = TRUE;
p->InvBody[i]._iStatFlag = FALSE;
if (p->InvBody[i]._iIdentified) {
sa -= p->InvBody[i]._iPLStr;
ma -= p->InvBody[i]._iPLMag;
da -= p->InvBody[i]._iPLDex;
pi->_iStatFlag = FALSE;
if (pi->_iIdentified) {
sa -= pi->_iPLStr;
ma -= pi->_iPLMag;
da -= pi->_iPLDex;
}
}
}

Loading…
Cancel
Save