Source:Hack 1.0/def.obj.h

Below is the full text to def.obj.h from the source code of Hack 1.0. To link to a particular line, write [[Hack 1.0/def.obj.h#line123 ]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

1.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */ 2.     3.    struct obj { 4.   	struct obj *nobj; 5.   	unsigned o_id; 6.   	unsigned o_cnt_id;		/* id of container object is in */ 7.   	xchar ox,oy; 8.   	xchar odx,ody; 9.   	uchar otyp; 10.  	uchar owt; 11.  	unsigned quan;	/* small in general but large in case of gold */ 12.  	schar spe; 13.  	char olet; 14.  	Bitfield(oinvis,1); 15.  	Bitfield(odispl,1); 16.  	Bitfield(known,1);	/* exact nature known */ 17.  	Bitfield(dknown,1);	/* color or text known */ 18.  	Bitfield(cursed,1); 19.  	Bitfield(unpaid,1);	/* on some bill */ 20.  	Bitfield(rustfree,1); 21.  	Bitfield(onamelth,6); 22.  	long age;	/* creation date */ 23.  	long owornmask; 24.  #define	W_ARM	01L 25.  #define	W_ARM2	02L 26.  #define	W_ARMH	04L 27.  #define	W_ARMS	010L 28.  #define	W_ARMG	020L 29.  #define	W_ARMOR		(W_ARM | W_ARM2 | W_ARMH | W_ARMS | W_ARMG) 30.  #define	W_RINGL	010000L	/* make W_RINGL = RING_LEFT (see uprop) */ 31.  #define	W_RINGR	020000L 32.  #define	W_RING		(W_RINGL | W_RINGR) 33.  #define	W_WEP	01000L 34.  #define	W_BALL	02000L 35.  #define	W_CHAIN	04000L 36.  	long oextra[1]; 37.  };  38.    39.   extern struct obj *fobj; 40.   41.   #define newobj(xl)	(struct obj *) alloc((unsigned)(xl) + sizeof(struct obj)) 42.  #define	ONAME(otmp)	((char *) otmp->oextra)