TinyMAZE/
TinyMAZE/config/
TinyMAZE/doc/
TinyMAZE/run/msgs/
TinyMAZE/src/
TinyMAZE/src/db/
TinyMAZE/src/ident/
TinyMAZE/src/io/
TinyMAZE/src/prog/
TinyMAZE/src/softcode/
TinyMAZE/src/util/
#ifndef ATTRIB_H
#define ATTRIB_H

#define AF_OSEE       0x1 /* players other than owner can see it */
#define AF_DARK       0x2 /* No one can see it */
#define AF_WIZARD     0x4 /* only wizards can change it */
#define AF_UNIMP      0x8 /* not important -- don't save it in the db */
#define AF_NOMOD     0x10 /* not even wizards can't modify this */
#define AF_DATE      0x20 /* date stored in universal longint form */
#define AF_INHERIT   0x40 /* value inherited by childern */
#define AF_LOCK      0x80 /* interpreted as a boolean expression */
#define AF_FUNC     0x100 /* this is a user defined function */
#define AF_HAVEN    0x200 /* For attributes set HAVEN */
#define AF_BUILTIN  0x400 /* server supplies value. not database. */
#define AF_DBREF    0x800 /* value displayed as dbref. */
#define AF_NOMEM   0x1000 /* this isn't included in memory calculations */
#define AF_PROG    0x2000 /* this attr should contain a program name */

struct attrib_struct
{
  char *name;
  unsigned long flags;
  int atrnum;        /* This can be garbage if object is not NOTHING */
};

/* For list of attributes on an object */
struct attriblist_struct
{
  struct attrib_struct *attr;
  char *value;
  struct attriblist_struct *next;
};

typedef struct attrib_struct ATTR;
typedef struct attriblist_struct ALIST;

extern ATTR atr_list[];

#endif /* ATTRIB_H */