Wikia

Wikihack

Source:SLASH'EM 0.0.7E7F2/eshk.h

2,032pages on
this wiki
Talk0

Below is the full text to eshk.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/eshk.h#line123]], for example.

The latest source code for vanilla NetHack is at Source code.


The NetHack General Public License applies to screenshots, source code and other content from NetHack.
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.   	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.   #ifdef OTHER_SERVICES
39.   	long services;          /* Services offered */
40.   #define SHK_ID_BASIC    01L
41.   #define SHK_ID_PREMIUM  02L
42.   #define SHK_UNCURSE     010L
43.   #define SHK_APPRAISE    0100L
44.   #define SHK_SPECIAL_A   01000L
45.   #define SHK_SPECIAL_B   02000L
46.   #define SHK_SPECIAL_C   04000L
47.   #endif
48.   };
49.   
50.   #define ESHK(mon)	((struct eshk *)&(mon)->mextra[0])
51.   
52.   #define NOTANGRY(mon)	((mon)->mpeaceful)
53.   #define ANGRY(mon)	(!NOTANGRY(mon))
54.   
55.   # ifdef OTHER_SERVICES
56.   #define SHK_NOMATCH     0       /* Shk !know this class of object       */
57.   #define SHK_MATCH       1       /* Shk is expert                        */
58.   #define SHK_GENERAL     2       /* Shk runs a general store             */
59.   
60.   /*
61.    * FUNCTION shk_class_match
62.    *
63.    * Return TRUE if a object class matches the shop type.
64.    * I.e. shk_class_match(WEAPON_CLASS, shkp)
65.    *
66.    * Return:      SHK_MATCH, SHK_NOMATCH, SHK_GENERAL
67.    */
68.   
69.   #define shk_class_match(class, shkp) \
70.           ((shtypes[ESHK(shkp)->shoptype-SHOPBASE].symb == RANDOM_CLASS) ? \
71.                   SHK_GENERAL : \
72.            ((shtypes[ESHK(shkp)->shoptype-SHOPBASE].symb == class) ? \
73.                   SHK_MATCH : SHK_NOMATCH))
74.   # endif
75.   
76.   #endif /* ESHK_H */

Around Wikia's network

Random Wiki