ILAB OLC Beta 1.1
Jason Dinkel
May. 15 1995
MERC.H
This file contains modifications needed to stock Envy 1.0 merc.h
Only the lines commented with /* OLC */ need to be added. The surrounding
code is for getting ones bearings.
The following are new variables that must be added to
each structure for OLC to work.
---- For automatic database saving.
/* Save the database - OLC 1.1b */
#define PULSE_DB_DUMP (1800* PULSE_PER_SECOND ) /* 30 minutes */
---- STRUCT: descriptor_data
void * pEdit; /* OLC */
char ** pString; /* OLC */
int editor; /* OLC */
---- STRUCT: mob_index_data
AREA_DATA * area; /* OLC */
---- STRUCT: pc_data
int security; /* OLC - Builder security */
---- STRUCT: obj_index_data
AREA_DATA * area; /* OLC */
---- STRUCT: exit_data
EXIT_DATA * next; /* OLC */
int rs_flags; /* OLC */
int orig_door; /* OLC */
---- STRUCT: area_data
DESC: Replace the old area_data struct with this one.
struct area_data
{
AREA_DATA * next;
char * name;
int recall;
int age;
int nplayer;
char * filename; /* OLC */
char * builders; /* OLC - Listing of builders */
int security; /* OLC - Value 0-infinity */
int lvnum; /* OLC - Lower vnum */
int uvnum; /* OLC - Upper vnum */
int vnum; /* OLC - Area vnum */
int area_flags; /* OLC */
};
---- room_index_data
RESET_DATA * reset_first; /* OLC */
RESET_DATA * reset_last; /* OLC */
---- Drop in code block, I put it at the very end of merc.h
/*****************************************************************************
* OLC *
*****************************************************************************/
/*
* This structure is used in special.c to lookup spec funcs and
* also in olc_act.c to display listings of spec funcs.
*/
struct spec_type
{
char * spec_name;
SPEC_FUN * spec_fun;
};
/*
* This structure is used in bit.c to lookup flags and stats.
*/
struct flag_type
{
char * name;
int bit;
bool settable;
};
/*
* Object defined in limbo.are
* Used in save.c to load objects that don't exist.
*/
#define OBJ_VNUM_DUMMY 1
/*
* Area flags.
*/
#define AREA_NONE 0
#define AREA_CHANGED 1 /* Area has been modified. */
#define AREA_ADDED 2 /* Area has been added to. */
#define AREA_LOADING 4 /* Used for counting in db.c */
#define MAX_DIR 6
#define NO_FLAG -99 /* Must not be used in flags or stats. */
/*
* Interp.c
*/
DECLARE_DO_FUN( do_aedit ); /* OLC 1.1b */
DECLARE_DO_FUN( do_redit ); /* OLC 1.1b */
DECLARE_DO_FUN( do_oedit ); /* OLC 1.1b */
DECLARE_DO_FUN( do_medit ); /* OLC 1.1b */
DECLARE_DO_FUN( do_asave );
DECLARE_DO_FUN( do_alist );
DECLARE_DO_FUN( do_resets );
/*
* Global Constants
*/
extern char * const dir_name [];
extern const int rev_dir [];
extern const struct spec_type spec_table [];
/*
* Global variables
*/
extern AREA_DATA * area_first;
extern AREA_DATA * area_last;
extern SHOP_DATA * shop_last;
extern int top_affect;
extern int top_area;
extern int top_ed;
extern int top_exit;
extern int top_help;
extern int top_mob_index;
extern int top_obj_index;
extern int top_reset;
extern int top_room;
extern int top_shop;
extern int top_vnum_mob;
extern int top_vnum_obj;
extern int top_vnum_room;
extern char str_empty [1];
extern MOB_INDEX_DATA * mob_index_hash [MAX_KEY_HASH];
extern OBJ_INDEX_DATA * obj_index_hash [MAX_KEY_HASH];
extern ROOM_INDEX_DATA * room_index_hash [MAX_KEY_HASH];
/* db.c */
void reset_area args( ( AREA_DATA * pArea ) );
void reset_room args( ( ROOM_INDEX_DATA *pRoom ) );
/* string.c */
void string_edit args( ( CHAR_DATA *ch, char **pString ) );
void string_append args( ( CHAR_DATA *ch, char **pString ) );
char * string_replace args( ( char * orig, char * old, char * new ) );
void string_add args( ( CHAR_DATA *ch, char *argument ) );
char * format_string args( ( char *oldstring /*, bool fSpace */ ) );
char * first_arg args( ( char *argument, char *arg_first, bool fCase ) );
char * string_unpad args( ( char * argument ) );
char * string_proper args( ( char * argument ) );
/* olc.c */
bool run_olc_editor args( ( DESCRIPTOR_DATA *d ) );
char *olc_ed_name args( ( CHAR_DATA *ch ) );
char *olc_ed_vnum args( ( CHAR_DATA *ch ) );
/* special.c */
char * spec_string args( ( SPEC_FUN *fun ) ); /* OLC */
/* bit.c */
extern const struct flag_type area_flags[];
extern const struct flag_type sex_flags[];
extern const struct flag_type exit_flags[];
extern const struct flag_type door_resets[];
extern const struct flag_type room_flags[];
extern const struct flag_type sector_flags[];
extern const struct flag_type type_flags[];
extern const struct flag_type extra_flags[];
extern const struct flag_type wear_flags[];
extern const struct flag_type act_flags[];
extern const struct flag_type affect_flags[];
extern const struct flag_type apply_flags[];
extern const struct flag_type wear_loc_strings[];
extern const struct flag_type wear_loc_flags[];
extern const struct flag_type weapon_flags[];
extern const struct flag_type container_flags[];
extern const struct flag_type liquid_flags[];
END OF FILE MERC.H