/***************************************************************************
* File: olc.h *
* *
* Much time and thought has gone into this software and you are *
* benefitting. We hope that you share your changes too. What goes *
* around, comes around. *
* *
* This code was freely distributed with the The Isles 1.1 source code, *
* and has been used here for OLC - OLC would not be what it is without *
* all the previous coders who released their source code. *
* *
***************************************************************************/
/*
* This is a header file for all the OLC files. Feel free to copy it into
* merc.h if you wish. Many of these routines may be handy elsewhere in
* the code. - Jason Dinkel
*/
/*
* The version info. Please use this info when reporting bugs.
* It is displayed in the game by typing 'version' while editing.
* Do not remove these from the code - by request of Jason Dinkel
*/
#define VERSION "ILAB Online Creation [Beta 1.1]"
#define AUTHOR " By Jason(jdinkel@mines.colorado.edu)"
#define DATE " (May. 15, 1995)"
#define CREDITS " Original by Surreality(cxw197@psu.edu) and Locke(locke@lm.com)"
/*
* New typedefs.
*/
typedef bool OLC_FUN args( ( CHAR_DATA * ch, char *argument ) );
#define DECLARE_OLC_FUN( fun ) OLC_FUN fun
/*
* Connected states for editor.
*/
#define ED_AREA 1
#define ED_ROOM 2
#define ED_OBJECT 3
#define ED_MOBILE 4
#define ED_MPROG 5
/*
* 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 mpedit args( ( CHAR_DATA * ch, char *argument ) );
/*
* OLC Constants
*/
#define MAX_MOB 1 /*
* Default maximum number for resetting mobs
*/
/*
* Structure for an OLC editor command.
*/
struct olc_cmd_type
{
char *const name;
OLC_FUN *olc_fun;
};
/*
* Structure for an OLC editor startup command.
*/
struct editor_cmd_type
{
char *const name;
DO_FUN *do_fun;
};
/*
* Utils.
*/
AREA_DATA *get_vnum_area args( ( int vnum ) );
AREA_DATA *get_area_data args( ( int vnum ) );
int flag_value args( ( const struct flag_type * flag_table,
char *argument ) );
char *flag_string args( ( const struct flag_type * flag_table,
int bits ) );
void add_reset args( ( ROOM_INDEX_DATA * room,
RESET_DATA * pReset, int index ) );
/*
* Interpreter Table Prototypes
*/
extern const struct olc_cmd_type aedit_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 mpedit_table[];
/*
* General Functions
*/
bool show_commands args( ( CHAR_DATA * ch, char *argument ) );
bool show_help args( ( CHAR_DATA * ch, char *argument ) );
bool edit_done args( ( CHAR_DATA * ch, char *argument ) );
bool show_version args( ( CHAR_DATA * ch, char *argument ) );
/*
* Area Editor Prototypes
*/
DECLARE_OLC_FUN( aedit_show );
DECLARE_OLC_FUN( aedit_create );
DECLARE_OLC_FUN( aedit_name );
DECLARE_OLC_FUN( aedit_file );
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 );
/*
* 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 );
/*
* 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 );
/*
* 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 );
/*
* MobProg Editor Prototypes
*/
DECLARE_OLC_FUN( mpedit_show );
DECLARE_OLC_FUN( mpedit_add );
DECLARE_OLC_FUN( mpedit_delete );
DECLARE_OLC_FUN( mpedit_create );
DECLARE_OLC_FUN( mpedit_copy );
DECLARE_OLC_FUN( mpedit_trigger );
DECLARE_OLC_FUN( mpedit_program );
/*
* Macros
*/
#define TOGGLE_BIT(var, bit) ((var) ^= (bit))
/*
* Prototypes
*/
/* mem.c - memory prototypes */
#define ED EXTRA_DESCR_DATA
RESET_DATA * new_reset_data args( ( void ) );
void free_reset_data args( ( RESET_DATA * pReset ) );
AREA_DATA * new_area args( ( void ) );
void free_area args( ( AREA_DATA * pArea ) );
EXIT_DATA * new_exit args( ( void ) );
void free_exit args( ( EXIT_DATA * pExit ) );
ED * new_extra_descr args( ( void ) );
void free_extra_descr args( ( ED * pExtra ) );
ROOM_INDEX_DATA * new_room_index args( ( void ) );
void free_room_index args( ( ROOM_INDEX_DATA * pRoom ) );
AFFECT_DATA * new_affect args( ( void ) );
void free_affect args( ( AFFECT_DATA * pAf ) );
SHOP_DATA * new_shop args( ( void ) );
void free_shop args( ( SHOP_DATA * pShop ) );
OBJ_INDEX_DATA * new_obj_index args( ( void ) );
void free_obj_index args( ( OBJ_INDEX_DATA * pObj ) );
MOB_INDEX_DATA * new_mob_index args( ( void ) );
void free_mob_index args( ( MOB_INDEX_DATA * pMob ) );
#undef ED
/* olc.c - miscellaneous prototypes */
int mprog_count args( ( MOB_INDEX_DATA * pMob ) );
MPROG_DATA * edit_mprog args( ( CHAR_DATA * ch, MOB_INDEX_DATA * pMob ) );
void show_mprog args( ( CHAR_DATA * ch, MPROG_DATA * pMobProg ) );
void delete_mprog args( ( CHAR_DATA * ch, int pnum ) );
/* olc_act.c - miscellaneous prototypes */
MOB_INDEX_DATA * edit_mob args( ( CHAR_DATA * ch ) );
OBJ_INDEX_DATA * edit_obj args( ( CHAR_DATA * ch ) );
ROOM_INDEX_DATA * edit_room args( ( CHAR_DATA * ch ) );
AREA_DATA * edit_area args( ( CHAR_DATA * ch ) );
bool is_builder args( ( CHAR_DATA * ch, AREA_DATA * area ) );