/**************************************************************************/ // olc.h - /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with the dawn license * * in licenses.txt... In particular, you may not remove this copyright * * notice. * **************************************************************************/ /*************************************************************************** * 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. * ***************************************************************************/ #ifndef OLC_H #define OLC_H #include "security.h" #include "o_lookup.h" #include "olc_ex.h" /* * New typedefs. */ #ifndef DECLARE_OLC_FUN typedef bool OLC_FUN args( ( char_data *ch, char *argument ) ); #define DECLARE_OLC_FUN( fun ) OLC_FUN fun #endif DECLARE_DO_FUN( do_help ); DECLARE_SPELL_FUN( spell_null ); void reboot_autosave( char_data *ch); void display_race_selection( connection_data *d ); bool generic_ed(char_data *ch, char *argument ); EXTRA_DESCR_DATA * dup_extdescr_list(EXTRA_DESCR_DATA * descript); char * mprog_type_to_name ( int type ); char * getraceFilename(char *racename); char * getPCraceFilename(char *racename); bool swapRacesInTable(int first, int second); void swap_skills( char **p, char **q ); struct olc_help_type { char *command; const void *structure; char *desc; }; // Connected states for OLC editor moved into params.h /* * 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 ) ); void hedit args( ( char_data *ch, char *argument ) ); void banedit args( ( char_data *ch, char *argument ) ); void npcedit args( ( char_data *ch, char *argument ) ); void raceedit args( ( char_data *ch, char *argument ) ); void sedit args( ( char_data *ch, char *argument ) ); void comedit args( ( char_data *ch, char *argument ) ); void dedit args( ( char_data *ch, char *argument ) ); void qedit args( ( char_data *ch, char *argument ) ); void classedit args( ( char_data *ch, char *argument ) ); void gameedit args( ( char_data *ch, char *argument ) ); void socialedit args( ( char_data *ch, char *argument ) ); void herbedit args( ( char_data *ch, char *argument ) ); void mixedit args( ( char_data *ch, char *argument ) ); void clanedit args( ( char_data *ch, char *argument ) ); void skillgroupedit args( ( char_data *ch, char *argument ) ); void langedit args( ( char_data *ch, char *argument ) ); // OLC Constants #define MAX_MOB 1 // Default maximum number for resetting mobs extern const struct olc_cmd_type banedit_table[]; //extern DEITY_DATA *deity_list; DEITY_DATA *new_deity( void ); /*************************************************************************** * 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.0, ROM 2.3 modified]\n\r" \ " Port a ROM 2.4 v1.00\n\r" #define AUTHOR " By Jason(jdinkel@mines.colorado.edu)\n\r" \ " Modified for use with ROM 2.3\n\r" \ " By Hans Birkeland (hansbi@ifi.uio.no)\n\r" \ " Modificado para uso en ROM 2.4b4a\n\r" \ " Por Birdie (itoledo@ramses.centic.utem.cl)\n\r" #define DATE " (Apr. 7, 1995 - ROM mod, Apr 16, 1995)\n\r" \ " (Port a ROM 2.4 - Nov 2, 1996)\n\r" \ " Version actual : 1.5a - Mar 9, 1997\n\r" #define CREDITS " Original by Surreality(cxw197@psu.edu) and Locke(locke@lm.com)" /* * Structure for an OLC editor command. */ struct olc_cmd_type { const char *name; OLC_FUN *olc_fun; const char *hint; bool hidden; }; /* * Utils. */ AREA_DATA *get_vnum_area args ( ( int vnum ) ); AREA_DATA *get_area_data args ( ( int vnum ) ); 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[]; extern const struct olc_cmd_type hedit_table[]; extern const struct olc_cmd_type npcedit_table[]; extern const struct olc_cmd_type raceedit_table[]; extern const struct olc_cmd_type sedit_table[]; extern const struct olc_cmd_type comedit_table[]; extern const struct olc_cmd_type dedit_table[]; extern const struct olc_cmd_type qedit_table[]; extern const struct olc_cmd_type classedit_table[]; extern const struct olc_cmd_type gameedit_table[]; extern const struct olc_cmd_type socedit_table[]; extern const struct olc_cmd_type herbedit_table[]; extern const struct olc_cmd_type mixedit_table[]; extern const struct olc_cmd_type clanedit_table[]; extern const struct olc_cmd_type skillgroupedit_table[]; extern const struct olc_cmd_type langedit_table[]; /* * Editor Commands. */ DECLARE_DO_FUN( do_aedit ); DECLARE_DO_FUN( do_redit ); DECLARE_DO_FUN( do_oedit ); DECLARE_DO_FUN( do_medit ); DECLARE_DO_FUN( do_mpedit ); DECLARE_DO_FUN( do_npcedit ); DECLARE_DO_FUN( do_raceedit ); DECLARE_DO_FUN( do_sedit ); DECLARE_DO_FUN( do_comedit ); DECLARE_DO_FUN( do_dedit ); DECLARE_DO_FUN( do_qedit ); DECLARE_DO_FUN( do_classedit ); DECLARE_DO_FUN( do_gameedit ); DECLARE_DO_FUN( do_clanedit ); //DECLARE_DO_FUN( do_herbedit ); DECLARE_DO_FUN( do_langedit ); /* * 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 ) ); void show_char_extended(char_data *, EXTRA_DESCR_DATA *, bool); // Mobprog editor DECLARE_OLC_FUN( mpedit_create ); DECLARE_OLC_FUN( mpedit_code ); DECLARE_OLC_FUN( mpedit_show ); DECLARE_OLC_FUN( mpedit_title ); DECLARE_OLC_FUN( mpedit_mobs ); DECLARE_OLC_FUN( mpedit_author ); DECLARE_OLC_FUN( mpedit_delete); DECLARE_OLC_FUN( mpedit_mpdelete); // macros moved into merc.h /* 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_MPCODE(Ch, Code) ( Code = (MPROG_CODE*)Ch->desc->pEdit ) #define EDIT_HELP(Ch, Help) ( Help = (help_data*)Ch->desc->pEdit ) #define EDIT_RACE(Ch, Race) ( Race = (race_data*)Ch->desc->pEdit ) #define EDIT_SPELLSKILL(Ch, spsk) ( spsk= (skill_type*)Ch->desc->pEdit ) #define EDIT_COMMAND(Ch, cmd) ( cmd= (cmd_type*)Ch->desc->pEdit ) #define EDIT_DEITY(Ch, Deity) ( Deity = (DEITY_DATA *)Ch->desc->pEdit ) #define EDIT_BAN(ch, ban) ( ban = (BAN_DATA*)ch->desc->pEdit ) #define EDIT_QUEST(ch, quest) ( quest = (quest_type*)ch->desc->pEdit ) #define EDIT_CLASS(Ch, Class) ( Class= (class_type*)Ch->desc->pEdit ) #define EDIT_HERB(ch, herb) ( herb= ( HERB_DATA *)ch->desc->pEdit ) #define EDIT_MIX(ch, mix) ( mix= (mix_data *)ch->desc->pEdit ) #define EDIT_CLAN(ch, clan) ( clan= (CClanType*)ch->desc->pEdit ) #define EDIT_SKILLGROUP(ch, skgrp) ( skgrp= (skillgroup_type*)ch->desc->pEdit ) #define EDIT_LANGUAGE(ch, lang) ( lang= (language_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 ) ); #undef ED void show_liqlist args ( ( char_data *ch ) ); void show_damlist args ( ( char_data *ch ) ); char * mprog_type_to_name args ( ( int type ) ); MPROG_LIST *new_mprog args ( ( void ) ); void free_mprogs args ( ( MPROG_LIST *mp ) ); MPROG_CODE *new_mpcode args ( (void) ); void free_mpcode args ( ( MPROG_CODE *pMcode)); void show_flag_cmds( char_data *ch, const struct flag_type *flag_table ); void show_olc_options(char_data *ch, const struct flag_type *flag_table, const char *command_name, const char *descript, long flags); bool run_olc_editor_for_connection(connection_data *c, char *command); #endif // OLC_H