/*************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * 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. * ***************************************************************************/ /*************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@hypercube.org) * * Gabrielle Taylor (gtaylor@hypercube.org) * * Brian Moore (zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ /* this is a listing of all the commands and command related data */ /* wrapper function for safe command execution */ void do_function args((CHAR_DATA *ch, DO_FUN *do_fun, char *argument, SInt32 subcmd)); void create_table_com(void); void skip_spaces(char *&string); void skip_spaces(const char *&string); void half_chop(const char *string, char *arg1, char *arg2); bool is_abbrev(const char *arg1, const char *arg2); /* for command types */ #define ML MAX_LEVEL /* implementor */ #define IM LVL_IMMORT /* imm */ #define HE LVL_HERO /* hero */ #define COM_INGORE 1 #define STAFF_CMD -1 #define IS_STAFFCMD(cmd) (cmd_table[cmd].level == STAFF_CMD) /* * Structure for a command in the command lookup table. */ struct cmd_type { char * name; char * sort_as; DO_FUN * do_fun; sh_int position; sh_int level; sh_int show; sh_int log; Flags staffcmd; SInt32 subcmd; }; struct cmd_list_type { char *name; DO_FUN *function; }; /* * SUBCOMMANDS * You can define these however you want to, and the definitions of the * subcommands are independent from function to function. */ /* do_date */ #define SCMD_DATE 0 #define SCMD_UPTIME 1 /* do_allow */ #define SCMD_ALLOW 0 #define SCMD_DENY 1 /* do_ban */ #define SCMD_TEMPBAN 0 #define SCMD_PERMBAN 1 /* do_gen_tog */ #define SCMD_NOSUMMON 0 #define SCMD_NOHASSLE 1 #define SCMD_BRIEF 2 #define SCMD_COMPACT 3 #define SCMD_NOTELL 4 #define SCMD_NOMUSIC 5 #define SCMD_NOSHOUT 6 #define SCMD_NOCHAT 7 #define SCMD_NOGRATS 8 #define SCMD_NOQUEST 9 #define SCMD_HOLYLIGHT 10 #define SCMD_AUTOEXIT 11 #define SCMD_NOINFO 12 #define SCMD_COLOR 13 #define SCMD_MSP 14 #define SCMD_NOCLAN 15 #define SCMD_LONGEX 16 #define SCMD_COMBINE 17 #define SCMD_NOLOOT 18 #define SCMD_NOFOLLOW 19 #define SCMD_NOPUEBLO 20 #define SCMD_AUTOASSIST 21 #define SCMD_AUTODAMAGE 22 #define SCMD_AUTOGOLD 23 #define SCMD_AUTOLOOT 24 #define SCMD_AUTOSAC 25 #define SCMD_AUTOSPLIT 26 #define SCMD_AUTOMAP 27 #define SCMD_SHOW 28 #define SCMD_QUIET 29 /* do_liblist */ #define SCMD_RLIST 0 #define SCMD_OLIST 1 #define SCMD_MLIST 2 #define SCMD_TLIST 3 /* do_gen_comm */ #define SCMD_CHAT 0 #define SCMD_MUSIC 1 #define SCMD_GRATS 2 #define SCMD_SHOUT 3 #define SCMD_QUEST 4 #define SCMD_CLAN 5 #define SCMD_BROADCAST 6 /* do_zallow */ #define SCMD_ZALLOW 0 #define SCMD_ZDENY 1 /* do_spec_comm */ #define SCMD_WHISPER 0 #define SCMD_ASK 1 /* do_gen_ps */ #define SCMD_MOTD 0 #define SCMD_IMOTD 1 #define SCMD_RULES 2 #define SCMD_POLICY 3 #define SCMD_STORY 4 #define SCMD_VERSION 5 #define SCMD_CLEAR 6 /* the command table itself */ extern int MAX_CMD; extern struct cmd_type * cmd_table; #include "command.h" #if 0 /* * Command functions. * Defined in act_*.c (mostly). */ DECLARE_DO_FUN( do_pload ); DECLARE_DO_FUN( do_punload ); DECLARE_DO_FUN( do_advance ); DECLARE_DO_FUN( do_affects ); DECLARE_DO_FUN( do_afk ); DECLARE_DO_FUN( do_alia ); DECLARE_DO_FUN( do_alias ); DECLARE_DO_FUN( do_allow ); DECLARE_DO_FUN( do_areas ); DECLARE_DO_FUN( do_at ); DECLARE_DO_FUN( do_attributes ); DECLARE_DO_FUN( do_autoall ); DECLARE_DO_FUN( do_autolist ); DECLARE_DO_FUN( do_backstab ); DECLARE_DO_FUN( do_bamfin ); DECLARE_DO_FUN( do_bamfout ); DECLARE_DO_FUN( do_broadcast ); DECLARE_DO_FUN( do_board ); DECLARE_DO_FUN( do_category ); DECLARE_DO_FUN( do_checknote ); DECLARE_DO_FUN( do_cname ); DECLARE_DO_FUN( do_rmsg ); DECLARE_DO_FUN( do_ban ); DECLARE_DO_FUN( do_bash ); DECLARE_DO_FUN( do_berserk ); DECLARE_DO_FUN( do_brandish ); DECLARE_DO_FUN( do_brief ); DECLARE_DO_FUN( do_bug ); DECLARE_DO_FUN( do_buy ); DECLARE_DO_FUN( do_cast ); DECLARE_DO_FUN( do_changes ); DECLARE_DO_FUN( do_channels ); DECLARE_DO_FUN( do_clanlist ); DECLARE_DO_FUN( do_clone ); DECLARE_DO_FUN( do_close ); DECLARE_DO_FUN( do_commands ); DECLARE_DO_FUN( do_combine ); DECLARE_DO_FUN( do_compact ); DECLARE_DO_FUN( do_compare ); DECLARE_DO_FUN( do_consider ); DECLARE_DO_FUN( do_copyover ); DECLARE_DO_FUN( do_count ); DECLARE_DO_FUN( do_credits ); DECLARE_DO_FUN( do_deaf ); DECLARE_DO_FUN( do_drive ); DECLARE_DO_FUN( do_olc_delete ); DECLARE_DO_FUN( do_dirt ); DECLARE_DO_FUN( do_disarm ); DECLARE_DO_FUN( do_disconnect ); DECLARE_DO_FUN( do_donate ); DECLARE_DO_FUN( do_down ); DECLARE_DO_FUN( do_drink ); DECLARE_DO_FUN( do_drop ); DECLARE_DO_FUN( do_dump ); DECLARE_DO_FUN( do_east ); DECLARE_DO_FUN( do_eat ); DECLARE_DO_FUN( do_echo ); DECLARE_DO_FUN( do_emote ); DECLARE_DO_FUN( do_enter ); DECLARE_DO_FUN( do_envenom ); DECLARE_DO_FUN( do_equipment ); DECLARE_DO_FUN( do_examine ); DECLARE_DO_FUN( do_exits ); DECLARE_DO_FUN( do_finger ); DECLARE_DO_FUN( do_fill ); DECLARE_DO_FUN( do_flag ); DECLARE_DO_FUN( do_flee ); DECLARE_DO_FUN( do_follow ); DECLARE_DO_FUN( do_for ); DECLARE_DO_FUN( do_force ); DECLARE_DO_FUN( do_freeze ); DECLARE_DO_FUN( do_gain ); DECLARE_DO_FUN( do_gen_comm ); DECLARE_DO_FUN( do_gen_menu ); DECLARE_DO_FUN( do_gen_tog ); DECLARE_DO_FUN( do_gen_ps ); DECLARE_DO_FUN( do_get ); DECLARE_DO_FUN( do_give ); DECLARE_DO_FUN( do_gocial ); DECLARE_DO_FUN( do_gossip ); DECLARE_DO_FUN( do_goto ); DECLARE_DO_FUN( do_grats ); DECLARE_DO_FUN( do_group ); DECLARE_DO_FUN( do_groups ); DECLARE_DO_FUN( do_gtell ); DECLARE_DO_FUN( do_guild ); DECLARE_DO_FUN( do_juke ); DECLARE_DO_FUN( do_heal ); DECLARE_DO_FUN( do_help ); DECLARE_DO_FUN( do_hide ); DECLARE_DO_FUN( do_holylight ); DECLARE_DO_FUN( do_idea ); DECLARE_DO_FUN( do_immtalk ); DECLARE_DO_FUN( do_incognito ); DECLARE_DO_FUN( do_immcurse ); DECLARE_DO_FUN( do_clantalk ); DECLARE_DO_FUN( do_imotd ); DECLARE_DO_FUN( do_inventory ); DECLARE_DO_FUN( do_invis ); DECLARE_DO_FUN( do_kick ); DECLARE_DO_FUN( do_last ); DECLARE_DO_FUN( do_lore ); DECLARE_DO_FUN( do_kill ); DECLARE_DO_FUN( do_leave ); DECLARE_DO_FUN( do_liblist ); DECLARE_DO_FUN( do_list ); DECLARE_DO_FUN( do_load ); DECLARE_DO_FUN( do_lock ); DECLARE_DO_FUN( do_log ); DECLARE_DO_FUN( do_look ); DECLARE_DO_FUN( do_memory ); DECLARE_DO_FUN( do_mfind ); DECLARE_DO_FUN( do_mstat ); DECLARE_DO_FUN( do_mwhere ); DECLARE_DO_FUN( do_mob ); DECLARE_DO_FUN( do_mount ); DECLARE_DO_FUN( do_unmount ); DECLARE_DO_FUN( do_motd ); DECLARE_DO_FUN( do_mpstat ); DECLARE_DO_FUN( do_mpdump ); DECLARE_DO_FUN( do_murder ); DECLARE_DO_FUN( do_music ); DECLARE_DO_FUN( do_mute ); DECLARE_DO_FUN( do_newlock ); DECLARE_DO_FUN( do_news ); DECLARE_DO_FUN( do_nochannels ); DECLARE_DO_FUN( do_noemote ); DECLARE_DO_FUN( do_north ); DECLARE_DO_FUN( do_noshout ); DECLARE_DO_FUN( do_nosummon ); DECLARE_DO_FUN( do_note ); DECLARE_DO_FUN( do_notell ); DECLARE_DO_FUN( do_ofind ); DECLARE_DO_FUN( do_open ); DECLARE_DO_FUN( do_order ); DECLARE_DO_FUN( do_oset ); DECLARE_DO_FUN( do_ostat ); DECLARE_DO_FUN( do_outfit ); DECLARE_DO_FUN( do_owhere ); DECLARE_DO_FUN( do_promote ); DECLARE_DO_FUN( do_pardon ); DECLARE_DO_FUN( do_password ); DECLARE_DO_FUN( do_peace ); DECLARE_DO_FUN( do_pecho ); DECLARE_DO_FUN( do_penalty ); DECLARE_DO_FUN( do_pick ); DECLARE_DO_FUN( do_play ); DECLARE_DO_FUN( do_pmote ); DECLARE_DO_FUN( do_pose ); DECLARE_DO_FUN( do_pour ); DECLARE_DO_FUN( do_practice ); DECLARE_DO_FUN( do_prefi ); DECLARE_DO_FUN( do_prefix ); DECLARE_DO_FUN( do_prompt ); DECLARE_DO_FUN( do_protect ); DECLARE_DO_FUN( do_purge ); DECLARE_DO_FUN( do_put ); DECLARE_DO_FUN( do_quaff ); DECLARE_DO_FUN( do_quest ); DECLARE_DO_FUN( do_questalk ); DECLARE_DO_FUN( do_quit ); DECLARE_DO_FUN( do_read ); DECLARE_DO_FUN( do_reboot ); DECLARE_DO_FUN( do_recall ); DECLARE_DO_FUN( do_recho ); DECLARE_DO_FUN( do_recite ); DECLARE_DO_FUN( do_remove ); DECLARE_DO_FUN( do_rename ); DECLARE_DO_FUN( do_rent ); DECLARE_DO_FUN( do_replay ); DECLARE_DO_FUN( do_reply ); DECLARE_DO_FUN( do_report ); DECLARE_DO_FUN( do_rescue ); DECLARE_DO_FUN( do_rest ); DECLARE_DO_FUN( do_restore ); DECLARE_DO_FUN( do_return ); DECLARE_DO_FUN( do_rstat ); DECLARE_DO_FUN( do_rules ); DECLARE_DO_FUN( do_sacrifice ); DECLARE_DO_FUN( do_spec_comm ); DECLARE_DO_FUN( do_spellbane ); DECLARE_DO_FUN( do_shapeshift ); DECLARE_DO_FUN( do_sound ); DECLARE_DO_FUN( do_save ); DECLARE_DO_FUN( do_say ); DECLARE_DO_FUN( do_scan ); DECLARE_DO_FUN( do_score ); DECLARE_DO_FUN( do_scroll ); DECLARE_DO_FUN( do_sell ); DECLARE_DO_FUN( do_set ); DECLARE_DO_FUN( do_shout ); DECLARE_DO_FUN( do_show ); DECLARE_DO_FUN( do_path ); DECLARE_DO_FUN( do_shutdown ); DECLARE_DO_FUN( do_sit ); DECLARE_DO_FUN( do_songs ); DECLARE_DO_FUN( do_skills ); DECLARE_DO_FUN( do_sla ); DECLARE_DO_FUN( do_slay ); DECLARE_DO_FUN( do_sleep ); DECLARE_DO_FUN( do_slookup ); DECLARE_DO_FUN( do_smote ); DECLARE_DO_FUN( do_sneak ); DECLARE_DO_FUN( do_snoop ); DECLARE_DO_FUN( do_socials ); DECLARE_DO_FUN( do_south ); DECLARE_DO_FUN( do_spells ); DECLARE_DO_FUN( do_split ); DECLARE_DO_FUN( do_sset ); DECLARE_DO_FUN( do_stand ); DECLARE_DO_FUN( do_stat ); DECLARE_DO_FUN( do_steal ); DECLARE_DO_FUN( do_story ); DECLARE_DO_FUN( do_string ); DECLARE_DO_FUN( do_surrender ); DECLARE_DO_FUN( do_switch ); DECLARE_DO_FUN( do_syslog ); DECLARE_DO_FUN( do_tell ); DECLARE_DO_FUN( do_time ); DECLARE_DO_FUN( do_title ); DECLARE_DO_FUN( do_immtitle ); DECLARE_DO_FUN( do_toggle ); DECLARE_DO_FUN( do_train ); DECLARE_DO_FUN( do_transfer ); DECLARE_DO_FUN( do_trip ); DECLARE_DO_FUN( do_trust ); DECLARE_DO_FUN( do_typo ); DECLARE_DO_FUN( do_unban ); DECLARE_DO_FUN( do_unalias ); DECLARE_DO_FUN( do_unlock ); DECLARE_DO_FUN( do_unread ); DECLARE_DO_FUN( do_up ); DECLARE_DO_FUN( do_users ); DECLARE_DO_FUN( do_value ); DECLARE_DO_FUN( do_vape ); DECLARE_DO_FUN( do_visible ); DECLARE_DO_FUN( do_violate ); DECLARE_DO_FUN( do_vnum ); DECLARE_DO_FUN( do_wake ); DECLARE_DO_FUN( do_watch ); DECLARE_DO_FUN( do_wear ); DECLARE_DO_FUN( do_weather ); DECLARE_DO_FUN( do_west ); DECLARE_DO_FUN( do_where ); DECLARE_DO_FUN( do_who ); DECLARE_DO_FUN( do_whois ); DECLARE_DO_FUN( do_wimpy ); DECLARE_DO_FUN( do_wizhelp ); DECLARE_DO_FUN( do_wizlock ); DECLARE_DO_FUN( do_wizlist ); DECLARE_DO_FUN( do_worth ); DECLARE_DO_FUN( do_zallow ); DECLARE_DO_FUN( do_zap ); DECLARE_DO_FUN( do_zecho ); DECLARE_DO_FUN( do_olc ); DECLARE_DO_FUN( do_olclist ); DECLARE_DO_FUN( do_asave ); DECLARE_DO_FUN( do_alist ); DECLARE_DO_FUN( do_areas ); DECLARE_DO_FUN( do_resets ); DECLARE_DO_FUN( do_redit ); DECLARE_DO_FUN( do_aedit ); DECLARE_DO_FUN( do_medit ); DECLARE_DO_FUN( do_oedit ); DECLARE_DO_FUN( do_mpedit ); DECLARE_DO_FUN( do_hedit ); DECLARE_DO_FUN( do_gedit ); DECLARE_DO_FUN( do_sedit ); DECLARE_DO_FUN( do_pedit ); DECLARE_DO_FUN( save_guilds ); // Pueblo DECLARE_DO_FUN( do_pstop ); DECLARE_DO_FUN( do_pmusic ); DECLARE_DO_FUN( do_volume ); DECLARE_DO_FUN( do_display ); DECLARE_DO_FUN( do_mapper ); #endif