/**
 * @file command.h
 *
 * Command typed, function prototypes, and maintenence routines.
 *
 * @author Geoff Davis <geoff@circlemudsquared.org>
 * @ingroup command
 * @license All rights reserved.  See license.doc for complete information.
 * @package cs
 * @since v1.0
 *
 * Copyright (C) 2006 Geoff Davis <geoff@circlemudsquared.org>
 *                    Greg Buxton <greg@circlemudsquared.org>
 *
 * Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University
 * CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991.
 */
#ifndef __COMMAND_H__
#define __COMMAND_H__
#include "base.h"
/**
 * Expands to an ACMD definition.
 * @param name the name of the ACMD function to be defined
 * @return none
 */
#define ACMD(name)  \
   void name(charData_t *ch, char *argument, const commandData_t *cmd)
#define CMD_NAME (cmd->command)
#define CMD_IS(cmd_name) (strcasecmp((cmd_name), CMD_NAME) == 0)
#define IS_MOVE(cmd) ((cmd) && (cmd)->command_pointer == do_move)
/**
 * Expands to an ACMD registry header.
 * @param name the name of the ACMD registry
 * @return none
 */
#define BEGIN_ACMD_REGISTRY(name) \
  const acmdData_t name[] = {
/**
 * Expands the register an ACMD function.
 * @param function the ACMD function to be registered
 * @return none
 */
#define REGISTER_ACMD(function) \
  { #function, function },
/**
 * Expands to an ACMD registry footer.
 * @return none
 */
#define END_ACMD_REGISTRY() \
  { "\n", NULL } }
/**
 * The type of an ACMD function.
 * @ingroup command
 * @typedef ACMD((*))
 */
typedef ACMD((*acmdFunction_t));
/**
 * An alias for struct _acmdData_t.
 * @ingroup command
 * @typedef struct _acmdData_t
 */
typedef struct _acmdData_t acmdData_t;
/**
 * The ACMD registry structure.
 * @ingroup command
 * @{
 */
struct _acmdData_t {
  const char     *name;                 /**< The name of the ACMD function. */
  acmdFunction_t  function;             /**< The ACMD function.             */
};
/** @} */
/**
 * The command data structure.
 * @ingroup command
 * @{
 */
struct _commandData_t {
  const char     *command;              /**< The name of the command.       */
  int             minimum_position;     /**< The minimum position (POS_xxx).*/
  acmdFunction_t  command_pointer;      /**< The ACMD function to be called.*/
  int             minimum_auth;         /**< The minimum auth: AUTH_xxx.    */
};
/** @} */
#ifndef __COMMAND_C__
/**
 * The ACMD table.
 * @ingroup command
 * @var const acmdData_t[]
 */
extern const acmdData_t acmd_registry[];
/**
 * The command table.
 * @ingroup command
 * @var const commandData_t[]
 */
extern const commandData_t cmd_info[];
#endif /* __COMMAND_C__ */
/*
 * Prototypes for command.c
 */
/**
 * Interprets one command from a character.
 * @param ch the character for whom the command is executed
 * @param argument the command line to be interpreted as a command
 * @return none
 */
void command_interpreter(charData_t *ch, char *argument);
/**
 * Searches for a command.
 * @param command the cannonical name of the command
 * @return the command, or NULL if the command cannot be found
 */
const commandData_t *find_command(const char *command);
/*
 * Prototypes for act.comm.c
 */
/**
 * The SAY command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_say);
/**
 * The GSAY command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gsay);
/**
 * The TELL command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_tell);
/**
 * The REPLY command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_reply);
/**
 * The ASK and WHISPER commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_spec_comm);
/**
 * The WRITE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_write);
/**
 * The PAGE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_page);
/**
 * The GOSSIP, GRATZ, HOLLER, and SHOUT commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gen_comm);
/**
 * The QCOMM command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_qcomm);
/*
 * Prototypes for act.informative.c.
 */
/**
 * The EXITS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_exits);
/**
 * The LOOK and READ commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_look);
/**
 * The EXAMINE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_examine);
/**
 * The GOLD command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gold);
/**
 * The SCORE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_score);
/**
 * The INVENTORY command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_inventory);
/**
 * The EQUIPMENT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_equipment);
/**
 * The TIME command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_time);
/**
 * The WEATHER command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_weather);
/**
 * The HELP command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_help);
/**
 * The WHO command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_who);
/**
 * The USERS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_users);
/**
 * The generic ACMD function for toggle setting.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gen_ps);
/**
 * The WHERE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_where);
/**
 * The LEVELS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_levels);
/**
 * The CONSIDER command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_consider);
/**
 * The DIAGNOSE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_diagnose);
/**
 * The COLOR command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_color);
/**
 * The TOGGLE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_toggle);
/**
 * The COMMANDS, SOCIALS, and WIZHELP commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_commands);
/*
 * Prototypes for act.item.c
 */
/**
 * The PUT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_put);
/**
 * The GET command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_get);
/**
 * The DONATE, DROP, and JUNK commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_drop);
/**
 * The GIVE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_give);
/**
 * The DRINK and SIP commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_drink);
/**
 * The EAT and TASTE commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_eat);
/**
 * The POUR command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_pour);
/**
 * The WEAR command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wear);
/**
 * The WIELD command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wield);
/**
 * The GRAB command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_grab);
/**
 * The REMOVE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_remove);
/*
 * Prototypes for act.movement.c
 */
/**
 * The NORTH, SOUTH, EAST, WEST, UP, and DOWN commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_move);
/**
 * The CLOSE, LOCK, OPEN, and PICK commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gen_door);
/**
 * The ENTER command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_enter);
/**
 * The LEAVE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_leave);
/**
 * The STAND command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_stand);
/**
 * The SIT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_sit);
/**
 * The REST command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_rest);
/**
 * The SLEEP command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_sleep);
/**
 * The WAKE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wake);
/**
 * The FOLLOW command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_follow);
/*
 * Prototypes for act.offensive.c
 */
/**
 * The ASSIST command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_assist);
/**
 * The HIT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_hit);
/**
 * The KILL and MURDER commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_kill);
/**
 * The BACKSTAB command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_backstab);
/**
 * The ORDER command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_order);
/**
 * The FLEE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_flee);
/**
 * The BASH command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_bash);
/**
 * The RESCUE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_rescue);
/**
 * The KICK command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_kick);
/*
 * Prototypes for act.other.c
 */
/**
 * The QUIT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_quit);
/**
 * The SAVE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_save);
/**
 * The dummy function for command spec-procs.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_not_here);
/**
 * The SNEAK command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_sneak);
/**
 * The HIDE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_hide);
/**
 * The STEAL command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_steal);
/**
 * The PRACTICE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_practice);
/**
 * The VISIBLE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_visible);
/**
 * The TITLE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_title);
/**
 * The GROUP command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_group);
/**
 * The UNGROUP command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_ungroup);
/**
 * The REPORT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_report);
/**
 * The SPLIT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_split);
/**
 * The QUAFF, RECITE, and USE commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_use);
/**
 * The WIMPY command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wimpy);
/**
 * The DISPLAY command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_display);
/**
 * The BUG, IDEA, and TYPO commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gen_write);
/*
 * Prototypes for act.social.c
 */
/**
 * The entry point for social commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_action);
/**
 * The INSULT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_insult);
/*
 * Prototypes for act.wizard.c
 */
/**
 * The ECHO command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_echo);
/**
 * The SEND command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_send);
/**
 * The AT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_at);
/**
 * The GOTO command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_goto);
/**
 * The TRANS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_trans);
/**
 * The TELEPORT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_teleport);
/**
 * The VNUM command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_vnum);
/**
 * The STAT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_stat);
/**
 * The SHUTDOWN command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_shutdown);
/**
 * The SNOOP command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_snoop);
/**
 * The SWITCH command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_switch);
/**
 * The RETURN command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_return);
/**
 * The LOAD command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_load);
/**
 * The VSTAT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_vstat);
/**
 * The PURGE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_purge);
/**
 * The SYSLOG command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_syslog);
/**
 * The ADVANCE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_advance);
/**
 * The AUTHORIZE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_authorize);
/**
 * The RESTORE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_restore);
/**
 * The INVIS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_invis);
/**
 * The GECHO command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_gecho);
/**
 * The POOFIN and POOFOUT commands.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_poofset);
/**
 * The DC command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_dc);
/**
 * The WIZLOCK command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wizlock);
/**
 * The DATE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_date);
/**
 * The LAST command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_last);
/**
 * The FORCE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_force);
/**
 * The WIZNET command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wiznet);
/**
 * The ZRESET command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_zreset);
/**
 * The WIZUTIL command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_wizutil);
/**
 * The SHOW command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_show);
/**
 * The SET command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_set);
/**
 * The SLOWNS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_slowns);
/**
 * The TRACKTHRU command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_trackthru);
/*
 * Prototypes for ban.c
 */
/**
 * The BAN command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_ban);
/**
 * The UNBAN command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_unban);
/*
 * Prototypes for db.c
 */
/**
 * The REBOOT command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_reboot);
/*
 * Prototypes for graph.c
 */
/**
 * The TRACK command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_track);
/*
 * Prototypes for house.c
 */
/**
 * The HCONTROL command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_hcontrol);
/**
 * The HOUSE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_house);
/*
 * Prototypes for interpreter.c
 */
/**
 * The ALIAS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_alias);
/*
 * Prototypes for modify.c
 */
/**
 * The SKILLSET command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_skillset);
/*
 * Prototypes for olc.c
 */
#if 0
/**
 * The OLC command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_olc);
#endif
/*
 * Prototypes for spell_parser.c
 */
/**
 * The CAST command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_cast);
/*
 * Prototypes for zone.c
 */
/**
 * The SAVEZONE command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_savezone);
/*
 * Prototypes for command.c
 */
/**
 * The SAVECOMMANDS command.
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @returns none
 */
ACMD(do_savecommands);
/**
 * LIST command
 *
 * This command lets a user list the items in a shop
 *
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @return none
 */
ACMD(do_list);
/**
 * SELL command
 *
 * This command lets a user sell an item to a shop
 *
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @return none
 */
ACMD(do_sell);
/**
 * APPRAISE command
 *
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @return none
 */
ACMD(do_appraise);
/**
 * BUY command
 *
 * @param ch the character performing the command
 * @param argument the additional text passed after the command
 * @param cmd the command object that was performed
 * @return none
 */
ACMD(do_buy);
#endif /* __COMMAND_H__ */