1 /* SCCS Id: @(#)eshk.h 3.4 1997/05/01 */ 2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3 /* NetHack may be freely redistributed. See license for details. */ 4 5 #ifndef ESHK_H 6 #define ESHK_H 7 8 #define REPAIR_DELAY 5 /* minimum delay between shop damage & repair */ 9 10 #define BILLSZ 200 11 12 struct bill_x { 13 unsigned bo_id; 14 boolean useup; 15 long price; /* price per unit */ 16 long bquan; /* amount used up */ 17 }; 18 19 struct eshk { 20 long robbed; /* amount stolen by most recent customer */ 21 long credit; /* amount credited to customer */ 22 long debit; /* amount of debt for using unpaid items */ 23 long loan; /* shop-gold picked (part of debit) */ 24 int shoptype; /* the value of rooms[shoproom].rtype */ 25 schar shoproom; /* index in rooms; set by inshop() */ 26 schar unused; /* to force alignment for stupid compilers */ 27 boolean following; /* following customer since he owes us sth */ 28 boolean surcharge; /* angry shk inflates prices */ 29 boolean cheapskate; /* offers less than normal for sold goods */ 30 coord shk; /* usual position shopkeeper */ 31 coord shd; /* position shop door */ 32 d_level shoplevel; /* level (& dungeon) of his shop */ 33 int billct; /* no. of entries of bill[] in use */ 34 struct bill_x bill[BILLSZ]; 35 struct bill_x *bill_p; 36 int visitct; /* nr of visits by most recent customer */ 37 char customer[PL_NSIZ]; /* most recent customer */ 38 char shknam[PL_NSIZ]; 39 }; 40 41 #define ESHK(mon) ((struct eshk *)&(mon)->mextra[0]) 42 43 #define NOTANGRY(mon) ((mon)->mpeaceful) 44 #define ANGRY(mon) (!NOTANGRY(mon)) 45 46 #endif /* ESHK_H */ 47