/* * $Id: olc.h,v 1.25 1998/12/23 16:11:20 fjoe Exp $ */ /*************************************************************************** * 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 */ #ifndef _OLC_H_ #define _OLC_H_ DECLARE_DO_FUN(do_help ); bool run_olc_editor (DESCRIPTOR_DATA *d); const char *olc_ed_name (CHAR_DATA *ch); typedef bool OLC_FUN (CHAR_DATA *ch, const char *argument); typedef bool VALIDATE_FUN (CHAR_DATA *ch, const void *arg); #define DECLARE_OLC_FUN(fun) OLC_FUN fun #define DECLARE_VALIDATE_FUN(fun) VALIDATE_FUN fun #define OLC_FUN(fun) bool fun(CHAR_DATA *ch, const char *argument) #define VALIDATE_FUN(fun) bool fun(CHAR_DATA *ch, const void *arg) /* functions all cmd tables must have */ enum { FUN_CREATE, FUN_EDIT, FUN_TOUCH, FUN_FIRST = FUN_TOUCH, FUN_SHOW, FUN_LIST, FUN_MAX }; /* * Structure for an OLC editor command. */ struct olc_cmd_data { char * name; OLC_FUN * olc_fun; void* arg1; }; typedef struct olc_cmd_data OLC_CMD_DATA; extern const char ED_AREA []; extern const char ED_ROOM []; extern const char ED_OBJ []; extern const char ED_MOB []; extern const char ED_MPCODE []; extern const char ED_HELP []; extern const char ED_CLAN []; extern const char ED_MSG []; extern const char ED_CLASS []; extern const char ED_LANG []; extern const char ED_GENDER []; extern const char ED_CASE []; /* * Interpreter Table Prototypes */ extern OLC_CMD_DATA olc_cmds_area[]; extern OLC_CMD_DATA olc_cmds_room[]; extern OLC_CMD_DATA olc_cmds_obj[]; extern OLC_CMD_DATA olc_cmds_mob[]; extern OLC_CMD_DATA olc_cmds_mpcode[]; extern OLC_CMD_DATA olc_cmds_help[]; extern OLC_CMD_DATA olc_cmds_clan[]; extern OLC_CMD_DATA olc_cmds_msg[]; extern OLC_CMD_DATA olc_cmds_class[]; extern OLC_CMD_DATA olc_cmds_lang[]; extern OLC_CMD_DATA olc_cmds_word[]; /* * Editor Commands. */ DECLARE_DO_FUN(do_alist ); DECLARE_DO_FUN(do_asave ); DECLARE_DO_FUN(do_ashow ); DECLARE_DO_FUN(do_edit ); DECLARE_DO_FUN(do_create ); DECLARE_DO_FUN(do_resets ); /* * Generic data edit functions */ bool olced_number (CHAR_DATA *ch, const char *argument, OLC_FUN *olc_fun, int*); bool olced_str (CHAR_DATA *ch, const char *argument, OLC_FUN *olc_fun, const char**pStr); bool olced_str_text (CHAR_DATA *ch, const char *argument, OLC_FUN *fun, const char **pStr); bool olced_mlstr (CHAR_DATA *ch, const char *argument, OLC_FUN *olc_fun, mlstring**); bool olced_mlstrnl (CHAR_DATA *ch, const char *argument, OLC_FUN *olc_fun, mlstring**); bool olced_mlstr_text (CHAR_DATA *ch, const char *argument, OLC_FUN *olc_fun, mlstring**); bool olced_exd (CHAR_DATA *ch, const char* argument, ED_DATA**); bool olced_flag (CHAR_DATA *ch, const char* argument, OLC_FUN *olc_fun, flag_t*); bool olced_dice (CHAR_DATA *ch, const char *argument, OLC_FUN *fun, int *dice); bool olced_clan (CHAR_DATA *ch, const char *argument, OLC_FUN *fun, int *clan); DECLARE_VALIDATE_FUN(validate_filename); DECLARE_VALIDATE_FUN(validate_room_vnum); bool show_commands (CHAR_DATA *ch, const char *argument); bool show_version (CHAR_DATA *ch, const char *argument); AREA_DATA *get_edited_area(CHAR_DATA *ch); bool touch_area (AREA_DATA*); bool touch_vnum (int vnum); void edit_done (DESCRIPTOR_DATA *d); OLC_CMD_DATA * olc_cmd_lookup (CHAR_DATA *ch, OLC_FUN *fun); #define SECURITY_CLAN 5 #define SECURITY_HELP 5 #define SECURITY_AREA_CREATE 9 #define SECURITY_MSGDB 3 #endif