/*___________________________________________________________________________* )()( DalekenMUD 1.12 (C) 2000 )()( `][' by Martin Thomson, Lee Brooks, `][' || Ken Herbert and David Jacques || || ----------------------------------------------------------------- || || Envy Diku Mud improvements copyright (C) 1994 by Michael Quan, || || David Love, Guilherme 'Willie' Arnold, and Mitchell Tse. || || Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael || || Chastain, Michael Quan, and Mitchell Tse. || || Original Diku Mud copyright (C) 1990, 1991 || || by Sebastian Hammer, Michael Seifert, Hans Henrik St{rfeldt, || || Tom Madsen, and Katja Nyboe. || || ----------------------------------------------------------------- || || Any use of this software must follow the licenses of the || || creators. 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. || || ----------------------------------------------------------------- || || olc.h || || OLC header file. || *_/<>\_________________________________________________________________/<>\_*/ /* * 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 "&WILAB &BOnline Creation&n [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, const char *argument ) ); #define DECLARE_OLC_FUN( fun ) OLC_FUN fun /* * 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_SOCIAL 5 #define ED_HELP 6 #define ED_RELIGION 7 #define ED_CLAN 8 #define ED_POSE 9 #define ED_PLANE 10 #define ED_GMPROG 11 /* * OLC Constants */ #define MAX_MOB 1 /* Default maximum number for resetting mobs */ /* * Structure for an OLC editor command. */ struct olc_cmd_type { const 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; }; /* * Structure for the OLC helps. */ struct bit_table_type { const char *command; const void *structure; int flags; const char *desc; }; #define BIT_FLAG 1 #define BIT_STAT 2 #define BIT_VECTOR 3 #define BIT_TYPE_MASK (1|2|4) #define BIT_INVISIBLE 8 /* * 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 sedit_table[]; extern const struct olc_cmd_type hedit_table[]; extern const struct olc_cmd_type reledit_table[]; extern const struct olc_cmd_type cedit_table[]; extern const struct olc_cmd_type poseedit_table[]; extern const struct olc_cmd_type pledit_table[]; extern const struct olc_cmd_type gmpedit_table[]; /* * Flag help table. */ extern const struct bit_table_type bit_table[]; /* * General Functions */ bool edit_done args( ( CHAR_DATA *ch ) ); AREA_DATA *get_editing_area args( ( CHAR_DATA *ch ) ); DECLARE_OLC_FUN( show_commands ); DECLARE_OLC_FUN( show_help ); DECLARE_OLC_FUN( show_version ); DECLARE_OLC_FUN( edit_delet ); DECLARE_OLC_FUN( edit_delete ); DECLARE_OLC_FUN( edit_gmplist ); /* * Area Editor Prototypes */ DECLARE_OLC_FUN( aedit_age ); DECLARE_OLC_FUN( aedit_builder ); DECLARE_OLC_FUN( aedit_clear ); /* Daleken */ DECLARE_OLC_FUN( aedit_count ); /* Daleken */ DECLARE_OLC_FUN( aedit_create ); DECLARE_OLC_FUN( aedit_desc ); /* Daleken */ DECLARE_OLC_FUN( aedit_economy ); DECLARE_OLC_FUN( aedit_file ); DECLARE_OLC_FUN( aedit_lvnum ); DECLARE_OLC_FUN( aedit_name ); DECLARE_OLC_FUN( aedit_order ); /* Daleken */ DECLARE_OLC_FUN( aedit_plane ); /* Daleken */ DECLARE_OLC_FUN( aedit_recall ); DECLARE_OLC_FUN( aedit_repop ); /* Daleken */ DECLARE_OLC_FUN( aedit_reset ); DECLARE_OLC_FUN( aedit_security ); DECLARE_OLC_FUN( aedit_show ); DECLARE_OLC_FUN( aedit_temp ); /* Daleken */ DECLARE_OLC_FUN( aedit_uvnum ); DECLARE_OLC_FUN( aedit_vnum ); /* * Room Editor Prototypes */ DECLARE_OLC_FUN( redit_clone ); /* Daleken */ DECLARE_OLC_FUN( redit_create ); DECLARE_OLC_FUN( redit_desc ); DECLARE_OLC_FUN( redit_down ); DECLARE_OLC_FUN( redit_east ); DECLARE_OLC_FUN( redit_ed ); DECLARE_OLC_FUN( redit_format ); DECLARE_OLC_FUN( redit_move ); DECLARE_OLC_FUN( redit_mlist ); DECLARE_OLC_FUN( redit_mpadd ); /* Daleken */ DECLARE_OLC_FUN( redit_mpdelete ); /* Daleken */ DECLARE_OLC_FUN( redit_mpedit ); /* Daleken */ DECLARE_OLC_FUN( redit_mpshow ); /* Daleken */ DECLARE_OLC_FUN( redit_mreset ); DECLARE_OLC_FUN( redit_mshow ); DECLARE_OLC_FUN( redit_name ); DECLARE_OLC_FUN( redit_north ); DECLARE_OLC_FUN( redit_olist ); DECLARE_OLC_FUN( redit_oreset ); DECLARE_OLC_FUN( redit_oshow ); DECLARE_OLC_FUN( redit_show ); DECLARE_OLC_FUN( redit_south ); DECLARE_OLC_FUN( redit_up ); DECLARE_OLC_FUN( redit_west ); /* * Object Editor Prototypes */ DECLARE_OLC_FUN( oedit_action ); /* Daleken */ DECLARE_OLC_FUN( oedit_addaffect ); DECLARE_OLC_FUN( oedit_addperm ); /* Daleken */ DECLARE_OLC_FUN( oedit_addspell ); /* Daleken */ DECLARE_OLC_FUN( oedit_clone ); /* Daleken */ DECLARE_OLC_FUN( oedit_condition ); /* Daleken */ DECLARE_OLC_FUN( oedit_cost ); /* Daleken */ DECLARE_OLC_FUN( oedit_create ); DECLARE_OLC_FUN( oedit_delaffect ); DECLARE_OLC_FUN( oedit_ed ); DECLARE_OLC_FUN( oedit_level ); DECLARE_OLC_FUN( oedit_long ); DECLARE_OLC_FUN( oedit_mpadd ); /* Daleken */ DECLARE_OLC_FUN( oedit_mpdelete ); /* Daleken */ DECLARE_OLC_FUN( oedit_mpedit ); /* Daleken */ DECLARE_OLC_FUN( oedit_mpshow ); /* Daleken */ DECLARE_OLC_FUN( oedit_name ); DECLARE_OLC_FUN( oedit_repop ); DECLARE_OLC_FUN( oedit_required ); /* Daleken */ DECLARE_OLC_FUN( oedit_rsfind ); /* Daleken */ DECLARE_OLC_FUN( oedit_short ); DECLARE_OLC_FUN( oedit_show ); 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 ); /* * Mobile Editor Prototypes */ DECLARE_OLC_FUN( medit_align ); DECLARE_OLC_FUN( medit_class ); /* Daleken */ DECLARE_OLC_FUN( medit_clone ); /* Daleken */ DECLARE_OLC_FUN( medit_create ); DECLARE_OLC_FUN( medit_desc ); DECLARE_OLC_FUN( medit_level ); DECLARE_OLC_FUN( medit_long ); DECLARE_OLC_FUN( medit_mpadd ); /* Daleken */ DECLARE_OLC_FUN( medit_mpdelete ); /* Daleken */ DECLARE_OLC_FUN( medit_mpedit ); /* Daleken */ DECLARE_OLC_FUN( medit_mpshow ); /* Daleken */ DECLARE_OLC_FUN( medit_name ); DECLARE_OLC_FUN( medit_repop ); /* Daleken */ DECLARE_OLC_FUN( medit_rsfind ); /* Daleken */ DECLARE_OLC_FUN( medit_short ); DECLARE_OLC_FUN( medit_show ); DECLARE_OLC_FUN( medit_shop ); DECLARE_OLC_FUN( medit_spec ); /* * 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_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 */ /* * Help editor prototypes */ DECLARE_OLC_FUN( hedit_create ); /* Daleken */ DECLARE_OLC_FUN( hedit_harea ); /* Daleken */ DECLARE_OLC_FUN( hedit_hlist ); /* Daleken */ DECLARE_OLC_FUN( hedit_keyword ); /* Daleken */ DECLARE_OLC_FUN( hedit_show ); /* Daleken */ DECLARE_OLC_FUN( hedit_text ); /* Daleken */ DECLARE_OLC_FUN( hedit_trust ); /* Daleken */ /* * Religion editor prototypes */ DECLARE_OLC_FUN( reledit_addskill ); /* Daleken */ DECLARE_OLC_FUN( reledit_align ); /* Daleken */ DECLARE_OLC_FUN( reledit_create ); /* Daleken */ DECLARE_OLC_FUN( reledit_delskill ); /* Daleken */ DECLARE_OLC_FUN( reledit_display ); /* Daleken */ DECLARE_OLC_FUN( reledit_god ); /* Daleken */ DECLARE_OLC_FUN( reledit_name ); /* Daleken */ DECLARE_OLC_FUN( reledit_show ); /* Daleken */ DECLARE_OLC_FUN( reledit_token ); /* Daleken */ /* * Clan editor protoytypes */ DECLARE_OLC_FUN( cedit_addskill ); /* Daleken */ DECLARE_OLC_FUN( cedit_class ); /* Daleken */ DECLARE_OLC_FUN( cedit_create ); /* Daleken */ DECLARE_OLC_FUN( cedit_delskill ); /* Daleken */ DECLARE_OLC_FUN( cedit_desc ); /* Daleken */ DECLARE_OLC_FUN( cedit_display ); /* Daleken */ DECLARE_OLC_FUN( cedit_enemies ); /* Daleken */ DECLARE_OLC_FUN( cedit_leader ); /* Daleken */ DECLARE_OLC_FUN( cedit_motto ); /* Daleken */ DECLARE_OLC_FUN( cedit_name ); /* Daleken */ DECLARE_OLC_FUN( cedit_recall ); /* Daleken */ DECLARE_OLC_FUN( cedit_religion ); /* Daleken */ DECLARE_OLC_FUN( cedit_rules ); /* Daleken */ DECLARE_OLC_FUN( cedit_show ); /* Daleken */ /* * Pose editor functions. */ DECLARE_OLC_FUN( poseedit_create ); /* Daleken */ DECLARE_OLC_FUN( poseedit_show ); /* Daleken */ DECLARE_OLC_FUN( poseedit_tochar ); /* Daleken */ DECLARE_OLC_FUN( poseedit_toroom ); /* Daleken */ /* * Plane editor functions. */ DECLARE_OLC_FUN( pledit_create ); /* Daleken */ DECLARE_OLC_FUN( pledit_show ); /* Daleken */ DECLARE_OLC_FUN( pledit_name ); /* Daleken */ DECLARE_OLC_FUN( pledit_minimum ); /* Daleken */ /* * Global Mud Program editor functions. */ DECLARE_OLC_FUN( gmpedit_create ); /* Daleken */ DECLARE_OLC_FUN( gmpedit_show ); /* Daleken */ DECLARE_OLC_FUN( gmpedit_area ); /* Daleken */ DECLARE_OLC_FUN( gmpedit_arglist ); /* Daleken */ DECLARE_OLC_FUN( gmpedit_comlist ); /* Daleken */ /* * Macros */ /* 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_SOCIAL(Ch, Social) ( Social = (SOCIAL_DATA *)Ch->desc->pEdit ) #define EDIT_HELP(Ch, Help) ( Help = (HELP_DATA *)Ch->desc->pEdit ) #define EDIT_RELIGION(Ch, Rel) ( Rel = (RELIGION_DATA *)Ch->desc->pEdit ) #define EDIT_CLAN(Ch, Clan) ( Clan = (CLAN_DATA *)Ch->desc->pEdit ) #define EDIT_POSE(Ch, Pose) ( Pose = (POSE_DATA *)Ch->desc->pEdit ) #define EDIT_PLANE(Ch, Plane) ( Plane = (PLANE_DATA *)Ch->desc->pEdit ) #define EDIT_GMPROG(Ch, GMprg) ( GMprg = (MPROG_GLOBAL *)Ch->desc->pEdit ) /* * Memory Prototypes (mem.c) */ #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 ) ); 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 ) ); MPROG_DATA *new_mprog args( ( void ) ); void free_mprog args( ( MPROG_DATA *mprg ) ); SOCIAL_DATA *new_social args( ( char *name ) ); void free_social args( ( SOCIAL_DATA *pSocial ) ); HELP_DATA *new_help args( ( void ) ); void free_help args( ( HELP_DATA *pHelp ) ); ALIAS_DATA *new_alias args( ( void ) ); void free_alias args( ( ALIAS_DATA *al ) ); MPROG_GLOBAL *new_mprog_global args( ( void ) ); void free_mprog_global args( ( MPROG_GLOBAL *mprg ) ); #undef ED