/* flags.h - object flags */ #include "copyright.h" #ifndef __FLAGS_H #define __FLAGS_H #include "htab.h" /* --------------------------------------------------------------------------- * FLAGENT: Information about object flags. */ typedef struct flag_entry FLAGENT; struct flag_entry { char *flagname; /* Name of the flag */ int flagvalue; /* Which bit in the object is the flag */ char flaglett; /* Flag letter for listing */ int listperm; /* Who sees this flag when set */ int (*handler)(); /* Handler for setting/clearing this flag */ }; typedef struct flag_selection FLAGSEL; struct flag_selection { FLAG player_flags; /* Standard flags for players */ FLAG room_flags; /* Flags for rooms */ FLAG thing_flags; /* Flags for things */ FLAG exit_flags; /* Flags for exits */ FLAG player_eflags; /* Extended flags for players */ }; extern FLAGENT gen_flags[]; extern FLAGENT exit_flags[]; extern FLAGENT thing_flags[]; extern FLAGENT player_flags[]; extern FLAGENT room_flags[]; /* --------------------------------------------------------------------------- * OBJENT: Fundamental object types */ typedef struct object_entry OBJENT; struct object_entry { char *name; char lett; int perm; FLAGENT *flaglist; HASHTAB *flaghtab; }; extern OBJENT object_types[8]; extern void init_flagtab(); extern void display_flagtab (dbref player, FLAGENT *flagp, const char *prefix); extern void flag_set (dbref target, dbref player, char *flag); extern char *flag_description (dbref player, dbref target); extern FLAGENT *find_flag (dbref thing, char *flagname); extern char *decode_flags (dbref player, FLAG flagword, int flagtype); extern char *unparse_object (dbref player, dbref target); extern char *unparse_object_numonly (dbref target); #define unparse_flags(p,t) decode_flags(p,Flags(t),Typeof(t)) #endif