/*************************************************************************** * 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_CLAN 5 #define ED_MPROG 6 #define ED_HELP 7 /* XOR */ #define ED_OPROG 8 #define ED_RPROG 9 #define ED_EPROG 10 #define ED_SOCIAL 11 #define RENAME_OBJECT 12 #define FORGE_OBJECT 13 #define ED_MRESET 14 #define ED_SPEDIT 15 #define ED_NEWBIE 16 #define RACE_EDIT 17 /* * 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 cedit args( ( CHAR_DATA *ch, char *argument ) ); void mpedit args( ( CHAR_DATA *ch, char *argument ) ); void hedit args( ( CHAR_DATA *ch, char *argument ) ); void tedit args( ( CHAR_DATA *ch, char *argument ) ); void sedit args( ( CHAR_DATA *ch, char *argument ) ); void rename_object args( ( CHAR_DATA *ch, char *argument ) ); void forge_obj args( ( CHAR_DATA *ch, OBJ_DATA *to_forge ) ); void forge_object args( ( CHAR_DATA *ch, char *argument ) ); void mreset args( ( CHAR_DATA *ch, char *argument ) ); void spedit args( ( CHAR_DATA *ch, char *argument ) ); void nedit args( ( CHAR_DATA *ch, char *argument ) ); void race_edit 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 cedit_table[]; extern const struct olc_cmd_type mpedit_table[]; extern const struct olc_cmd_type hedit_table[]; extern const struct olc_cmd_type tedit_table[]; extern const struct olc_cmd_type sedit_table[]; extern const struct olc_cmd_type rename_obj_table[]; extern const struct olc_cmd_type forge_obj_table[]; extern const struct olc_cmd_type mreset_table[]; extern const struct olc_cmd_type spedit_table[]; extern const struct olc_cmd_type nedit_table[]; extern const struct olc_cmd_type race_edit_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 ) ); bool show_version args ( ( CHAR_DATA *ch, char *argument ) ); /* * Area Editor Prototypes */ DECLARE_OLC_FUN( aedit_show ); DECLARE_OLC_FUN( aedit_links ); 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_sounds ); DECLARE_OLC_FUN( aedit_prototype ); DECLARE_OLC_FUN( aedit_clan_hq ); 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_llevel ); DECLARE_OLC_FUN( aedit_ulevel ); DECLARE_OLC_FUN( aedit_noquest ); DECLARE_OLC_FUN( aedit_mudschool ); DECLARE_OLC_FUN( aedit_color ); /* * Clan Editor Prototypes */ DECLARE_OLC_FUN( cedit_show ); DECLARE_OLC_FUN( cedit_create ); DECLARE_OLC_FUN( cedit_name ); DECLARE_OLC_FUN( cedit_diety ); DECLARE_OLC_FUN( cedit_recall ); DECLARE_OLC_FUN( cedit_members ); DECLARE_OLC_FUN( cedit_mkills ); DECLARE_OLC_FUN( cedit_civil ); DECLARE_OLC_FUN( cedit_pkilled ); DECLARE_OLC_FUN( cedit_pkills ); DECLARE_OLC_FUN( cedit_object ); DECLARE_OLC_FUN( cedit_pkill ); DECLARE_OLC_FUN( cedit_clist ); DECLARE_OLC_FUN( cedit_desc ); DECLARE_OLC_FUN( cedit_power ); DECLARE_OLC_FUN( cedit_induct ); /* * Room Editor Prototypes */ DECLARE_OLC_FUN( redit_rdamage ); DECLARE_OLC_FUN( redit_show ); DECLARE_OLC_FUN( redit_create ); DECLARE_OLC_FUN( redit_delet ); DECLARE_OLC_FUN( redit_delete ); 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_rreset ); DECLARE_OLC_FUN( redit_mlist ); DECLARE_OLC_FUN( redit_olist ); DECLARE_OLC_FUN( redit_mshow ); DECLARE_OLC_FUN( redit_oshow ); DECLARE_OLC_FUN( redit_proglist ); DECLARE_OLC_FUN( redit_rlist ); DECLARE_OLC_FUN( redit_rpedit ); DECLARE_OLC_FUN( redit_rplist ); DECLARE_OLC_FUN( redit_rpremove ); DECLARE_OLC_FUN( redit_epedit ); DECLARE_OLC_FUN( redit_eplist ); DECLARE_OLC_FUN( redit_epremove ); /* * Object Editor Prototypes */ DECLARE_OLC_FUN( oedit_show ); DECLARE_OLC_FUN( oedit_create ); DECLARE_OLC_FUN( oedit_delet ); DECLARE_OLC_FUN( oedit_delete ); 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_join ); /* TRI */ DECLARE_OLC_FUN( oedit_sepone ); /* TRI */ DECLARE_OLC_FUN( oedit_septwo ); /* TRI */ DECLARE_OLC_FUN( oedit_opedit ); DECLARE_OLC_FUN( oedit_oplist ); DECLARE_OLC_FUN( oedit_opremove ); DECLARE_OLC_FUN( oedit_value0 ); DECLARE_OLC_FUN( oedit_value1 ); DECLARE_OLC_FUN( oedit_value2 ); DECLARE_OLC_FUN( oedit_value3 ); DECLARE_OLC_FUN( oedit_weight ); DECLARE_OLC_FUN( oedit_cost ); DECLARE_OLC_FUN( oedit_level ); DECLARE_OLC_FUN( oedit_ed ); DECLARE_OLC_FUN( set_ac_type ); DECLARE_OLC_FUN( set_ac_vnum ); DECLARE_OLC_FUN( set_ac_v1 ); DECLARE_OLC_FUN( set_ac_v2 ); DECLARE_OLC_FUN( set_ac_setspell ); /* * Mobile Editor Prototypes */ DECLARE_OLC_FUN( medit_show ); DECLARE_OLC_FUN( medit_create ); DECLARE_OLC_FUN( medit_delet ); DECLARE_OLC_FUN( medit_delete ); 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_hitpoint ); DECLARE_OLC_FUN( medit_gold ); #ifdef NEW_MONEY DECLARE_OLC_FUN( medit_silver ); DECLARE_OLC_FUN( medit_copper ); #endif DECLARE_OLC_FUN( medit_align ); DECLARE_OLC_FUN( medit_spec ); DECLARE_OLC_FUN( medit_immune );/* XOR */ DECLARE_OLC_FUN( medit_class ); DECLARE_OLC_FUN( medit_mpedit );/* Altrag */ DECLARE_OLC_FUN( medit_mplist );/* Altrag */ DECLARE_OLC_FUN( medit_mpremove );/* Altrag */ /* * MPEditor functions for MobProgs * -- Altrag */ DECLARE_OLC_FUN( mpedit_show ); DECLARE_OLC_FUN( mpedit_create ); DECLARE_OLC_FUN( mpedit_arglist ); DECLARE_OLC_FUN( mpedit_comlist ); /* * Help Editor Prototypes */ DECLARE_OLC_FUN( edit_delet ); DECLARE_OLC_FUN( hedit_delete ); DECLARE_OLC_FUN( hedit_show ); DECLARE_OLC_FUN( hedit_name ); DECLARE_OLC_FUN( hedit_level ); DECLARE_OLC_FUN( hedit_desc ); /* * Trap Editor Prototypes */ DECLARE_OLC_FUN( tedit_show ); DECLARE_OLC_FUN( tedit_create ); DECLARE_OLC_FUN( tedit_disarmable ); DECLARE_OLC_FUN( tedit_arglist ); DECLARE_OLC_FUN( tedit_comlist ); /* Social editor prototype -Decklarean */ DECLARE_OLC_FUN( sedit_name ); DECLARE_OLC_FUN( sedit_delete ); DECLARE_OLC_FUN( sedit_show ); DECLARE_OLC_FUN( sedit_char_no_arg ); DECLARE_OLC_FUN( sedit_others_no_arg ); DECLARE_OLC_FUN( sedit_char_found ); DECLARE_OLC_FUN( sedit_others_found ); DECLARE_OLC_FUN( sedit_vict_found ); DECLARE_OLC_FUN( sedit_char_auto ); DECLARE_OLC_FUN( sedit_others_auto ); /* rename_obj editor - Decklarean */ DECLARE_OLC_FUN( rename_show ); DECLARE_OLC_FUN( rename_keyword ); DECLARE_OLC_FUN( rename_short ); DECLARE_OLC_FUN( rename_long ); /* Forge stuff */ DECLARE_OLC_FUN( forge_show ); DECLARE_OLC_FUN( forge_addaffect ); DECLARE_OLC_FUN( forge_type ); /* * mreset editor by Decklarean */ DECLARE_OLC_FUN( mreset_add ); DECLARE_OLC_FUN( mreset_show ); DECLARE_OLC_FUN( mreset_delet ); DECLARE_OLC_FUN( mreset_delete ); DECLARE_OLC_FUN( mreset_max_in_room ); /* spedit editor -Decklarean */ DECLARE_OLC_FUN( spedit_damage_msg ); DECLARE_OLC_FUN( spedit_spell_ends ); DECLARE_OLC_FUN( spedit_spell_ends_room ); DECLARE_OLC_FUN( spedit_dispelable ); DECLARE_OLC_FUN( spedit_min ); DECLARE_OLC_FUN( spedit_mana ); DECLARE_OLC_FUN( spedit_name ); DECLARE_OLC_FUN( spedit_show ); DECLARE_OLC_FUN( spedit_wait ); /* Newbie help editor -Angi */ DECLARE_OLC_FUN( nedit_keyword ); DECLARE_OLC_FUN( nedit_answer1 ); DECLARE_OLC_FUN( nedit_answer2 ); DECLARE_OLC_FUN( nedit_show ); /* Social editor prototype -Decklarean */ DECLARE_OLC_FUN( race_edit_name ); DECLARE_OLC_FUN( race_edit_full ); DECLARE_OLC_FUN( race_edit_mcon ); DECLARE_OLC_FUN( race_edit_mstr ); DECLARE_OLC_FUN( race_edit_mdex ); DECLARE_OLC_FUN( race_edit_mint ); DECLARE_OLC_FUN( race_edit_mwis ); DECLARE_OLC_FUN( race_edit_show ); DECLARE_OLC_FUN( race_edit_delete ); /* * Macros */ #define IS_BUILDER(ch, Area) ( ( ch->pcdata->security >= Area->security \ || strstr( Area->builders, ch->name ) \ || strstr( Area->builders, "All" ) ) \ && !IS_SWITCHED( ch ) ) /* #define TOGGLE_BIT(var, bit) ((var) ^= (bit)) */ /* Return pointers to what is being edited. */ #define EDIT_MOB(Ch, Mob) ( Mob = (MOB_INDEX_DATA *)Ch->desc->pEdit ) #define EDIT_OBJ(Ch, Obj) ( Obj = (OBJ_INDEX_DATA *)Ch->desc->pEdit ) #define EDIT_ROOM(Ch, Room) ( Room = Ch->in_room ) #define EDIT_AREA(Ch, Area) ( Area = (AREA_DATA *)Ch->desc->pEdit ) #define EDIT_CLAN(Ch, Clan) ( Clan = (CLAN_DATA *)Ch->desc->pEdit ) #define EDIT_MPROG(Ch, MProg) ( MProg = (MPROG_DATA *)Ch->desc->pEdit ) #define EDIT_HELP(Ch, Help) ( Help = (HELP_DATA *)Ch->desc->pEdit ) #define EDIT_TRAP(Ch, Trap) ( Trap = (TRAP_DATA *)Ch->desc->pEdit ) #define EDIT_SOCIAL(Ch, Social) ( Social = (SOCIAL_DATA *)Ch->desc->pEdit ) #define RENAME_OBJ(Ch, Obj) ( Obj = (OBJ_DATA *)Ch->desc->pEdit ) #define FORGE_OBJ(Ch, Obj) ( Obj = (OBJ_DATA*)Ch->desc->pEdit ) #define EDIT_SPELL( Ch, Spell) ( Spell = (SKILL_TYPE *)Ch->desc->pEdit ) #define EDIT_NEWBIE( Ch, Newbie ) ( Newbie = (NEWBIE_DATA *)Ch->desc->pEdit ) #define EDIT_RACE(Ch, pRace) ( pRace = (RACE_DATA *)Ch->desc->pEdit ) /* * 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 ) ); CLAN_DATA *new_clan_index args ( ( void ) ); void free_clan_index args ( ( CLAN_DATA *pClan ) ); /* -- Altrag */ MPROG_DATA *new_mprog_data args ( ( void ) ); void free_mprog_data args ( ( MPROG_DATA *pMProg ) ); TRAP_DATA *new_trap_data args ( ( void ) ); void free_trap_data args ( ( TRAP_DATA *pTrap ) ); /* Decklarean */ SOCIAL_DATA *new_social_index args ( ( void ) ); void free_social_index args ( ( SOCIAL_DATA *pSocial ) ); /* Angi */ NEWBIE_DATA *new_newbie_index args ( ( void ) ); /* Decklarean */ RACE_DATA *new_race_data args ( ( void ) ); void free_race_data args ( ( RACE_DATA *pRace ) ); #undef ED