lpmoo-1.2/etc/
lpmoo-1.2/mudlib/
lpmoo-1.2/mudlib/etc/
lpmoo-1.2/mudlib/include/
lpmoo-1.2/mudlib/include/moo/
lpmoo-1.2/mudlib/lpc/
lpmoo-1.2/mudlib/std/auto/
lpmoo-1.2/mudlib/std/bfuns/
/*
 * NAME:	object.h
 * DESCRIPTION:	constants for object.c
 */

# define PROP_OWNER		0
# define PROP_PERMS		1
# define PROP_VALUE		2
# define PROP_CNAME		3

# define INHERITED(prop)	(sizeof(prop) == 3)

# define VERB_OWNER		0
# define VERB_PERMS		1
# define VERB_ARGS		1
# define VERB_NAMES		2
# define VERB_PREP		3
# define VERB_OBJECT		4

# define VP_DOBJSHIFT		4
# define VP_IOBJSHIFT		6
# define VP_OBJMASK		0x03
# define VP_PERMMASK		0x0F

# define VP_DOBJMASK		(VP_OBJMASK << VP_DOBJSHIFT)
# define VP_IOBJMASK		(VP_OBJMASK << VP_IOBJSHIFT)

# define DOBJ(perms)		(-(((perms) >> VP_DOBJSHIFT) & VP_OBJMASK) - 1)
# define IOBJ(perms)		(-(((perms) >> VP_IOBJSHIFT) & VP_OBJMASK) - 1)

# define SDOBJ(perms)		(((-(perms) - 1) & VP_OBJMASK) << VP_DOBJSHIFT)
# define SIOBJ(perms)		(((-(perms) - 1) & VP_OBJMASK) << VP_IOBJSHIFT)

# define F_PLAYER		0x0001	/* standard flags */
# define F_PROGRAMMER		0x0002
# define F_WIZARD		0x0004
# define F_OBSOLETE_1		0x0008
# define F_READ			0x0010
# define F_WRITE		0x0020
# define F_OBSOLETE_2		0x0040
# define F_FERTILE		0x0080

# define F_RECYCLING		0x0100	/* private flags */
# define F_OWNER		0x0200

# define VSPEC(prep, dobj, iobj)  \
  ((((prep) + 4) << 4) | ((-(iobj) - 1) << 2) | (-(dobj) - 1))
# define VSPEC_PREP(vspec)	(((vspec) >> 4) - 4)
# define VSPEC_DOBJ(vspec)	(-((vspec) & 0x03) - 1)
# define VSPEC_IOBJ(vspec)	(-(((vspec) >> 2) & 0x03) - 1)
# define VSPEC_ANY		0xFFFFFFFF
# define VSPEC_EXEC		0xFFFFFFFE

# define UNPROGRAMMED(verb)	((verb)[VERB_OBJECT] == 0)