MCPcopy Create free account
hub / github.com/diasurgical/devilution / CalcSelfItems

Function CalcSelfItems

Source/items.cpp:645–690  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

643}
644
645void CalcSelfItems(int pnum)
646{
647 int i;
648 PlayerStruct *p;
649 BOOL sf, changeflag;
650 int sa, ma, da;
651
652 p = &plr[pnum];
653
654 sa = 0;
655 ma = 0;
656 da = 0;
657 for (i = 0; i < NUM_INVLOC; i++) {
658 if (p->InvBody[i]._itype != ITYPE_NONE) {
659 p->InvBody[i]._iStatFlag = TRUE;
660 if (p->InvBody[i]._iIdentified) {
661 sa += p->InvBody[i]._iPLStr;
662 ma += p->InvBody[i]._iPLMag;
663 da += p->InvBody[i]._iPLDex;
664 }
665 }
666 }
667 do {
668 changeflag = FALSE;
669 for (i = 0; i < NUM_INVLOC; i++) {
670 if (p->InvBody[i]._itype != ITYPE_NONE && p->InvBody[i]._iStatFlag) {
671 sf = TRUE;
672 if (sa + p->_pBaseStr < p->InvBody[i]._iMinStr)
673 sf = FALSE;
674 if (ma + p->_pBaseMag < p->InvBody[i]._iMinMag)
675 sf = FALSE;
676 if (da + p->_pBaseDex < p->InvBody[i]._iMinDex)
677 sf = FALSE;
678 if (!sf) {
679 changeflag = TRUE;
680 p->InvBody[i]._iStatFlag = FALSE;
681 if (p->InvBody[i]._iIdentified) {
682 sa -= p->InvBody[i]._iPLStr;
683 ma -= p->InvBody[i]._iPLMag;
684 da -= p->InvBody[i]._iPLDex;
685 }
686 }
687 }
688 }
689 } while (changeflag);
690}
691
692void CalcPlrItemMin(int pnum)
693{

Callers 1

CalcPlrInvFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected