/* attrs.h - Attribute definitions */
#ifndef _ATTRS_H
#define _ATTRS_H

#ifndef	lint
static char attrs_RCSid[] = "$Id: attrs.h,v 1.7 1995/03/20 23:59:37 ambar Exp $";
USE(attrs_RCSid);
#endif

#include "copyright.h"

/* Attribute flags */
#define	AF_ODARK	0x0001	/* players other than owner can't see it */
#define	AF_DARK		0x0002	/* No one can see it */
#define	AF_WIZARD	0x0004	/* only wizards can change it */
#define	AF_MDARK	0x0008	/* Only wizards can see it. Dark to mortals */
#define	AF_INTERNAL	0x0010	/* Don't show even to #1 */
#define	AF_NOCMD	0x0020	/* Don't create a @ command for it */
#define	AF_LOCK		0x0040	/* Attribute is locked */
#define	AF_DELETED	0x0080	/* Attribute should be ignored */
#define	AF_NOPROG	0x0100	/* Don't process $-commands from this attr */
#define	AF_GOD		0x0200	/* Only #1 can change it */
#define	AF_IS_LOCK	0x0400	/* Attribute is a lock */
#define	AF_VISUAL	0x0800	/* Anyone can see */
#define	AF_PRIVATE	0x1000	/* Not inherited by children */
#define AF_HTML		0x2000	/* Don't HTML escape this in did_it() */
#define AF_NOPARSE	0x4000  /* Don't evaluate when checking for $-cmds */

#define	A_OSUCC		1	/* Others success message */
#define	A_OFAIL		2	/* Others fail message */
#define	A_FAIL		3	/* Invoker fail message */
#define	A_SUCC		4	/* Invoker success message */
#define	A_PASS		5	/* Password (only meaningful for players) */
#define	A_DESC		6	/* Description */
#define	A_SEX		7	/* Sex */
#define	A_ODROP		8	/* Others drop message */
#define	A_DROP		9	/* Invoker drop message */
#define	A_OKILL		10	/* Others kill message */
#define	A_KILL		11	/* Invoker kill message */
#define	A_ASUCC		12	/* Success action list */
#define	A_AFAIL		13	/* Failure action list */
#define	A_ADROP		14	/* Drop action list */
#define	A_AKILL		15	/* Kill action list */
#define	A_AUSE		16	/* Use action list */
#define	A_CHARGES	17	/* Number of charges remaining */
#define	A_RUNOUT	18	/* Actions done when no more charges */
#define	A_STARTUP	19	/* Actions run when game started up */
#define	A_ACLONE	20	/* Actions run when obj is cloned */
#define	A_APAY		21	/* Actions run when given COST pennies */
#define	A_OPAY		22	/* Others pay message */
#define	A_PAY		23	/* Invoker pay message */
#define	A_COST		24	/* Number of pennies needed to invoke xPAY */
#define	A_MONEY		25	/* Value or Wealth (internal) */
#define	A_LISTEN	26	/* (Wildcarded) string to listen for */
#define	A_AAHEAR	27	/* Actions to do when anyone says LISTEN str */
#define	A_AMHEAR	28	/* Actions to do when I say LISTEN str */
#define	A_AHEAR		29	/* Actions to do when others say LISTEN str */
#define	A_LAST		30	/* Date/time of last login (players only) */
#define	A_QUEUEMAX	31	/* Max. # of entries obj has in the queue */
#define	A_IDESC		32	/* Inside description (ENTER to get inside) */
#define	A_ENTER		33	/* Invoker enter message */
#define	A_OXENTER	34	/* Others enter message in dest */
#define	A_AENTER	35	/* Enter action list */
#define	A_ADESC		36	/* Describe action list */
#define	A_ODESC		37	/* Others describe message */
#define	A_RQUOTA	38	/* Relative object quota */
#define	A_ACONNECT	39	/* Actions run when player connects */
#define	A_ADISCONNECT	40	/* Actions run when player disconnectes */
#define	A_ALLOWANCE	41	/* Daily allowance, if diff from default */
#define	A_LOCK		42	/* Object lock */
#define	A_NAME		43	/* Object name */
#define	A_COMMENT	44	/* Wizard-accessable comments */
#define	A_USE		45	/* Invoker use message */
#define	A_OUSE		46	/* Others use message */
#define	A_SEMAPHORE	47	/* Semaphore control info */
#define	A_TIMEOUT	48	/* Per-user disconnect timeout */
#define	A_QUOTA		49	/* Absolute quota (to speed up @quota) */
#define	A_LEAVE		50	/* Invoker leave message */
#define	A_OLEAVE	51	/* Others leave message in src */
#define	A_ALEAVE	52	/* Leave action list */
#define	A_OENTER	53	/* Others enter message in src */
#define	A_OXLEAVE	54	/* Others leave message in dest */
#define	A_MOVE		55	/* Invoker move message */
#define	A_OMOVE		56	/* Others move message */
#define	A_AMOVE		57	/* Move action list */
#define	A_ALIAS		58	/* Alias for player names */
#define	A_LENTER	59	/* ENTER lock */
#define	A_LLEAVE	60	/* LEAVE lock */
#define	A_LPAGE		61	/* PAGE lock */
#define	A_LUSE		62	/* USE lock */
#define	A_LGIVE		63	/* Give lock (who may give me away?) */
#define	A_EALIAS	64	/* Alternate names for ENTER */
#define	A_LALIAS	65	/* Alternate names for LEAVE */
#define	A_EFAIL		66	/* Invoker entry fail message */
#define	A_OEFAIL	67	/* Others entry fail message */
#define	A_AEFAIL	68	/* Entry fail action list */
#define	A_LFAIL		69	/* Invoker leave fail message */
#define	A_OLFAIL	70	/* Others leave fail message */
#define	A_ALFAIL	71	/* Leave fail action list */
#define	A_REJECT	72	/* Rejected page return message */
#define	A_AWAY		73	/* Not_connected page return message */
#define	A_IDLE		74	/* Success page return message */
#define	A_UFAIL		75	/* Invoker use fail message */
#define	A_OUFAIL	76	/* Others use fail message */
#define	A_AUFAIL	77	/* Use fail action list */
#define	A_PFAIL		78	/* Invoker page fail message */
#define	A_TPORT		79	/* Invoker teleport message */
#define	A_OTPORT	80	/* Others teleport message in src */
#define	A_OXTPORT	81	/* Others teleport message in dst */
#define	A_ATPORT	82	/* Teleport action list */
#define	A_PRIVS		83	/* Individual permissions */
#define	A_LOGINDATA	84	/* Recent login information */
#define	A_LTPORT	85	/* Teleport lock (can others @tel to me?) */
#define	A_LDROP		86	/* Drop lock (can I be dropped or @tel'ed) */
#define	A_LRECEIVE	87	/* Receive lock (who may give me things?) */
#define	A_LASTSITE	88	/* Last site logged in from, in cleartext */
#define	A_INPREFIX	89	/* Prefix on incoming messages into objects */
#define	A_PREFIX	90	/* Prefix used by exits/objects when audible */
#define	A_INFILTER	91	/* Filter to zap incoming text into objects */
#define	A_FILTER	92	/* Filter to zap text forwarded by audible. */
#define	A_LLINK		93	/* Who may link to here */
#define	A_LTELOUT	94	/* Who may teleport out from here */
#define	A_FORWARDLIST	95	/* Recipients of AUDIBLE output */
#define	A_LCONTROL	96	/* Who controls me if CONTROL_OK set */
#define	A_LUSER		97	/* Spare lock not referenced by server */
#define	A_LPARENT	98	/* Who may @parent to me if PARENT_OK set */
#define	A_VA		100	/* VA attribute (VB-VZ follow) */

#define	A_GFAIL		129	/* Give fail message */
#define	A_OGFAIL	130	/* Others give fail message */
#define	A_AGFAIL	131	/* Give fail action */
#define	A_RFAIL		132	/* Receive fail message */
#define	A_ORFAIL	133	/* Others receive fail message */
#define	A_ARFAIL	134	/* Receive fail action */
#define	A_DFAIL		135	/* Drop fail message */
#define	A_ODFAIL	136	/* Others drop fail message */
#define	A_ADFAIL	137	/* Drop fail action */
#define	A_TFAIL		138	/* Teleport (to) fail message */
#define	A_OTFAIL	139	/* Others teleport (to) fail message */
#define	A_ATFAIL	140	/* Teleport fail action */
#define	A_TOFAIL	141	/* Teleport (from) fail message */
#define	A_OTOFAIL	142	/* Others teleport (from) fail message */
#define	A_ATOFAIL	143	/* Teleport (from) fail action */

#ifdef BETA_QUOTAS
#define A_QUOTAROOM	200	/* Room quota */
#define A_QUOTAEXIT	201	/* Exit quota */
#define A_QUOTATHING	202	/* Thing quota */
#define A_QUOTAPLAYER	203	/* Player quota */
#define A_RQUOTAROOM	204	/* Room rquota */
#define A_RQUOTAEXIT	205	/* Exit rquota */
#define A_RQUOTATHING	206	/* Thing rquota */
#define A_RQUOTAPLAYER	207	/* Player rquota */
#endif				/* BETA_QUOTAS */

#define A_NEWOBJS	208	/* New object array */

#define A_VRML_URL	220	/* URL of the VRML scene for this object */
#define A_HTDESC	221	/* HTML @desc */

#define	A_VLIST		252
#define	A_LIST		253
#define	A_STRUCT	254
#define	A_TEMP		255

#define	A_USER_START	256	/* Start of user-named attributes */
#define	ATR_BUF_CHUNK	100	/* Min size to allocate for attribute buffer */
#define	ATR_BUF_INCR	6	/* Max size of one attribute */

#endif
