diff --git a/Source/items.cpp b/Source/items.cpp index d0a5729af..a840e7f1f 100644 --- a/Source/items.cpp +++ b/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; } } }