#define SEX_NONE -1
#define ROOM_NONE 0
#define EX_NONE 0
#define ITEM_NONE 0
#define EXTRA_NONE 0
#define ITEM_WEAR_NONE 0
#define ACT_NONE 0
#define AFFECT_NONE 0
#define HEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define AEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define MEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define REDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define OEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define CMDEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define CEDIT(fun) bool fun( CHAR_DATA *ch, char *argument)
#define CLEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)
#define RENAME( fun ) bool fun(CHAR_DATA *ch, char *argument )
#define QSET_OBJ( fun ) bool fun(CHAR_DATA *ch, char *argument )
#define EDIT_HELP(Ch, Help) ( Help = (HELP_DATA *)Ch->desc->pEdit )
#define EDIT_AREA(Ch, Area) ( Area = (AREA_DATA *)Ch->desc->pEdit )
#define EDIT_MOB(Ch, Mob) ( Mob = (MOB_INDEX_DATA *)Ch->desc->pEdit)
#define EDIT_ROOM(Ch, Room) ( Room = (ROOM_INDEX_DATA *)Ch->desc->pEdit)
#define EDIT_OBJ(Ch, Obj) ( Obj = (OBJ_INDEX_DATA *)Ch->desc->pEdit)
#define EDIT_CMD(Ch, CMD) ( CMD = (struct cmd_type *)Ch->desc->pEdit)
#define EDIT_SOCIAL(Ch, Soc) ( Soc = (struct social_type*)Ch->desc->pEdit)
#define EDIT_CLAN(Ch, Clan) ( Clan = (CLAN_DATA *)Ch->desc->pEdit)
#define RENAME_OBJ(ch, Obj) ( Obj = (OBJ_DATA *) ch->desc->pEdit )
#define EDIT_QSET(Ch, Obj) ( Obj = (OBJ_DATA *) Ch->desc->pEdit )
#define SKILLSN(sn) (sn != -1 ? skill_table[sn].slot : 0)
#define IS_BUILDER(ch, Area) ( GET_PC(ch,security,0) >= Area->security \
|| strstr(Area->builders, ch->name) != NULL \
|| strstr(Area->builders, "All") != NULL\
|| get_trust(ch) < LEVEL_HIGHJUDGE )
#define IS_BUILDER_HERE(ch) ( IS_BUILDER((ch),(ch)->in_room->area) )
/*
* Interpreter Prototypes
*/
void aedit args( ( CHAR_DATA *ch, char *argument ) );
void redit args( ( CHAR_DATA *ch, char *argument ) );
void medit args( ( CHAR_DATA *ch, char *argument ) );
void oedit args( ( CHAR_DATA *ch, char *argument ) );
void hedit args( ( CHAR_DATA *ch, char *argument ) );
void cmdedit args( ( CHAR_DATA *ch, char *argument ) );
void sedit args( ( CHAR_DATA *ch, char *argument ) );
void cedit args( ( CHAR_DATA *ch, char *argument ) );
void cledit args( ( CHAR_DATA *ch, char *argument ) );
void rename_object args( ( CHAR_DATA *ch, char *argument ) );
void qedit args( ( CHAR_DATA *ch, char *arugment ) );
/*
* OLC Constants
*/
#define MAX_MOB 1 /* Default maximum number for resetting mobs */
/*
* Utils.
*/
AREA_DATA * get_vnum_area args ( ( int vnum ) );
AREA_DATA * get_area_data args ( ( int vnum ) );
void add_reset args ( ( ROOM_INDEX_DATA *,
RESET_DATA *, int ) );
bool show_commands args ( ( CHAR_DATA *ch, char *argument ) );
bool show_help args ( ( CHAR_DATA *ch, char *argument ) );
void set_editor args ( ( DESCRIPTOR_DATA *, int, void * ) );
bool edit_done args ( ( CHAR_DATA *ch ) );
char * strip_cr args ( ( char * string ) );
RESET_DATA *new_reset_data args ( ( void ) );
void free_reset_data args ( ( RESET_DATA *pReset ) );
struct olc_help_type
{
char *command;
const void *structure;
sh_int trust;
char *desc;
};
/*
* For commands
*/
typedef bool OLC_FUN args( ( CHAR_DATA *ch, char *argument ) );
#define DECLARE_OLC_FUN( fun ) OLC_FUN fun
/*
* Structure for an OLC editor command.
*/
struct olc_cmd_type
{
char * const name;
OLC_FUN * olc_fun;
};
DECLARE_OLC_FUN( hedit_show );
DECLARE_OLC_FUN( hedit_keyword );
DECLARE_OLC_FUN( hedit_text );
DECLARE_OLC_FUN( hedit_new );
DECLARE_OLC_FUN( hedit_level );
DECLARE_OLC_FUN( hedit_delete );
DECLARE_OLC_FUN( hedit_list );
/*
* Area Editor Prototypes
*/
DECLARE_OLC_FUN( aedit_show );
DECLARE_OLC_FUN( aedit_create );
DECLARE_OLC_FUN( aedit_name );
DECLARE_OLC_FUN( aedit_filename );
DECLARE_OLC_FUN( aedit_age );
DECLARE_OLC_FUN( aedit_recall );
DECLARE_OLC_FUN( aedit_reset );
DECLARE_OLC_FUN( aedit_security );
DECLARE_OLC_FUN( aedit_builder );
DECLARE_OLC_FUN( aedit_vnum );
DECLARE_OLC_FUN( aedit_lvnum );
DECLARE_OLC_FUN( aedit_uvnum );
DECLARE_OLC_FUN( aedit_mod );
DECLARE_OLC_FUN( aedit_connected );
/*
* Room Editor Prototypes
*/
DECLARE_OLC_FUN( redit_show );
DECLARE_OLC_FUN( redit_create );
DECLARE_OLC_FUN( redit_name );
DECLARE_OLC_FUN( redit_desc );
DECLARE_OLC_FUN( redit_ed );
DECLARE_OLC_FUN( redit_format );
DECLARE_OLC_FUN( redit_north );
DECLARE_OLC_FUN( redit_south );
DECLARE_OLC_FUN( redit_east );
DECLARE_OLC_FUN( redit_west );
DECLARE_OLC_FUN( redit_up );
DECLARE_OLC_FUN( redit_down );
DECLARE_OLC_FUN( redit_move );
DECLARE_OLC_FUN( redit_mreset );
DECLARE_OLC_FUN( redit_oreset );
DECLARE_OLC_FUN( redit_mlist );
DECLARE_OLC_FUN( redit_olist );
DECLARE_OLC_FUN( redit_mshow );
DECLARE_OLC_FUN( redit_oshow );
DECLARE_OLC_FUN( redit_copy );
DECLARE_OLC_FUN( redit_roomtext );
DECLARE_OLC_FUN( redit_findreset );
/*
* Mobile Editor Prototypes
*/
DECLARE_OLC_FUN( medit_show );
DECLARE_OLC_FUN( medit_create );
DECLARE_OLC_FUN( medit_name );
DECLARE_OLC_FUN( medit_short );
DECLARE_OLC_FUN( medit_long );
DECLARE_OLC_FUN( medit_shop );
DECLARE_OLC_FUN( medit_desc );
DECLARE_OLC_FUN( medit_level );
DECLARE_OLC_FUN( medit_align );
DECLARE_OLC_FUN( medit_spec );
/*
* Object Editor Prototypes
*/
DECLARE_OLC_FUN( oedit_show );
DECLARE_OLC_FUN( oedit_create );
DECLARE_OLC_FUN( oedit_name );
DECLARE_OLC_FUN( oedit_short );
DECLARE_OLC_FUN( oedit_long );
DECLARE_OLC_FUN( oedit_addaffect );
DECLARE_OLC_FUN( oedit_delaffect );
DECLARE_OLC_FUN( oedit_value0 );
DECLARE_OLC_FUN( oedit_value1 );
DECLARE_OLC_FUN( oedit_value2 );
DECLARE_OLC_FUN( oedit_value3 );
DECLARE_OLC_FUN( oedit_value4 );
DECLARE_OLC_FUN( oedit_weight );
DECLARE_OLC_FUN( oedit_cost );
DECLARE_OLC_FUN( oedit_ed );
DECLARE_OLC_FUN( oedit_artifact );
DECLARE_OLC_FUN( cmdedit_show );
DECLARE_OLC_FUN( cmdedit_name );
DECLARE_OLC_FUN( cmdedit_function );
DECLARE_OLC_FUN( cmdedit_level );
DECLARE_OLC_FUN( cmdedit_list );
DECLARE_OLC_FUN( cmdedit_new );
DECLARE_OLC_FUN( cmdedit_position );
DECLARE_OLC_FUN( cmdedit_log );
DECLARE_OLC_FUN( cmdedit_delete );
/*
* Social editor prototypes
*/
DECLARE_OLC_FUN( sedit_show ); /* Daleken */
DECLARE_OLC_FUN( sedit_name ); /* Daleken */
DECLARE_OLC_FUN( sedit_create ); /* Daleken */
DECLARE_OLC_FUN( sedit_delete );
DECLARE_OLC_FUN( sedit_cna ); /* Daleken */
DECLARE_OLC_FUN( sedit_ona ); /* Daleken */
DECLARE_OLC_FUN( sedit_cf ); /* Daleken */
DECLARE_OLC_FUN( sedit_of ); /* Daleken */
DECLARE_OLC_FUN( sedit_vf ); /* Daleken */
DECLARE_OLC_FUN( sedit_ca ); /* Daleken */
DECLARE_OLC_FUN( sedit_oa ); /* Daleken */
DECLARE_OLC_FUN( cedit_show );
DECLARE_OLC_FUN( mudstat_show );
DECLARE_OLC_FUN( cedit_savefreq );
DECLARE_OLC_FUN( cedit_dodgemod );
DECLARE_OLC_FUN( cedit_parrymod );
DECLARE_OLC_FUN( cedit_dam_pvp );
DECLARE_OLC_FUN( cedit_dam_pvm );
DECLARE_OLC_FUN( cedit_dam_mvp );
DECLARE_OLC_FUN( cedit_dam_mvm );
DECLARE_OLC_FUN( cedit_bui_sec );
DECLARE_OLC_FUN( cedit_plr_mset );
DECLARE_OLC_FUN( cedit_forcepc );
DECLARE_OLC_FUN( cedit_ban_class );
DECLARE_OLC_FUN( cedit_ban_site );
DECLARE_OLC_FUN( cedit_pfiles );
DECLARE_OLC_FUN( cedit_newbie_purge );
DECLARE_OLC_FUN( cedit_regular_purge );
/*
* Clan editor protoytypes
*/
DECLARE_OLC_FUN( cledit_create ); /* Daleken */
DECLARE_OLC_FUN( cledit_filename );
DECLARE_OLC_FUN( cledit_desc ); /* Daleken */
DECLARE_OLC_FUN( cledit_display ); /* Daleken */
DECLARE_OLC_FUN( cledit_leader ); /* Daleken */
DECLARE_OLC_FUN( cledit_motto ); /* Daleken */
DECLARE_OLC_FUN( cledit_name ); /* Daleken */
DECLARE_OLC_FUN( cledit_recall ); /* Daleken */
DECLARE_OLC_FUN( cledit_show ); /* Daleken */
DECLARE_OLC_FUN( cledit_donation );
DECLARE_OLC_FUN( cledit_obj1 );
DECLARE_OLC_FUN( cledit_obj2 );
DECLARE_OLC_FUN( cledit_obj3 );
/*
* Rename functions
*/
DECLARE_OLC_FUN( rename_show );
DECLARE_OLC_FUN( rename_keyword );
DECLARE_OLC_FUN( rename_short );
DECLARE_OLC_FUN( rename_long );
/*
* Qset editor
*/
DECLARE_OLC_FUN( qset_show );
DECLARE_OLC_FUN( qset_ow );
DECLARE_OLC_FUN( qset_aw );
DECLARE_OLC_FUN( qset_or );
DECLARE_OLC_FUN( qset_ar );
DECLARE_OLC_FUN( qset_ou );
DECLARE_OLC_FUN( qset_au );
extern const struct olc_cmd_type hedit_table[];
extern const struct olc_cmd_type redit_table[];
extern const struct olc_cmd_type oedit_table[];
extern const struct olc_cmd_type medit_table[];
extern const struct olc_cmd_type aedit_table[];
extern const struct olc_cmd_type cmdedit_table[];
extern const struct olc_cmd_type sedit_table[];
extern const struct olc_cmd_type cedit_table[];
extern const struct olc_cmd_type rename_obj_table[];
extern const struct olc_cmd_type qset_table[];
int flag_value args ( ( const struct flag_type *flag_table,
char *argument) );
char *flag_string args ( ( const struct flag_type *flag_table,
int bits ) );
/*
* Connected states for editor.
*/
#define ED_NONE 0
#define ED_AREA 1
#define ED_ROOM 2
#define ED_OBJECT 3
#define ED_MOBILE 4
#define ED_HELP 5
#define ED_CMD 6
#define ED_SOCIAL 7
#define ED_CONTROL 8
#define ED_CLAN 9
#define ED_RENAME 10
#define ED_QSET 11