Home | History | Annotate | Download | only in hack

Lines Matching defs:eshk

155 #include	"def.eshk.h"
157 #define ESHK(mon) ((struct eshk *)(&(mon->mextra[0])))
193 return (ESHK(mtmp)->shknam);
199 struct eshk *eshk = ESHK(mtmp);
201 if (eshk->shoplevel == dlevel)
202 rooms[eshk->shoproom].rtype = 0;
216 bill = &(ESHK(shopkeeper)->bill[0]);
242 ESHK(shopkeeper)->billct = 0;
249 int ct = ESHK(shopkeeper)->billct;
267 if (ESHK(shopkeeper)->billct) {
274 ESHK(shopkeeper)->robbed += total;
276 if ((rooms[ESHK(shopkeeper)->shoproom].rtype == GENERAL)
278 ESHK(shopkeeper)->following = 1;
310 || ESHK(shopkeeper)->shoproom != roomno)
316 if (!ESHK(shopkeeper)->visitct ||
317 strncmp(ESHK(shopkeeper)->customer, plname, PL_NSIZ)) {
320 ESHK(shopkeeper)->visitct = 0;
321 ESHK(shopkeeper)->following = 0;
322 (void) strncpy(ESHK(shopkeeper)->customer, plname, PL_NSIZ);
325 if (!ESHK(shopkeeper)->following) {
330 ESHK(shopkeeper)->visitct++ ? " again" : "",
332 shopnam[rooms[ESHK(shopkeeper)->shoproom].rtype - 8]);
356 if (mtmp->isshk && ESHK(mtmp)->shoproom == roomno
357 && ESHK(mtmp)->shoplevel == dlevel) {
359 bill = &(ESHK(shopkeeper)->bill[0]);
362 strncmp(ESHK(shopkeeper)->customer, plname, PL_NSIZ))
385 for (bp = bill; bp < &bill[ESHK(shopkeeper)->billct]; bp++)
418 ESHK(shopkeeper)->billct--;
419 *bp = bill[ESHK(shopkeeper)->billct];
428 long robbed = ESHK(shkp)->robbed;
437 ESHK(shkp)->robbed = robbed;
455 inroom(shopkeeper->mx, shopkeeper->my) == ESHK(shopkeeper)->shoproom)
462 ltmp = ESHK(shkp)->robbed;
482 ESHK(shkp)->robbed = 0;
483 ESHK(shkp)->following = 0;
484 if (ESHK(shkp)->shoplevel != dlevel) {
497 if (!ESHK(shkp)->billct) {
503 if (ESHK(shkp)->robbed) {
507 (u.ugold < ESHK(shkp)->robbed) ? "partially " : "",
509 pay(min(u.ugold, ESHK(shkp)->robbed), shkp);
510 ESHK(shkp)->robbed = 0;
524 if (strncmp(ESHK(shkp)->customer, plname, PL_NSIZ)
542 while (tmp < ESHK(shopkeeper)->billct) {
550 bill[tmp] = bill[--ESHK(shopkeeper)->billct];
555 shopnam[rooms[ESHK(shopkeeper)->shoproom].rtype - 8]);
615 if (shlevel == dlevel && shopkeeper && ESHK(shopkeeper)->billct) {
661 (u.ux == ESHK(shopkeeper)->shk.x && u.uy == ESHK(shopkeeper)->shk.y) ||
662 (u.ux == ESHK(shopkeeper)->shd.x && u.uy == ESHK(shopkeeper)->shd.y) ||
666 if (ESHK(shopkeeper)->billct == BILLSZ) {
670 bp = &bill[ESHK(shopkeeper)->billct];
675 ESHK(shopkeeper)->billct++;
699 if (ESHK(shopkeeper)->billct == BILLSZ)
703 bp = &bill[ESHK(shopkeeper)->billct];
708 ESHK(shopkeeper)->billct++;
719 if (!inshop() || (u.ux == ESHK(shopkeeper)->shk.x && u.uy == ESHK(shopkeeper)->shk.y) ||
720 (u.ux == ESHK(shopkeeper)->shd.x && u.uy == ESHK(shopkeeper)->shd.y))
736 ESHK(shopkeeper)->billct--;
737 *bp = bill[ESHK(shopkeeper)->billct];
747 inroom(shopkeeper->mx, shopkeeper->my) != ESHK(shopkeeper)->shoproom)
749 if (ESHK(shopkeeper)->billct == BILLSZ ||
750 ((tmp = shtypes[rooms[ESHK(shopkeeper)->shoproom].rtype - 8]) && tmp != obj->olet)
761 if (ESHK(shopkeeper)->robbed) {
762 if ((ESHK(shopkeeper)->robbed -= ltmp) < 0)
763 ESHK(shopkeeper)->robbed = 0;
791 for (bp = bill; bp - bill < ESHK(shopkeeper)->billct; bp++)
806 for (bp = bill; bp - bill < ESHK(shopkeeper)->billct; bp++) {
924 shkp->mx == ESHK(shkp)->shk.x && shkp->my == ESHK(shkp)->shk.y &&
925 u.ux == ESHK(shkp)->shd.x && u.uy == ESHK(shkp)->shd.y) {
960 if (ESHK(shkp)->following) {
961 if (strncmp(ESHK(shkp)->customer, plname, PL_NSIZ)) {
963 plname, ESHK(shkp)->customer);
964 ESHK(shkp)->following = 0;
967 if (!ESHK(shkp)->robbed) { /* impossible? */
968 ESHK(shkp)->following = 0;
982 gx = ESHK(shkp)->shk.x;
983 gy = ESHK(shkp)->shk.y;
985 if (ESHK(shkp)->following || ((z = holetime()) >= 0 && z * z <= udist)) {
1005 uondoor = (u.ux == ESHK(shkp)->shd.x &&
1006 u.uy == ESHK(shkp)->shd.y);
1008 if (ESHK(shkp)->billct)
1020 if (((!ESHK(shkp)->robbed && !ESHK(shkp)->billct) || avoid)
1052 || shkroom != ESHK(shkp)->shoproom
1053 || ESHK(shkp)->following) {
1144 || (mtmp->isshk && ESHK(mtmp)->following)