Commit | Line | Data |
---|---|---|
15637ed4 RG |
1 | /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ |
2 | /* def.obj.h - version 1.0.3 */ | |
3 | ||
4 | struct obj { | |
5 | struct obj *nobj; | |
6 | unsigned o_id; | |
7 | unsigned o_cnt_id; /* id of container object is in */ | |
8 | xchar ox,oy; | |
9 | xchar odx,ody; | |
10 | uchar otyp; | |
11 | uchar owt; | |
12 | uchar quan; /* use oextra for tmp gold objects */ | |
13 | schar spe; /* quality of weapon, armor or ring (+ or -) | |
14 | number of charges for wand ( >= -1 ) | |
15 | special for uball and amulet %% BAH */ | |
16 | char olet; | |
17 | char invlet; | |
18 | Bitfield(oinvis,1); /* not yet implemented */ | |
19 | Bitfield(odispl,1); | |
20 | Bitfield(known,1); /* exact nature known */ | |
21 | Bitfield(dknown,1); /* color or text known */ | |
22 | Bitfield(cursed,1); | |
23 | Bitfield(unpaid,1); /* on some bill */ | |
24 | Bitfield(rustfree,1); | |
25 | Bitfield(onamelth,6); | |
26 | long age; /* creation date */ | |
27 | long owornmask; | |
28 | #define W_ARM 01L | |
29 | #define W_ARM2 02L | |
30 | #define W_ARMH 04L | |
31 | #define W_ARMS 010L | |
32 | #define W_ARMG 020L | |
33 | #define W_ARMOR (W_ARM | W_ARM2 | W_ARMH | W_ARMS | W_ARMG) | |
34 | #define W_RINGL 010000L /* make W_RINGL = RING_LEFT (see uprop) */ | |
35 | #define W_RINGR 020000L | |
36 | #define W_RING (W_RINGL | W_RINGR) | |
37 | #define W_WEP 01000L | |
38 | #define W_BALL 02000L | |
39 | #define W_CHAIN 04000L | |
40 | long oextra[1]; /* used for name of ordinary objects - length | |
41 | is flexible; amount for tmp gold objects */ | |
42 | }; | |
43 | ||
44 | extern struct obj *fobj; | |
45 | ||
46 | #define newobj(xl) (struct obj *) alloc((unsigned)(xl) + sizeof(struct obj)) | |
47 | #define ONAME(otmp) ((char *) otmp->oextra) | |
48 | #define OGOLD(otmp) (otmp->oextra[0]) |