Lines Matching refs:obj

72 static struct bill_x *onbill(struct obj *);
75 static struct obj *bp_to_obj(struct bill_x *);
76 static int getprice(struct obj *);
83 struct obj *billobjs = 0;
85 obfree(struct obj *obj, struct obj *merge) in obfree() argument
87 free(obj); in obfree()
98 addtobill(struct obj *obj) in addtobill() argument
102 subfrombill(struct obj *obj) in subfrombill() argument
106 splitbill(struct obj *o1, struct obj *o2) in splitbill()
128 shkcatch(struct obj *obj) in shkcatch() argument
163 struct obj *billobjs; /* objects on bill with bp->useup */
219 struct obj *obj; in setpaid() local
221 for (obj = invent; obj; obj = obj->nobj) in setpaid()
222 obj->unpaid = 0; in setpaid()
223 for (obj = fobj; obj; obj = obj->nobj) in setpaid()
224 obj->unpaid = 0; in setpaid()
225 for (obj = fcobj; obj; obj = obj->nobj) in setpaid()
226 obj->unpaid = 0; in setpaid()
228 for (obj = mtmp->minvent; obj; obj = obj->nobj) in setpaid()
229 obj->unpaid = 0; in setpaid()
231 for (obj = mtmp->minvent; obj; obj = obj->nobj) in setpaid()
232 obj->unpaid = 0; in setpaid()
233 while ((obj = billobjs) != NULL) { in setpaid()
234 billobjs = obj->nobj; in setpaid()
235 free(obj); in setpaid()
375 onbill(struct obj *obj) in onbill() argument
381 if (bp->bo_id == obj->o_id) { in onbill()
382 if (!obj->unpaid) in onbill()
386 if (obj->unpaid) in onbill()
393 obfree(struct obj *obj, struct obj *merge) in obfree() argument
395 struct bill_x *bp = onbill(obj); in obfree()
400 obj->unpaid = 0; /* only for doinvbill */ in obfree()
401 obj->nobj = billobjs; in obfree()
402 billobjs = obj; in obfree()
417 free(obj); in obfree()
561 struct obj *obj; in dopayobj() local
565 obj = bp_to_obj(bp); in dopayobj()
567 if (!obj) { in dopayobj()
572 if (!obj->unpaid && !bp->useup) { in dopayobj()
576 obj->unpaid = 0; in dopayobj()
582 doname(obj)); in dopayobj()
583 obj->unpaid = 1; in dopayobj()
588 doname(obj), ltmp, plur(ltmp)); in dopayobj()
590 struct obj *otmp = billobjs; in dopayobj()
591 if (obj == billobjs) in dopayobj()
592 billobjs = obj->nobj; in dopayobj()
594 while (otmp && otmp->nobj != obj) in dopayobj()
597 otmp->nobj = obj->nobj; in dopayobj()
601 free(obj); in dopayobj()
628 static struct obj *
631 struct obj *obj; in bp_to_obj() local
636 obj = o_on(id, billobjs); in bp_to_obj()
637 else if (!(obj = o_on(id, invent)) && in bp_to_obj()
638 !(obj = o_on(id, fobj)) && in bp_to_obj()
639 !(obj = o_on(id, fcobj))) { in bp_to_obj()
641 if ((obj = o_on(id, mtmp->minvent)) != NULL) in bp_to_obj()
644 if ((obj = o_on(id, mtmp->minvent)) != NULL) in bp_to_obj()
647 return (obj); in bp_to_obj()
652 addtobill(struct obj *obj) in addtobill() argument
658 onbill(obj) /* perhaps we threw it away earlier */ in addtobill()
666 bp->bo_id = obj->o_id; in addtobill()
667 bp->bquan = obj->quan; in addtobill()
669 bp->price = getprice(obj); in addtobill()
671 obj->unpaid = 1; in addtobill()
675 splitbill(struct obj *obj, struct obj *otmp) in splitbill() argument
680 bp = onbill(obj); in splitbill()
708 subfrombill(struct obj *obj) in subfrombill() argument
712 struct obj *otmp; in subfrombill()
717 if ((bp = onbill(obj)) != 0) { in subfrombill()
718 obj->unpaid = 0; in subfrombill()
719 if (bp->bquan > obj->quan) { in subfrombill()
721 *otmp = *obj; in subfrombill()
723 otmp->quan = (bp->bquan -= obj->quan); in subfrombill()
735 if (obj->unpaid) { in subfrombill()
737 obj->unpaid = 0; in subfrombill()
745 ((tmp = shtypes[rooms[ESHK(shopkeeper)->shoproom].rtype - 8]) && tmp != obj->olet) in subfrombill()
746 || strchr("_0", obj->olet)) { in subfrombill()
750 ltmp = getprice(obj) * obj->quan; in subfrombill()
767 Monnam(shopkeeper), doname(obj)); in subfrombill()
769 pline("You sold %s and got %ld gold piece%s.", doname(obj), ltmp, in subfrombill()
778 struct obj *obj; in doinvbill() local
788 ((obj = bp_to_obj(bp)) && obj->quan < bp->bquan)) in doinvbill()
802 obj = bp_to_obj(bp); in doinvbill()
803 if (!obj) { in doinvbill()
807 if (bp->useup || bp->bquan > obj->quan) { in doinvbill()
810 oquan = obj->quan; in doinvbill()
814 obj->quan = uquan; /* cheat doname */ in doinvbill()
816 "x - %s", doname(obj)); in doinvbill()
817 obj->quan = oquan; /* restore value */ in doinvbill()
838 getprice(struct obj *obj) in getprice() argument
842 switch (obj->olet) { in getprice()
847 tmp = 10 * rnd((obj->otyp == EXPENSIVE_CAMERA) ? 150 : 30); in getprice()
858 if (obj->otyp == SCR_MAIL) in getprice()
872 ac = ARM_BONUS(obj); in getprice()
878 if (obj->otyp < BOOMERANG) in getprice()
880 else if (obj->otyp == LONG_SWORD || in getprice()
881 obj->otyp == TWO_HANDED_SWORD) in getprice()
902 struct obj *otmp = invent; in realhunger()
912 shkcatch(struct obj *obj) in shkcatch() argument
921 pline("%s nimbly catches the %s.", Monnam(shkp), xname(obj)); in shkcatch()
922 obj->nobj = shkp->minvent; in shkcatch()
923 shkp->minvent = obj; in shkcatch()
945 struct obj *ib = 0; in shk_move()
1109 struct obj *obj, *obj2; in shopdig() local
1112 for (obj = invent; obj; obj = obj2) { in shopdig()
1113 obj2 = obj->nobj; in shopdig()
1114 if (obj->owornmask) in shopdig()
1116 freeinv(obj); in shopdig()
1117 obj->nobj = shopkeeper->minvent; in shopdig()
1118 shopkeeper->minvent = obj; in shopdig()
1119 if (obj->unpaid) in shopdig()
1120 subfrombill(obj); in shopdig()