Below is the full text to include/eshk.h from NetHack 3.4.3. To link to a particular line, write {{sourcecode|eshk.h|123}}, for example.
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.
| The NetHack General Public License applies to screenshots, source code and other content from NetHack. |
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
Each shopkeeper has a fixed-length array to track what you owe them. If your bill exceeds this length, the shopkeeper will not charge you. (shk.c, line 2093, shk.c, line 2210)
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. coord shk; /* usual position shopkeeper */ 30. coord shd; /* position shop door */ 31. d_level shoplevel; /* level (& dungeon) of his shop */ 32. int billct; /* no. of entries of bill[] in use */ 33. struct bill_x bill[BILLSZ]; 34. struct bill_x *bill_p; 35. int visitct; /* nr of visits by most recent customer */ 36. char customer[PL_NSIZ]; /* most recent customer */ 37. char shknam[PL_NSIZ]; 38. }; 39. 40. #define ESHK(mon) ((struct eshk *)&(mon)->mextra[0]) 41. 42. #define NOTANGRY(mon) ((mon)->mpeaceful) 43. #define ANGRY(mon) (!NOTANGRY(mon)) 44. 45. #endif /* ESHK_H */