legend/
legend/area/
legend/player/
/***************************************************************************
 *  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.                                                  *
 ***************************************************************************/
/***************************************************************************
 *  God Wars Mud copyright (C) 1994, 1995, 1996 by Richard Woolcock        *
 *  									   *
 *  Legend of Chrystancia copyright (C) 1999, 2000, 2001 by Matthew Little *
 *  This mud is NOT to be copied in whole or in part, or to be run without *
 *  the permission of Matthew Little. Nobody else has permission to        *
 *  authorise the use of this code.                                        *
 ***************************************************************************/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h> /* unlink() */
#include "merc.h"
#define TFUNC "Currently Saves/Loads ArtiTable"
int can_interpret args( (CHAR_DATA *ch, int cmd) );

int can_interpret (CHAR_DATA *ch, int cmd)
{
int x=3;
	
		if (check_disabled (&cmd_table[cmd]))
			x = 1;
		else
			x = 2;

    if (cmd_table[cmd].level > get_trust(ch)) x = 0;

    if ( ch->position < cmd_table[cmd].position )
		x = 0;

    return x;
}




void dump_objs()
{
{
  FILE *fp;
  OBJ_DATA *obj;
  fp=fopen("blergh","w");
  for(obj=object_list;obj;obj=obj->next)
  {
    if(obj->pIndexData->cost!=666555)
    {
      obj->pIndexData->cost=666555;
      fprintf(fp,"%d|%s|%s|%d\n",obj->pIndexData->vnum,obj->name,obj->short_descr,obj->cost);
    }
  }
  fclose(fp);
}}
void do_testcommand(CHAR_DATA *ch,char *argument)
{
  dump_objs();return;
  if(!str_cmp(argument,"load"))load_lostfound();
  else write_lostfound();
}

bool	check_social	args( ( CHAR_DATA *ch, char *command,
			    char *argument ) );
bool	check_xsocial	args( ( CHAR_DATA *ch, char *command,
			    char *argument ) );

extern int nAllocString;
extern int nAllocPerm;


/*
 * Command logging types.
 */
#define LOG_NORMAL	0
#define LOG_ALWAYS	1
#define LOG_NEVER	2
#define LOG_SILENCE     4
#define LOG_NOSHOW      8


/*
 * Log-all switch.
 */
int     top_playerid    = 0;

char *  last_command        = NULL;
bool    cmd_done        = TRUE;
//int     pulse_modifier  = 240;
int	pulse_arena     = 60;
bool    global_exp      = FALSE;
bool	BITCH		= FALSE;
int player_vote = 0;
bool  check_disabled (const struct cmd_type *command);
char *disabled_reason(const struct cmd_type *command);
BAN_DATA *ban_first;
DISABLED_DATA *disabled_first;
#define END_MARKER    "END" /* for load_disabled() and save_disabled()*/


/*
 * Command table.
 */
const	struct	cmd_type	cmd_table	[] =
{
    { "for",		do_for,		POS_DEAD,	10,  LOG_NORMAL },

    /*
     * Common movement commands.
     */
    { "north",		do_north,	POS_STANDING,	 0,  LOG_NOSHOW	},
    { "east",		do_east,	POS_STANDING,	 0,  LOG_NOSHOW	},
    { "south",		do_south,	POS_STANDING,	 0,  LOG_NOSHOW	},
    { "west",		do_west,	POS_STANDING,	 0,  LOG_NOSHOW },
    { "up",		do_up,		POS_STANDING,	 0,  LOG_NOSHOW },
    { "down",		do_down,	POS_STANDING,	 0,  LOG_NOSHOW },


    /*
     * Common other commands.
     * Placed here so one and two letter abbreviations work.
     */
    { "beep",		do_beep, 	POS_STANDING,	 2,  LOG_NORMAL },
    { "buy",		do_buy,		POS_SITTING,	 0,  LOG_NORMAL	},
    { "cast",		do_cast,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "call",		do_call,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "tell",		do_tell,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "chant",		do_chant,	POS_FIGHTING,	 4,  LOG_NORMAL	},
    { "cchant",         do_cloakchant,  POS_FIGHTING,    4,  LOG_NORMAL },
    { "cloakchant",     do_cloakchant,  POS_FIGHTING,    4,  LOG_NORMAL },
    { "command",	do_command,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "crack",		do_crack,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "diagnose",	do_diagnose,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "dismount",	do_dismount,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "enter",		do_enter,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "exits",		do_exits,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "get",		do_get,		POS_SITTING,	 0,  LOG_NORMAL	},
    { "kill",           do_kill,        POS_FIGHTING,    0,  LOG_NORMAL },    
    { "look",           do_look,        POS_MEDITATING,  0,  LOG_NORMAL },
    { "order",		do_order,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "medit",          do_medit,       POS_DEAD,        8,  LOG_NORMAL },
    { "meditate",	do_meditate,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "mount",		do_mount,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "rest",		do_rest,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "sit",		do_sit,		POS_SITTING,	 0,  LOG_NORMAL	},
    { "stand",		do_stand,	POS_SLEEPING,	 0,  LOG_NORMAL	},
    { "whisper",	do_whisper,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "wield",		do_wear,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "wizhelp",	do_wizhelp,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "heal",           do_heal,        POS_FIGHTING,    3,  LOG_NORMAL }, 
    { "cheal",		do_cheal,	POS_FIGHTING,    0,  LOG_NORMAL },
    { "learn",		do_learn, 	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "godsheal",	do_godsheal,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "guide",		do_guide,	POS_STANDING,	 3,  LOG_NORMAL },
    { "phase",          do_phase,       POS_STANDING,    0,  LOG_NORMAL },
    { "pray",		do_pray,	POS_MEDITATING,	 1,  LOG_NORMAL },
    { "adamantium",	do_adamantium,  POS_STANDING,    3,  LOG_NORMAL },
    { "celestial",	do_celestial,   POS_STANDING,	 3,  LOG_NORMAL },
    { "obtain",         do_obtain,	POS_FIGHTING,	 3,  LOG_NORMAL },  
    { "redeem",         do_redeem,	POS_FIGHTING,    3,  LOG_NORMAL },  
    { "warps",          do_warps,	POS_FIGHTING,    3,  LOG_NORMAL },  
    { "steed",		do_steed, 	POS_FIGHTING,    3,  LOG_NORMAL }, 
    { "spinkick",	do_spinkick,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "backfist",	do_backfist,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "elbow",		do_elbow,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "sweep",		do_sweep,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "reverse",	do_reverse,     POS_FIGHTING,    3,  LOG_NORMAL },
    { "knee",		do_knee,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "shinkick",	do_shinkick,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "palmstrike",	do_palmstrike,	POS_STANDING,    3,  LOG_NORMAL },
    { "chi",		do_chi,		POS_FIGHTING,    3,  LOG_NORMAL },
    { "chistorm",	do_chistorm,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "spiritpower",	do_spiritpower,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "deathtouch",	do_deathtouch,	POS_STANDING,    3,  LOG_NORMAL },
    { "healingtouch",   do_healingtouch,POS_STANDING,    3,  LOG_NORMAL },
    { "relax",		do_relax,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "hum",		do_monktalk,	POS_DEAD,	 3,  LOG_NORMAL }, 
    { "monktalk",	do_monktalk,	POS_DEAD,        3,  LOG_NORMAL },
    { "blinding",	do_blinding, 	POS_STANDING,    3,  LOG_NORMAL },
    { "inventory",      do_inventory,   POS_DEAD,        0,  LOG_NORMAL },  
    { "immtalk",	do_immtalk,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "hightalk",	do_hightalk,	POS_DEAD,	 3,  LOG_NORMAL },
    { "miktalk", 	do_miktalk, 	POS_SLEEPING, 	 3,  LOG_NORMAL },
    { "principles", 	do_principles, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "michi", 		do_michi, 	POS_FIGHTING, 	 3,  LOG_NORMAL },
    { "doka", 		do_doka,	POS_STANDING, 	 3,  LOG_NORMAL },
    { "kunoichi", 	do_stun, 	POS_FIGHTING, 	 3,  LOG_NORMAL },
    { "ngazumo",	do_ngazumo,  	POS_STANDING,    3,  LOG_NORMAL },
    { "nekade",      	do_nekade,   	POS_FIGHTING,    3,  LOG_NORMAL }, 
    { "ninjapowers",   	do_ninjapowers,	POS_FIGHTING,    3,  LOG_NORMAL }, 
    { "ipponsugi", 	do_ippon, 	POS_STANDING, 	 3,  LOG_NORMAL },
    { "harakiri", 	do_hara_kiri, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "circle",		do_circle, 	POS_FIGHTING,    3,  LOG_NORMAL },
    { "discipline", 	do_discipline,	POS_STANDING,    3,  LOG_NORMAL },
    { "kakusu", 	do_kakusu, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "kanzuite", 	do_kanzuite, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "tetsubishi",     do_tetsubishi,  POS_STANDING,    3,  LOG_NORMAL },
    { "caltrops",       do_caltrops,    POS_STANDING,    3,  LOG_NORMAL },
    { "mienaku", 	do_mienaku, 	POS_FIGHTING,    3,  LOG_NORMAL },
    { "bomuzite", 	do_bomuzite, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "tsume", 		do_tsume, 	POS_FIGHTING,    3,  LOG_NORMAL },
    { "mitsukeru", 	do_mitsukeru, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "koryou", 	do_koryou, 	POS_MEDITATING,  3,  LOG_NORMAL },
    { "breath",		do_breath,	POS_FIGHTING,    0,  LOG_NORMAL },
    { "bounty",		do_bounty,	POS_SITTING,     3,  LOG_NORMAL },
    { "bountylist",	do_bountylist,	POS_SITTING,     3,  LOG_NORMAL },
    { "statcaps",	do_statcaps,	POS_STANDING,	 2,   LOG_NORMAL },    
    { "srestore", 	do_srestore,    POS_STANDING, 	 2,  LOG_NEVER },
    { "thrustkick",	do_thrustkick,	POS_FIGHTING,	 3, LOG_NORMAL },
    { "flame",		do_flame,	POS_DEAD,	 2,  LOG_NORMAL },
    { "fhands",		do_flaminghands,POS_DEAD,	 3,  LOG_NORMAL },
    { "donate",	        do_donate,	POS_SITTING,	 0,  LOG_NORMAL	},

    /*
     * Informational commands.
     */
    { "areas",		do_areas,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "bug",		do_bug,		POS_DEAD,	 99, LOG_NORMAL	},
    { "commands",	do_commands,	POS_DEAD,	 0,  LOG_NORMAL },
    { "compare",	do_compare,	POS_SITTING,	 0,  LOG_NORMAL },
    { "consider",	do_consider,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "control",        do_control,     POS_STANDING,    3,  LOG_NORMAL },
    { "credits",	do_credits,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "equipment",	do_equipment,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "examine",	do_examine,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "help",		do_help,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "search",		do_search,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "?",		do_help,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "idea",		do_idea,	POS_DEAD,	 99, LOG_NORMAL	},
    { "report",		do_report,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "score",		do_score,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "uniscore",	do_uniscore,	POS_DEAD,	 10, LOG_NORMAL	},
    { "skill",		do_skill,	POS_MEDITATING,	 0,  LOG_NORMAL },
    { "spells",		do_spell,	POS_MEDITATING,	 0,  LOG_NORMAL },
    { "socials",	do_socials,	POS_DEAD,	 0,  LOG_NORMAL },
    { "time",		do_time,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "settime",	do_timezone,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "gflags",		do_gtime,	POS_DEAD,	 10,  LOG_NORMAL	},
    { "timers",		do_timer,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "typo",		do_typo,	POS_DEAD,	 99, LOG_NORMAL	},
    { "weather",	do_weather,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "who",		do_who,		POS_DEAD,	 0,  LOG_NORMAL	},
    { "wizlist",	do_wizlist,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "testlist",	do_tijlist,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "wiznet",         do_wiznet,      POS_DEAD,        7,  LOG_NORMAL },  
    { "introduce",	do_introduce,	POS_STANDING,	 1,  LOG_NORMAL	},
    { "xemot",		do_huh,		POS_DEAD,	 1,  LOG_NORMAL },
    { "xemote",		do_xemote,	POS_SITTING,	 1,  LOG_NORMAL },
    { "xsocial",	do_huh,		POS_DEAD,	 1,  LOG_NORMAL },
    { "xsocials",	do_xsocials,	POS_DEAD,	 1,  LOG_NORMAL },
    { "chastity",	do_chastity,	POS_DEAD,	 1,  LOG_NORMAL },
    { "vibrator",	do_vibrator,	POS_DEAD,	 1,  LOG_NORMAL },

    { "showcompres",    do_showcompress,POS_DEAD,      12,  LOG_NORMAL },
    { "showmxp",        do_showmxp,     POS_DEAD,      12,  LOG_NORMAL },
    /*
     * Configuration commands.
     */
    { "alignment",	do_alignment,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "channels",	do_channels,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "config",		do_config,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "description",	do_description,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "profile",	do_profile,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "password",	do_password,	POS_DEAD,	 0,  LOG_NEVER	},
    { "title",		do_title,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "wimpy",		do_wimpy,	POS_DEAD,	 0,  LOG_NORMAL	},

  { "combatconfig",	do_combatconfig,	POS_DEAD,	0, LOG_NORMAL	},

    { "ansi",		do_ansi,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "autoexit",	do_autoexit,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "autocombexp",	do_auto_combined_exp, 	POS_DEAD,0,  LOG_NORMAL },
    { "autoseeregen",	do_auto_see_regen, 	POS_DEAD,0,  LOG_NORMAL },
    { "autoloot",	do_autoloot,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "autogold",	do_autogold,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "autosac",	do_autosac,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "autotick",	do_autotick,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "automessage",	do_automessage,	POS_DEAD,	 0,  LOG_NORMAL	},
    //{ "autobackup",	do_autobackup,  POS_DEAD,	 0,  LOG_NORMAL },
    { "blank",		do_blank,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "brief",		do_brief,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "cprompt",	do_cprompt,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "prompt",		do_prompt,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "request",        do_request,     POS_DEAD,        0,  LOG_NORMAL },   
    { "service",        do_service,     POS_DEAD,        9,  LOG_NORMAL },
    { "clearlist",      do_clearlist,   POS_DEAD,       13,  LOG_NORMAL },  
    { "helplist",       do_viewalist,   POS_DEAD,        9,  LOG_NORMAL },  
    /*
     * Communication commands.
     */
    { "history",	do_history,     POS_DEAD,	 0,  LOG_NORMAL },
    { "answer",		do_answer,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "newbie",		do_newbie,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "chat",		do_chat,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "pagelen",	do_pagelen,	POS_DEAD,	 0,  LOG_NORMAL	},
    { ".",		do_chat,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "emote",		do_xemote,	POS_SITTING,	 0,  LOG_NORMAL	},
    { ",",		do_xemote,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "contact",	do_contact,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "gtell",		do_gtell,	POS_DEAD,	 0,  LOG_NORMAL	},
    { ";",		do_gtell,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "howl",		do_howl,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "music",		do_music,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "sing",		do_music,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "board",		do_board,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "note",           do_note,        POS_STANDING,        0,  LOG_NORMAL },
    { "pose",		do_emote,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "quest",		do_quest,	POS_SITTING,	 2,  LOG_ALWAYS	},
    { "aquest",         do_aquest,      POS_RESTING,     2,  LOG_NORMAL },
    { "question",	do_question,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "qtalk",	do_qtalk,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "reply",		do_reply,	POS_MEDITATING,	 0,  LOG_NORMAL },
    { "say",		do_say,		POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "speak",		do_speak,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "'",		do_say,		POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "shout",		do_shout,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "yell",		do_yell,	POS_SITTING,	 0,  LOG_NORMAL	},

    /*
     * Object manipulation commands.
     */
    { "activate",	do_activate,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "brandish",	do_brandish,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "close",		do_close,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "draw",		do_draw,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "drink",		do_drink,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "drop",		do_drop,	POS_SITTING,	 0,  LOG_SILENCE	},
    { "eat",		do_eat,		POS_SITTING,	 0,  LOG_NORMAL	},
    { "empty",		do_empty,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "fill",		do_fill,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "give",		do_give,	POS_SITTING,	 0,  LOG_ALWAYS	},
    { "hold",		do_wear,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "list",		do_list,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "lock",		do_lock,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "morph",		do_morph,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "open",		do_open,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "pick",		do_pick,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "press",		do_press,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "pull",		do_pull,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "put",		do_put,		POS_SITTING,	 0,  LOG_NORMAL },
    { "quaff",		do_quaff,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "recite",		do_recite,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "remove",		do_remove,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "sell",		do_sell,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "sheath",		do_sheath,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "take",		do_get,		POS_SITTING,	 0,  LOG_NORMAL	},
    { "reload",		do_reload,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "unload",		do_unload,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "read",		do_read,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "shoot",		do_shoot,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "throw",		do_throw,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "turn",		do_turn,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "twist",		do_twist,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "sacrifice",	do_sacrifice,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "psacrifice",	do_psac,	POS_STANDING,    0,  LOG_NORMAL },
    { "sacredinvis",	do_sacredinvisibility,POS_DEAD,	 3,  LOG_NORMAL},
    { "unlock",		do_unlock,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "value",		do_value,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "wear",		do_wear,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "write",		do_write,	POS_MEDITATING,	 0,  LOG_NORMAL	},
    { "voodoo",		do_voodoo,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "zap",		do_zap,		POS_SITTING,	 0,  LOG_NORMAL	},
    {"bet", 		do_bet, 	POS_STANDING,    0,  LOG_NORMAL},
    {"abet", 		do_abet, 	POS_STANDING,    0,  LOG_NORMAL},
    {"gamble", 		do_slot, 	POS_STANDING,    0,  LOG_NORMAL},
    /*
     * Combat commands.
     */
    { "backstab",	do_backstab,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "berserk",	do_berserk,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "bs",		do_backstab,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "disarm",		do_disarm,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "flee",		do_flee,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "fightstyle",	do_fightstyle,	POS_FIGHTING,	 3,  LOG_NORMAL	},
    { "hurl",		do_hurl,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "kick",		do_kick,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "punch",		do_punch,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "rescue",		do_rescue,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "stance",		do_stance,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    /*
     * Warlock Commands.
     */
    { "dimmak",		do_dimmak,	POS_STANDING,	 3,  LOG_NORMAL },
    { "spheres",	do_spheres,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "perception",	do_perception,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "objectgate",	do_objectgate,  POS_STANDING,    3,  LOG_NORMAL },
    { "mgate",		do_mgate,	POS_STANDING,    3,  LOG_NORMAL },
    { "polyappear",	do_polyappear,	POS_FIGHTING,	 3,  LOG_NORMAL },
   
    { "discharge",	do_discharge,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "telekinetics",	do_telekinetics,POS_STANDING,	 3,  LOG_NORMAL },
    { "calllightning",	do_call_lightning,POS_FIGHTING,  3,  LOG_NORMAL },
    { "controlweather", do_controlweather,POS_STANDING,  3,  LOG_NORMAL },
    { "earthembrace",	do_earthembrace,POS_FIGHTING,	 3,  LOG_NORMAL },
    { "tempest",	do_tempest,	POS_STANDING,	 3,  LOG_NORMAL },

    { "quintessence",   do_quintessence,POS_FIGHTING,    3,  LOG_NORMAL },
    { "enchant",	do_enchant,	POS_STANDING,	 3,  LOG_NORMAL },
    { "rubbing",	do_rubbing,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "purification",	do_purification,POS_FIGHTING,    3,  LOG_NORMAL },
    { "qblast",		do_qblast,	POS_FIGHTING,	 3,  LOG_NORMAL },
//vamp drain moved up
    { "drain",          do_drain,       POS_FIGHTING,    3,  LOG_NORMAL },

    { "drainmove",      do_drainmove,   POS_STANDING,    3,  LOG_NORMAL },
    { "hotienchi",      do_hotienchi,   POS_STANDING,    3,  LOG_NORMAL },
    { "littledeath",    do_littledeath, POS_FIGHTING,    3,  LOG_NORMAL },
    { "betterbody",     do_betterbody,  POS_FIGHTING,    3,  LOG_NORMAL },
    { "shapechange",    do_shapechange, POS_STANDING,    3,  LOG_NORMAL },
    { "layhands",	do_layhands,    POS_STANDING,    3,  LOG_NORMAL },
    
    { "analyze",	do_analyze,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "alterstate",	do_alterstate,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "alterweight", 	do_alterweight, POS_STANDING,    3,  LOG_NORMAL },
    { "enchantarmor",	do_enchantarmor,POS_STANDING,	 3,  LOG_NORMAL },
    { "hover",		do_hover,	POS_FIGHTING,	 3,  LOG_NORMAL },

    // Shield
    { "impulse",	do_command,	POS_STANDING,    3,  LOG_NORMAL },
    { "probethoughts",  do_unveil,	POS_STANDING,    3,  LOG_NORMAL },
    // Possession
    { "untether",	do_mshadow,	POS_STANDING,	 3,  LOG_NORMAL },

    { "callspirit",	do_callspirit,	POS_STANDING,	 3,  LOG_NORMAL },
    { "spiritkiss",	do_spiritkiss,  POS_FIGHTING,	 3,  LOG_NORMAL },
    { "awaken",		do_zombie, 	POS_STANDING,	 3,  LOG_NORMAL },
    { "spiritblast",	do_spiritblast, POS_FIGHTING, 	 3,  LOG_NORMAL },
    { "breach",		do_breach,	POS_STANDING,	 3,  LOG_NORMAL },


    /*
     * Arena Commands
     */
    { "challenge",	do_challenge,	POS_STANDING,	3,   LOG_NORMAL },
    { "arenaagree",	do_arenaagree,  POS_STANDING,   3,   LOG_NORMAL },
    { "decline",	do_decline,     POS_STANDING,   3,   LOG_NORMAL },
    { "giveup",		do_giveup,	POS_STANDING,	3,   LOG_NORMAL },

    /*
     * Miscellaneous commands.
     */
    { "accep",		do_huh,		POS_STANDING,	 2,  LOG_NORMAL	},
    { "accept",		do_accept,	POS_STANDING,	 2,  LOG_NORMAL	},
    { "autostance",	do_autostance,	POS_STANDING,    0,  LOG_NORMAL },
    { "artifact",	do_artifact,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "priceless",	do_priceless,	POS_STANDING,	 8,  LOG_NORMAL },
    { "birth",		do_birth,	POS_STANDING,	 1,  LOG_NORMAL	},
    { "blindfold",	do_blindfold,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "breaku",		do_huh,		POS_STANDING,	 2,  LOG_NORMAL	},
    { "breakup",	do_breakup,	POS_STANDING,	 2,  LOG_NORMAL	},
    { "claim",		do_claim,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "complete",	do_complete,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "consen",		do_huh,		POS_STANDING,	 1,  LOG_NORMAL	},
    { "consent",	do_consent,	POS_STANDING,	 1,  LOG_NORMAL	},
    { "finger",		do_finger,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "follow",		do_follow,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "gag",		do_gag,		POS_STANDING,	 3,  LOG_NORMAL	},
    { "gift",		do_gift,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "group",		do_group,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "hide",		do_hide,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "home",		do_home,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "hunt",		do_hunt,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "leaders",	do_hiscore,	POS_DEAD,	 0,  LOG_NORMAL },
    { "hiscoset",	do_hiscoset,	POS_DEAD,       12,  LOG_NORMAL },
    { "locate",		do_locate,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "moonhunt",       do_moonhunt,    POS_STANDING,    3,  LOG_NORMAL },
    { "practice",	do_practice,	POS_SLEEPING,	 0,  LOG_NORMAL	},
    { "propos",		do_huh,		POS_STANDING,	 2,  LOG_NORMAL	},
    { "propose",	do_propose,	POS_STANDING,	 2,  LOG_NORMAL	},
    { "qui",		do_qui,		POS_DEAD,	 0,  LOG_NORMAL	},
    { "quit",		do_quit,	POS_SLEEPING,	 0,  LOG_NORMAL	},
    { "recall",		do_recall,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "escape",		do_escape,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "/",		do_recall,	POS_FIGHTING,	 0,  LOG_NORMAL	},
    { "recharge",	do_recharge,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "refresh",	do_refresh,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "rent",		do_rent,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "safe",		do_safe,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "save",		do_save,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "backup",		do_backup,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "sleep",		do_sleep,	POS_SLEEPING,	 0,  LOG_NORMAL	},
    { "smother",	do_smother,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "sneak",		do_sneak,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "split",		do_split,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "scan",		do_scan,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "spy",		do_spy,		POS_SITTING,	 0,  LOG_NORMAL	},
    { "steal",		do_steal,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "summon",		do_summon,	POS_DEAD,	 0,  LOG_NORMAL },
    { "summoning",	do_summoning,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "tie",		do_tie,		POS_STANDING,	 3,  LOG_NORMAL	},
    { "token",		do_token,	POS_STANDING,	 2,  LOG_NORMAL	},
/*    { "tokens",         do_tokens,      POS_DEAD,        0,  LOG_NORMAL },  */
    { "tokencount",	do_tokencount,	POS_DEAD,	 0,  LOG_NORMAL },
    { "istoken",        do_istoken,     POS_STANDING,   14,  LOG_ALWAYS },
    { "etoken",		do_dtoken,	POS_STANDING,	 2,  LOG_NORMAL	},
    { "track",		do_track,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "train",		do_train,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "unpolymorph",	do_unpolymorph,	POS_STANDING,	 3,  LOG_NORMAL },
    { "untie",		do_untie,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "visible",	do_visible,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "wake",		do_wake,	POS_SLEEPING,	 0,  LOG_NORMAL	},
    { "where",		do_where,	POS_SITTING,	 0,  LOG_NORMAL	},
    { "favor",		do_favor,	POS_STANDING,    0,  LOG_NORMAL },
    { "favour",		do_favour,	POS_STANDING,    0,  LOG_NORMAL },
    /*start drow section */
    { "earthshatter",	do_earthshatter,POS_FIGHTING,    3,  LOG_NORMAL },
    { "ncreate",	do_ninjaeq,	POS_STANDING,	 3,  LOG_NORMAL },
    { "sign",		do_sign,	POS_FIGHTING,	 2,  LOG_NORMAL },
    { "llothsfavor",	do_llothsfavor,	POS_STANDING,    3,  LOG_NORMAL },
    { "grant",		do_grant,	POS_STANDING,	 3,  LOG_NORMAL },
    { "skills",		do_skills,	POS_STANDING,    3,  LOG_NORMAL },
    { "house",		do_drows,	POS_DEAD,	 3,  LOG_NORMAL },
    { "drowsight",	do_drowsight,   POS_STANDING,    3,  LOG_NORMAL },
    { "drowshield",	do_drowshield,  POS_STANDING,    3,  LOG_NORMAL },
    { "drowfire",	do_drowfire,    POS_FIGHTING,    3,  LOG_NORMAL },
    { "drowhate",	do_drowhate,	POS_STANDING,    3,  LOG_NORMAL },
    { "drowpowers",	do_drowpowers,	POS_STANDING,    3,  LOG_NORMAL },
    { "darkness",       do_darkness,	POS_STANDING,    3,  LOG_NORMAL },
    { "shadowwalk",	do_shadowwalk,	POS_STANDING,    3,  LOG_NORMAL },
    { "drowcreate",    	do_drowcreate,	POS_STANDING,    3,  LOG_NORMAL },
    { "garotte",	do_garotte,	POS_STANDING,    3,  LOG_NORMAL },
    { "spiderform",	do_spiderform,	POS_STANDING,    3,  LOG_NORMAL },
    { "driderform",	do_driderform,	POS_STANDING,    3,  LOG_NORMAL },
    { "darktendrils",   do_darktendrils,POS_STANDING,    3,  LOG_NORMAL },
    { "fightdance",     do_fightdance,  POS_STANDING,    3,  LOG_NORMAL },


    {"chaosblast",	do_chaosblast,	POS_FIGHTING,    3,  LOG_NORMAL },
    {"dgarotte",	do_dark_garotte,POS_STANDING,    3,  LOG_NORMAL },
    { "glamour",	do_glamour ,    POS_RESTING,	 3,  LOG_NORMAL },
    { "confusion",      do_confusion,   POS_FIGHTING,    3,  LOG_NORMAL },
    { "confuse",        do_confuse,     POS_FIGHTING,    3,  LOG_NORMAL },

/* end drow */
// Phoenix
    //{ "pcry",          do_phoenixcry,	POS_DEAD,	3, LOG_NORMAL },

//BASTETADDITION
    { "bastetpowers",   do_bastetpowers,POS_FIGHTING,    3,  LOG_NORMAL },
    { "bgifts",         do_bgifts,      POS_STANDING,    3,  LOG_NORMAL },
    { "pride",          do_pride,       POS_STANDING,    3,  LOG_NORMAL },
    { "purrr",          do_purrr,       POS_STANDING,    3,  LOG_NORMAL },

    // Garou Commands

    // Homid
    { "persuasion",	do_persuasion,  POS_STANDING,    3,  LOG_NORMAL },
    { "staredown",	do_staredown,   POS_FIGHTING,	 3,  LOG_NORMAL },
    { "disquiet",	do_disquiet,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "reshapeobj",	do_reshape,	POS_STANDING,    3,  LOG_NORMAL },
    { "cocoon",		do_cocoon,	POS_STANDING,	 3,  LOG_NORMAL },

    // Metis
    { "quills",		do_quills,	POS_STANDING,	 3,  LOG_NORMAL },
    { "burrow",		do_burrow,	POS_STANDING,	 3,  LOG_NORMAL },
    { "nightsight",	do_nightsight,	POS_STANDING,	 3,  LOG_NORMAL },
    { "wither",		do_wither,	POS_FIGHTING,	 3,  LOG_NORMAL },
    /* totem gift */

    // Lupus
    { "heightened",	do_heightened,  POS_FIGHTING,    3,  LOG_NORMAL },
    /* catfeet, auto */
    { "gnaw",		do_gnaw,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "elementgift",	do_elementalgift,POS_FIGHTING,	 3,  LOG_NORMAL },
    { "songbeast",	do_songbeast,	POS_STANDING,	 3,  LOG_NORMAL },

    // Ragabash
    { "vanish",		do_vanish,	POS_STANDING,	 3,  LOG_NORMAL },
    // no track
    { "blissful",	do_blissful,	POS_STANDING,	 3,  LOG_NORMAL },
    { "lunasblessing",  do_lunasblessing,POS_STANDING,   3,  LOG_NORMAL },
    { "whelpsbody",	do_whelp,	POS_STANDING,    3,  LOG_NORMAL },

    //Theurge
    { "motherstouch",   do_mothers,	POS_FIGHTING,    3,  LOG_NORMAL },
    //Grasp, Auto.
    { "spiritdrain",    do_spiritdrain, POS_STANDING,    3,  LOG_NORMAL },
    { "feral",		do_feral,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "malleable",	do_malleable,   POS_STANDING,    3,  LOG_NORMAL },

    /* Philodox */
    { "granitewall",	do_wallofgranite,POS_STANDING,   3,  LOG_NORMAL },
    //Everything else is auto

    /* Ahroun */
    { "clenched",	do_clenched,	POS_FIGHTING,    3,  LOG_NORMAL },
    // Everything else is auto

    /* Black Furies */
    { "bodywrack",	do_bodywrack,	POS_FIGHTING, 	 3,  LOG_NORMAL },
    // Everything else is Auto.

    /* Children of Gaia */
    { "dazzle",		do_dazzle,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "garouserenity",  do_garouserenity,POS_FIGHTING,   3,  LOG_NORMAL },
    { "livingwoods",    do_livingwood,  POS_FIGHTING,    3,  LOG_NORMAL },
    // Everythin' Else is Auto

    /* Get of Fenris */
    { "snarl",		do_snarl,	POS_FIGHTING,    3,  LOG_NORMAL },
    // Everythin' Else if Auto

    /* Red Talons */
    { "avalanche",	do_avalanche,	POS_STANDING,    3,  LOG_NORMAL },
    { "barrage",	do_barrage,	POS_FIGHTING,    3,  LOG_NORMAL },
    { "vengeance",	do_vengeance,	POS_FIGHTING,    3,  LOG_NORMAL },

    /* Shadow Lords */
    { "clapofthunder",  do_clapofthunder,POS_STANDING,   3,  LOG_NORMAL },
    // Everythin' Else is Auto 

    /* Silent Striders */
//moved gate up from below, vamp power
    { "gate",           do_gate,        POS_STANDING,    3,  LOG_NORMAL },
    { "gatemoon",	do_gatemoon,    POS_STANDING,    3,  LOG_NORMAL },
    { "reach",		do_shadowplane, POS_STANDING,    3,  LOG_NORMAL },
    // EEIA

    /* Silver Fangs */
    { "lunasavenger",   do_lunasavenger,POS_FIGHTING,    3,  LOG_NORMAL },
    { "paws",		do_paws,	POS_FIGHTING,    3,  LOG_NORMAL },
    // Auto.

    /* StarGazers */
    { "merciful", 	do_merciful, 	POS_FIGHTING,    3,  LOG_NORMAL },
    // Auto
    { "invis",		do_invis,	POS_DEAD,	 7,  LOG_NORMAL	},

    /* Uktena */
    { "darkshroud",	do_darkshroud,	POS_STANDING,    3,  LOG_NORMAL },
    { "flamespirit",    do_flamespirit, POS_FIGHTING,    3,  LOG_NORMAL },
    { "invisibility",   do_invisibility,POS_STANDING,    3,  LOG_NORMAL },
    // AUTO!

    /* Wendigo */
    { "camouflage",	do_huh,		POS_STANDING,    3,  LOG_NORMAL },
    { "cuttingwind",	do_cuttingwind, POS_FIGHTING,    3,  LOG_NORMAL },
    { "cannibal",	do_cannibalspirit,POS_STANDING,  3,  LOG_NORMAL },
    { "heartofice",     do_heartofice,  POS_STANDING,    3,  LOG_NORMAL },
    { "chillfrost",     do_chillfrost,  POS_STANDING,    3,  LOG_NORMAL },

    /*
     * Vampire and werewolf commands.
     */
    { "beastwithin",    do_beastwithin, POS_STANDING,    3,  LOG_NORMAL },

    { "possession",	do_possession,  POS_STANDING,	 3,  LOG_NORMAL },
    { "powers",		do_racepower,	POS_DEAD,	 3,  LOG_NORMAL },
    { "anarch",		do_anarch,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "bite",		do_bite,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "calm",		do_calm,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "champions",	do_champions,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "change",		do_change,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "stats",		do_stat,	POS_SITTING,	 3,  LOG_NORMAL },
    { "clandisc",	do_clandisc,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "clanname",	do_clanname,	POS_STANDING,	 9,  LOG_ALWAYS	},
    { "lord",		do_lord,	POS_STANDING,	 9,  LOG_ALWAYS	},
 
    { "claw",		do_claw,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "claws",		do_claws,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "darkheart",	do_darkheart,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "demonarmour",	do_demonarmour,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "fangs",		do_fangs,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "feed",		do_feed,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "flex",		do_flex,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "gcommand",	do_fcommand,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "ghoul",		do_ghoul,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "evileye",        do_evileye,     POS_STANDING,    3,  LOG_NORMAL },
    { "horns",		do_horns,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "tail",           do_tail,        POS_STANDING,    3,  LOG_NORMAL },
    { "tailmonkey",     do_tailmonkey,  POS_FIGHTING,    3,  LOG_NORMAL },
    { "grab",		do_grab,	POS_STANDING,    3,  LOG_NORMAL },
    { "hooves",		do_hooves,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "fhooves",	do_flamehooves,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "bspikes",	do_bodyspikes,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "daemonseed",	do_demonseed,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "servant",	do_servant,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "demondrain",     do_demondrain,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "humanform",	do_humanform,	POS_SITTING,	 2,  LOG_NORMAL	},
    { "inconn",         do_huh,         POS_STANDING,    3,  LOG_NORMAL },
    { "inconnu",        do_inconnu,     POS_STANDING,    3,  LOG_NORMAL },
    { "inpart",		do_inpart,	POS_STANDING,	 3,  LOG_NORMAL	},



    { "leap",		do_leap,	POS_RESTING,	 2,  LOG_NORMAL	},
    { "leafwalk",       do_leafwalk,    POS_STANDING,    3,  LOG_NORMAL },
    { "lifespan",	do_lifespan,	POS_RESTING,	 2,  LOG_NORMAL	},
    { "majesty",	do_majesty,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "mask",		do_mask,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "mortal",		do_mortal,	POS_FIGHTING,	 3,  LOG_NORMAL	},
    { "umbra",		do_shadowsight, POS_SITTING,	 3,  LOG_NORMAL },
    { "nightsight",	do_nightsight,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "offersoul",	do_offersoul,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "pact",		do_pact,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "poison",		do_poison,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "pray",		do_pray,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "rage",		do_rage,	POS_FIGHTING,	 3,  LOG_NORMAL	},
    { "readaura",	do_readaura,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "regenerate",     do_regenerate,  POS_DEAD,        3,  LOG_NORMAL },
    { "roll",		do_roll,	POS_RESTING,	 0,  LOG_NORMAL	},
    { "rolldirt",	do_rolldirt,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "pour",		do_pour,	POS_RESTING,	 0,  LOG_NORMAL	},
    { "stake",		do_stake,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "scry",		do_scry,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "serpent",	do_serpent,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "shadowplane",	do_shadowplane,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "shadowsight",	do_shadowsight,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "shield",		do_shield,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "teach",		do_teach,	POS_STANDING,	 5,  LOG_NORMAL	},
    { "gifts",		do_gifts,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "tribe",		do_tribe,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "travel",		do_travel,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "truesight",	do_truesight,	POS_SITTING,	 3,  LOG_NORMAL	},
    { "upkeep",		do_upkeep,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "vclan",		do_vclan,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "weaponform",	do_weaponform,	POS_STANDING,	 2,  LOG_NORMAL	},
    { "web",		do_web,		POS_FIGHTING,	 3,  LOG_NORMAL	},
// Next line by Unique 22/07/02
    { "wwpowers",       do_wwpowers,    POS_STANDING,    3,  LOG_NORMAL },
    { "gunaya",		do_web,		POS_FIGHTING,	 3,  LOG_NORMAL	},
    { "trip",           do_trip,        POS_FIGHTING,    3,  LOG_NORMAL },
    { "orimasu",        do_orimasu,     POS_STANDING,    3,  LOG_NORMAL },
    { "mizotamouyo",    do_mizotamouyo, POS_STANDING,    3,  LOG_NORMAL },
    { "wings",		do_wings,	POS_STANDING,	 3,  LOG_NORMAL	},
    { "klaive",         do_klaive,      POS_STANDING,    0,  LOG_NORMAL },
    { "affects",        do_affects,	POS_DEAD,	 0,  LOG_NORMAL },
    { "afk",		do_afk,		POS_DEAD,        0,  LOG_NORMAL },
    { "dnd",		do_busy,	POS_DEAD,        8,  LOG_NORMAL },
    { "coding",		do_coding,	POS_DEAD,       13,  LOG_NORMAL },
    { "newbiepack",     do_newbiepack,	POS_DEAD,	 0,  LOG_NORMAL },
    { "embrace",	do_embrace,	POS_DEAD,	 3,  LOG_NORMAL },
    { "level",          do_level,       POS_DEAD,        0,  LOG_NORMAL },
    { "demonform",      do_demonform,   POS_STANDING,    1,  LOG_NORMAL },
    { "exp",      	do_level,   	POS_DEAD,	 0,  LOG_NORMAL },
    { "generation", 	do_generation,  POS_DEAD,        9,  LOG_ALWAYS },
    { "classset",   	do_class,   	POS_DEAD,        9,  LOG_ALWAYS },
    { "classme", 	do_classme, 	POS_STANDING,    2,  LOG_NORMAL },
    { "zuloform",    	do_zuloform,    POS_STANDING,    0,  LOG_NORMAL },
    { "freeze",         do_freeze,      POS_DEAD,        9,  LOG_ALWAYS },
    { "immolate",       do_immolate,    POS_STANDING,    3,  LOG_NORMAL },
    { "freezeweap",  	do_wfreeze,	POS_STANDING,    3,  LOG_NORMAL },
    { "caust",       	do_caust,	POS_STANDING,    3,  LOG_NORMAL },
    { "leech",		do_leech,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "blink",		do_blink,	POS_STANDING,    3,  LOG_NORMAL },

    { "inferno",	do_inferno,	POS_DEAD,	 3,  LOG_NORMAL },

    { "unnerve",	do_unnerve,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "eyespy",		do_eyespy,	POS_STANDING,	 3,  LOG_NORMAL },
/* Mage Stuff */
    { "learnrune",	do_learnrune,	POS_STANDING,    4,  LOG_NORMAL },
    { "teachmastery",	do_teachmastery,POS_STANDING,    5,  LOG_NORMAL },
    { "advance",	do_advance, 	POS_STANDING, 	 6,  LOG_NORMAL },
/* Highlander Stuff */

    { "weaponteach", 	do_weaponteach,	POS_STANDING, 	 3,  LOG_NORMAL },
    { "gainpowers", 	do_gainpowers,	POS_STANDING, 	 3,  LOG_NORMAL },
    { "quickening", 	do_quickening, 	POS_MEDITATING,  3,  LOG_NORMAL },    
    { "swordcraft", 	do_swordcraft, 	POS_FIGHTING, 	 3,  LOG_NORMAL },
    { "ancestralpath",	do_ancestralpath, POS_STANDING,  3,  LOG_NORMAL },
/* Gargoyle Powers - (C) Macademus 2000 */
    { "endowment", 	do_endowment, 	POS_DEAD, 	 3,  LOG_NORMAL },

    /*
     * Malstars bag of fun.
     */
    { "halloffame",	do_halloffame,		POS_STANDING,	3,	LOG_NORMAL },
    { "mdonate", 	do_mdonate,		POS_STANDING,	3,	LOG_NORMAL },
    { "showretired",	do_showretired,		POS_STANDING,	10,	LOG_NORMAL },
    { "retire",		do_retire,		POS_STANDING,	3,	LOG_NORMAL },
    { "retireset",	do_retireset,		POS_STANDING,	11,	LOG_ALWAYS },

    /*
     * legend_clan.c - the clan code by Malstar
     */
    { "addclan",	do_addclan,		POS_STANDING,	12,	LOG_ALWAYS },
    { "clanlistimm",	do_clanlistimm,		POS_STANDING,	10,	LOG_NORMAL },
    { "clanset",	do_clanset,		POS_STANDING,	12,	LOG_ALWAYS },
    { "clanindex",	do_clanindex,		POS_STANDING,	1,	LOG_NORMAL },
    { "clantable",	do_clantable,		POS_STANDING,	1,	LOG_NORMAL },
    { "clanedit",	do_clanedit,		POS_STANDING,	3,	LOG_ALWAYS },
    { "induct",		do_induct,		POS_STANDING,	3,	LOG_ALWAYS },
    { "outcast",        do_outcast,             POS_STANDING,   3,      LOG_ALWAYS },
    { "clantalk",	do_nclantalk,		POS_STANDING,	3,	LOG_NORMAL },
    { "deposit",	do_deposit,		POS_STANDING,	3,	LOG_ALWAYS },
    { "withdraw",	do_withdraw,		POS_STANDING,	3,	LOG_ALWAYS },
    { "claninfo",	do_clanstatus,		POS_STANDING,	3,	LOG_NORMAL },

//Pfileeditor
    { "pfile",          do_pfile,       POS_DEAD,       13,  LOG_ALWAYS },
    { "lscan",          do_logscan,     POS_DEAD,       10,  LOG_ALWAYS },
    { "pscan",          do_pfilescan,   POS_DEAD,       10,  LOG_ALWAYS },
//MONK New bits
    { "monkpowers",	do_monkpowers,	POS_STANDING,	 3,  LOG_NORMAL },
    { "reverend",	do_reverend,	POS_DEAD,	 3,  LOG_NORMAL },
    { "magickalshield", do_auranomagic, POS_STANDING, 	 5,  LOG_NORMAL },
    { "paragon",	do_paragon,	POS_DEAD,	 6,  LOG_NORMAL },
    { "airmail", 	do_airmail, 	POS_DEAD, 	11,  LOG_NORMAL },
    { "miniflags", 	do_miniflags, 	POS_DEAD, 	 2,  LOG_NORMAL },
    { "font", 		do_font, 	POS_DEAD, 	13,  LOG_NORMAL },
    { "triviaset", 	do_trivia, 	POS_DEAD, 	 9,  LOG_NORMAL },
    { "triviashow", 	do_ptrivia, 	POS_DEAD, 	 1,  LOG_NORMAL },
    { "scramble", 	do_scramble, 	POS_DEAD, 	 9,  LOG_NORMAL },
    { "jailplayer", 	do_jail, 	POS_DEAD, 	10,  LOG_ALWAYS },
    { "auction", 	do_auction,	POS_STANDING, 	 2,  LOG_NORMAL },
    { "calculate",	do_getexp,	POS_DEAD,	 2,  LOG_NORMAL },

    { "pptalk", 		do_ptalk, 	POS_DEAD,	11,  LOG_NORMAL },
    { "pchat", 		do_pchat, 	POS_DEAD, 	11,  LOG_NORMAL },
    { "hint",		do_hint,	POS_DEAD,	 0,  LOG_NORMAL },
    { "qkillsocket",    do_qkillsocket, POS_DEAD,       13,  LOG_ALWAYS },
    { "tag",		do_tag, 	POS_STANDING,	 2,  LOG_NORMAL },
    { "notag", 		do_notag,	POS_STANDING, 	 2,  LOG_NORMAL },
    { "punload",	do_unloaddummy, POS_DEAD,	12,  LOG_ALWAYS },
    { "loadup",		do_loaddummy,	POS_DEAD,	12,  LOG_ALWAYS },
    { "boot",		do_boot,	POS_DEAD,	12,  LOG_ALWAYS },
    { "multiple",	do_multiple,	POS_DEAD,	 9,  LOG_NORMAL },
    { "randomload",	do_randomload,	POS_DEAD,	11,  LOG_ALWAYS },
    { "statistics", 	do_statistics,	POS_DEAD,	 3,  LOG_NORMAL },
    { "ienter", 	do_ienter,	POS_STANDING,	 2,  LOG_NORMAL },
    { "iexit", 		do_iexit,	POS_STANDING,	 2,  LOG_NORMAL },
    { "makesave",	do_makesave,	POS_DEAD,	10,  LOG_ALWAYS },
    { "initleade",      do_huh,         POS_DEAD,       11,  LOG_NORMAL },
    { "initleaders",	do_leaderclear,	POS_DEAD,	11,  LOG_ALWAYS },
    { "capmessage", 	do_decapmessage, POS_STANDING,   3,  LOG_NORMAL },
    { "bitchsession",	do_bitchsession,POS_DEAD,	11,  LOG_NORMAL },
    { "clearwarps",	do_warpclear,   POS_STANDING,	 3,  LOG_NORMAL },
    { "pipe",		do_pipe,	POS_DEAD,	13,  LOG_ALWAYS },
    { "pkratio", 	do_pkratio, 	POS_STANDING,	 3,  LOG_NORMAL },
    { "dempowers",	do_dempowers,	POS_STANDING,	 3,  LOG_NORMAL },
    { "pwhere",		do_pwhere,	POS_DEAD,	10,  LOG_NORMAL },
    { "owhere",		do_owhere,	POS_DEAD,	10,  LOG_NORMAL },
    { "pdelete",	do_pdelete,	POS_DEAD,	12,  LOG_ALWAYS },
    { "fset",		do_fset,	POS_DEAD,	10,  LOG_ALWAYS },
    { "spousetalk",	do_wedtalk,	POS_DEAD, 	 2,  LOG_NEVER  },
    { "empower",	do_empower,	POS_DEAD,	13,  LOG_ALWAYS },
    { "revoke", 	do_revoke, 	POS_DEAD,	13,  LOG_ALWAYS },
    { "updatetick",	do_updatetick,	POS_DEAD,        9,  LOG_ALWAYS },
    { "highlanders",	do_hclan,	POS_DEAD,	 3,  LOG_NORMAL },
    {"highlanderpowers",do_highlanderpowers,POS_STANDING,3,  LOG_NORMAL },
    { "nclan",		do_nclan,	POS_DEAD,	 3,  LOG_NORMAL },
    { "monastry",	do_monastry,	POS_DEAD,	 3,  LOG_NORMAL },
    { "noreply",	do_noreply,	POS_DEAD,	 2,  LOG_NORMAL },
    { "ignore",         do_ignore,      POS_DEAD,        0,  LOG_NORMAL },
    { "unignore",       do_unignore,    POS_DEAD,        0,  LOG_NORMAL },
    { "rsilence",	do_rsilence,	POS_DEAD,	 9,  LOG_ALWAYS },
    { "charshow",	do_chardump,	POS_DEAD,       13,  LOG_NORMAL },
    { "dismember",	do_dismember,	POS_DEAD,       10,  LOG_ALWAYS },
    { "sinbin",	        do_chartimers,	POS_DEAD,       10,  LOG_NORMAL },
    { "loadarti",	do_loadarti,	POS_DEAD,       13,  LOG_NORMAL },
    { "totalscore",     do_totalscore, 	POS_DEAD,	 2,  LOG_NORMAL },
    { "rogue", 		do_rogue,	POS_STANDING,	 3,  LOG_NORMAL },
    { "leaveclan", 	do_leaveclan,	POS_STANDING,	 3,  LOG_NEVER  },
    { "ronin", 		do_ronin,	POS_STANDING,	 3,  LOG_NORMAL },
    { "demongate", 	do_dgate,	POS_STANDING,	 3,  LOG_NORMAL },
    { "entrails",	do_entrails,	POS_DEAD,	 3,  LOG_NORMAL },
    { "notravel",	do_notravel,	POS_STANDING,	 3,  LOG_NORMAL },
/*    { "induct",         do_claninduct,  POS_STANDING,    3,  LOG_NORMAL },
    { "outcast",        do_clanoutcast, POS_STANDING,    3,  LOG_NORMAL },*/
    { "cset",		do_cset,	POS_DEAD,	12,  LOG_ALWAYS },
    { "katana",		do_katana,	POS_STANDING,	 3,  LOG_NORMAL },
    { "discset",	do_discset,     POS_DEAD,	10,  LOG_ALWAYS },
    { "giftset",	do_giftset,     POS_DEAD,	10,  LOG_ALWAYS },
    { "delet",		do_dele, 	POS_DEAD,	 2,  LOG_NORMAL },
    { "delete",		do_delete, 	POS_DEAD,	 2,  LOG_NEVER  },
    { "pardon",		do_pardon, 	POS_DEAD,	 9,  LOG_NORMAL },
    { "clearparadox",	do_ppardon, 	POS_DEAD,	 9,  LOG_NORMAL },
    { "smite",		do_smite, 	POS_DEAD,	11,  LOG_ALWAYS },
    { "retribution",	do_retribution, POS_DEAD,       11,  LOG_NORMAL },
    { "recolor",	do_recolour, 	POS_DEAD,	 5,  LOG_ALWAYS },
    { "wizconfig", 	do_wizconfig,	POS_DEAD,	10,  LOG_ALWAYS },
    { "prepare",	do_prepare,	POS_DEAD,	11,  LOG_NORMAL },
    { "selfrestore",	do_selfrestore,	POS_DEAD,	 3,  LOG_NORMAL },
    { "obeah",		do_obeah,	POS_DEAD,	 3,  LOG_NORMAL },
    { "anesthetic",	do_anesthetic,	POS_DEAD,	 3,  LOG_NORMAL },
    { "panacea",	do_panacea,	POS_DEAD,	 3,  LOG_NORMAL },
    { "renew",		do_renew,	POS_DEAD,	 3,  LOG_NORMAL },
    { "prefix",		do_prefix,	POS_DEAD,	 9,  LOG_NORMAL },
    { "loadhelp",	do_loadhelp,	POS_DEAD,	12,  LOG_ALWAYS },
    { "monkcreate",	do_monkeq,	POS_SITTING,	 3,  LOG_NORMAL },
    { "apply",		do_apply,	POS_SITTING,	 2,  LOG_NORMAL },
/*    { "applytokens",    do_applytokens, POS_STANDING,    3,  LOG_NORMAL }, */
    { "astat",		do_astat,	POS_DEAD,	 9,  LOG_NORMAL },
    { "aclear",		do_aclear,	POS_DEAD,	 9,  LOG_NORMAL },
    { "alock",		do_alock,	POS_DEAD,	 9,  LOG_NORMAL },
    { "pclear",		do_pclear,	POS_DEAD,	 9,  LOG_NORMAL },
    { "pinfo",		do_pinfo,	POS_DEAD,	 9,  LOG_ALWAYS },
    { "system",		do_shell,	POS_DEAD,	12,  LOG_NORMAL },
    { "pmort",		do_pmort,	POS_DEAD,	10,  LOG_NORMAL },
    { "pstat", 		do_pstat,	POS_DEAD,	 9,  LOG_NORMAL },
    { "renamep", 	do_renamep,	POS_DEAD,	12,  LOG_ALWAYS },
    { "waitplayer", 	do_waitplayer,	POS_DEAD,	13,  LOG_ALWAYS },
    { "pshow", 		do_pshow,	POS_DEAD,	 9,  LOG_NORMAL },
    { "version", 	do_version,	POS_DEAD,	 2,  LOG_NORMAL },
    { "pack", 		do_pack,	POS_DEAD,	 7,  LOG_NORMAL },
    { "makepreg", 	do_makepreg,	POS_DEAD,	11,  LOG_NORMAL },
    { "abortion", 	do_abortion,	POS_DEAD,	11,  LOG_NORMAL },
    { "topxp", 		do_top,	        POS_DEAD,	 2,  LOG_NORMAL },
    { "popular",        do_popular,     POS_DEAD,        2,  LOG_NORMAL },
    { "popitem",        do_popitem,     POS_DEAD,       12,  LOG_NORMAL },
    { "doublexp",       do_doublexp,    POS_DEAD,       12,  LOG_ALWAYS },
    { "reimb", 		do_reimb,	POS_DEAD,	10,  LOG_ALWAYS },
    { "resetpass", 	do_resetpassword,POS_DEAD,	13,  LOG_NORMAL },
    { "classcount", 	do_class_count, POS_DEAD,       12,  LOG_NORMAL },
    { "objectscry", 	do_objectscry,	POS_STANDING,	 1,  LOG_NORMAL },
    { "divert", 	do_divert,	POS_FIGHTING,	 1,  LOG_NORMAL },
    // Highlander shit
    { "healself",       do_highlanderheal,POS_DEAD,      3,  LOG_NORMAL },
    { "sensequickening",do_sensequickening,POS_DEAD,	 3,  LOG_NORMAL	},
    { "hempower",	do_hempower,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "bladespin",	do_bladespin,   POS_FIGHTING,    3,  LOG_NORMAL },

    { "theft",		do_theft,	POS_STANDING,    3,  LOG_NORMAL },
    { "diablerise",     do_diablerise,  POS_STANDING,    3,  LOG_ALWAYS },
    { "scream",		do_scream,	POS_STANDING,    3,  LOG_NORMAL },
    { "preserve",	do_preserve,    POS_STANDING,	 3,  LOG_NORMAL },
    { "spiritguard",	do_spiritguard, POS_STANDING,    3,  LOG_NORMAL },
    { "spiritgate",	do_spiritgate,  POS_STANDING,    3,  LOG_NORMAL },
    { "bonemod",	do_bonemod,	POS_STANDING,    3,  LOG_NORMAL },
    { "fleshcraft",	do_fleshcraft,	POS_STANDING,    3,  LOG_NORMAL },
    { "zombie",		do_zombie,	POS_STANDING,	 3,  LOG_NORMAL },
    { "beckon",		do_beckon,	POS_STANDING,	 3,  LOG_NORMAL },
    { "share",		do_share,	POS_STANDING,	 3,  LOG_NORMAL },
    { "frenzy",		do_frenzy,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "serenity",	do_serenity,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "pigeon",		do_pigeon,	POS_STANDING,	 3,  LOG_NORMAL },
    { "lamprey",        do_lamprey,     POS_STANDING,    3,  LOG_NORMAL },
    { "shroud",         do_shroud,      POS_STANDING,    3,  LOG_NORMAL },
    { "shadowstep",     do_shadowstep,  POS_STANDING,    3,  LOG_NORMAL },
    { "mindblast",      do_mindblast,   POS_STANDING,    3,  LOG_NORMAL },
    { "entrance",       do_entrance,    POS_STANDING,    3,  LOG_NORMAL },
    { "awe",           	do_awe,         POS_STANDING,    3,  LOG_NORMAL },
    { "spit",           do_spit,        POS_FIGHTING,    3,  LOG_NORMAL },
    { "assassinate",    do_assassinate, POS_FIGHTING,    3,  LOG_NORMAL },
    { "bloodagony",     do_bloodagony,  POS_STANDING,    3,  LOG_NORMAL },
    { "infirmity",      do_infirmity,   POS_STANDING,    3,  LOG_NORMAL },
    { "vsilence",       do_death,       POS_FIGHTING,    3,  LOG_NORMAL },
    { "taste",          do_taste,       POS_STANDING,    3,  LOG_NORMAL },
    { "cauldron",       do_cauldron,    POS_FIGHTING,    3,  LOG_NORMAL },
    { "tide",           do_tide,        POS_STANDING,    3,  LOG_NORMAL },
    { "potency",        do_potency,     POS_STANDING,    3,  LOG_NORMAL },
    { "unveil",         do_unveil,      POS_STANDING,    3,  LOG_NORMAL },
    { "astralwalk",     do_astralwalk,  POS_STANDING,    3,  LOG_NORMAL },
    { "mesmerise",      do_mesmerise,   POS_STANDING,    3,  LOG_NORMAL },
    { "acid",           do_acid ,       POS_STANDING,    3,  LOG_NORMAL },
    { "conceal",        do_conceal,     POS_STANDING,    3,  LOG_NORMAL },
    { "earthmeld",      do_earthmeld ,  POS_STANDING,    3,  LOG_NORMAL },
    { "flamehands",     do_flamehands,  POS_STANDING,    3,  LOG_NORMAL },
    { "tendrils",       do_tendrils,    POS_FIGHTING,    3,  LOG_NORMAL },
    { "plasma",         do_plasma ,     POS_STANDING,    3,  LOG_NORMAL },
    { "dragonform",     do_dragonform,  POS_STANDING,    3,  LOG_NORMAL },
    { "guardian",       do_guardian,    POS_STANDING,    3,  LOG_NORMAL },
    { "fear",           do_fear,        POS_FIGHTING,    3,  LOG_NORMAL },
    { "bloodwall",      do_bloodwall,   POS_STANDING,    3,  LOG_NORMAL },
    { "coil",		do_coil,	POS_STANDING,    3,  LOG_NORMAL },
    { "share",          do_share,       POS_STANDING,    3,  LOG_NORMAL },
    { "mirror",         do_mirror,      POS_STANDING,    3,  LOG_NORMAL },
    { "formillusion",   do_formillusion,POS_STANDING,    3,  LOG_NORMAL },
    { "clone",          do_clone,       POS_STANDING,    3,  LOG_NORMAL },
    { "objectmask",     do_objmask,     POS_STANDING,    3,  LOG_NORMAL },
    { "hagswrinkles",   do_hagswrinkles,POS_STANDING,    3,  LOG_NORMAL },
    { "putrefaction",   do_putrefaction,POS_STANDING,    3,  LOG_NORMAL },
    { "ashes",          do_ashes,       POS_STANDING,    3,  LOG_NORMAL },
    { "withering",      do_withering,   POS_STANDING,    3,  LOG_NORMAL },
    { "bloodwater",     do_bloodwater,  POS_FIGHTING,    3,  LOG_NORMAL },
    { "gourge",		do_gourge,	POS_STANDING,    3,  LOG_NORMAL },
    { "gourgelife",	do_dgourge,	POS_STANDING,    3,  LOG_NORMAL },
    { "sharpen",	do_sharpen,	POS_STANDING,    3,  LOG_NORMAL },
    { "tongue",		do_tongue,	POS_FIGHTING,    3,  LOG_NORMAL },

/* Wraith Powers 
    { "weirdness",      do_weirdness,   POS_STANDING,    3,  LOG_NORMAL },
    { "fetter", 	do_fetter,	POS_STANDING,    3,  LOG_NORMAL },
    { "sellbody",	do_sellbody,	POS_STANDING,	 3,  LOG_NORMAL },
    { "sculpt",		do_sculpt,	POS_STANDING,	 3,  LOG_NORMAL },
    { "gremlinize",	do_gremlinize,	POS_STANDING,	 3,  LOG_NORMAL },
    { "muse",		do_muse,	POS_STANDING,	 3,  LOG_NORMAL },
    { "charitable",	do_charitable,	POS_STANDING,	 3,  LOG_NORMAL },
    { "withdrawl",	do_withdrawl,	POS_STANDING, 	 3,  LOG_NORMAL },
    { "wraithpowers",	do_wraithpowers,POS_STANDING,	 3,  LOG_NORMAL },
    { "arcanoi",	do_arcanoi,	POS_STANDING,	 3,  LOG_NORMAL },
    { "enshroud",	do_enshroud,	POS_STANDING,	 3,  LOG_NORMAL },
    { "jump",		do_jump,	POS_STANDING,	 3,  LOG_NORMAL },
    { "oubliette", 	do_oubliette,	POS_STANDING,	 3,  LOG_NORMAL },
    { "soulsight",	do_soulsight,	POS_STANDING,	 3,  LOG_NORMAL },
    { "coax",		do_coax,	POS_STANDING,	 3,  LOG_NORMAL },
    { "secrets",	do_secrets,	POS_STANDING,	 3,  LOG_NORMAL },
    { "purify",		do_purify,	POS_STANDING,	 3,  LOG_NORMAL },
    { "defiance",	do_defiance,	POS_STANDING,	 3,  LOG_NORMAL },
    { "statue",		do_statue,	POS_STANDING,	 3,  LOG_NORMAL },
    { "materialize", 	do_materialize,	POS_STANDING, 	 3,  LOG_NORMAL },
    { "surge",		do_surge,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "objectride",	do_objectride,	POS_STANDING,	 3,  LOG_NORMAL },
    { "itemjump",	do_itemjump,	POS_STANDING,	 3,  LOG_NORMAL },
    { "dirge", 		do_dirge,	POS_STANDING,	 3,  LOG_NORMAL },
    { "ballad",		do_ballad,	POS_STANDING,	 3,  LOG_NORMAL },
    { "crescendo",	do_crescendo,	POS_STANDING,	 3,  LOG_NORMAL },
    { "requiem", 	do_requiem,	POS_STANDING,	 3,  LOG_NORMAL },
    { "imitate",	do_imitate,     POS_STANDING,	 3,  LOG_NORMAL },
    { "rend",		do_rend,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "bodyshape",	do_bodyshape,	POS_STANDING,	 3,  LOG_NORMAL },
    { "pinging",	do_pinging,	POS_STANDING,	 3,  LOG_NORMAL },
    { "wraithgrasp",	do_wraithgrasp,	POS_STANDING,	 3,  LOG_NORMAL },
    { "stonehand",	do_stonehand,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "pyro",		do_pyro,	POS_STANDING,	 3,  LOG_NORMAL },
    { "obliviate",	do_obliviate,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "weirdness",	do_weirdness,	POS_STANDING,	 3,  LOG_NORMAL },
    { "befuddlement",	do_befuddlement,POS_STANDING,	 3,  LOG_NORMAL },
    { "ether",		do_ether,	POS_STANDING,	 3,  LOG_NORMAL },
    { "tempus",		do_tempus,	POS_STANDING,	 3,  LOG_NORMAL },
    { "lucidity",	do_lucidity,	POS_STANDING,	 3,  LOG_NORMAL },
    { "dreams",		do_dreams,	POS_STANDING,	 3,  LOG_NORMAL },
    { "phantasmagoria",	do_phantasmagoria,POS_STANDING,	 3,  LOG_NORMAL },
    { "agon", 		do_agon,	POS_STANDING,	 3,  LOG_NORMAL },
    { "skinride",	do_skinride,	POS_STANDING,	 3,  LOG_NORMAL },
    { "rein",		do_rein,	POS_STANDING,	 3,  LOG_NORMAL },
    { "whispers",	do_whispers,	POS_STANDING,	 3,  LOG_NORMAL },
    { "absorblife",	do_fleshbond,	POS_STANDING,    3,  LOG_NORMAL },
*/
    { "wail",           do_wraithtalk, 	POS_SLEEPING,    3,  LOG_NORMAL },
    { "martialry",	do_martialry,	POS_STANDING,	 3,  LOG_NORMAL },
    { "wraithpowers",   do_wraithpowers,POS_STANDING,	 3,  LOG_NORMAL },
    { "weirdness",      do_weirdness,   POS_STANDING,    3,  LOG_NORMAL },
    
    { "sellbody",       do_sellbody,    POS_STANDING,    2,  LOG_NEVER  },  
    { "fetter",         do_fetter,      POS_DEAD,        3,  LOG_NEVER  },  
    { "manifest",       do_manifest,    POS_RESTING,     2,  LOG_NEVER  },  
    { "arcanoi",        do_arcanoi,     POS_RESTING,     2,  LOG_NEVER  },  
    { "shadowwings",    do_shadowwings, POS_STANDING,    3,  LOG_NEVER  },  
    { "requiem",        do_requiem,     POS_STANDING,    3,  LOG_NEVER  },  
    { "oubliette",      do_oubilette,   POS_STANDING,    3,  LOG_NEVER  },  
    { "bodyshape",      do_bodyshape,   POS_STANDING,    3,  LOG_NEVER  },  
    { "deadsight",      do_truesight,   POS_STANDING,    3,  LOG_NEVER  },  
    { "ballad",         do_ballad,      POS_STANDING,    3,  LOG_NEVER  },  
    { "soulpact",       do_soulpact,    POS_STANDING,    3,  LOG_NORMAL },  
    { "cutstrand",      do_shield,      POS_STANDING,    3,  LOG_NEVER  },  
    { "sensegrimlin",   do_sensegrimlin,POS_STANDING,    3,  LOG_NEVER  },  
    { "enshroud",       do_enshroud,    POS_STANDING,    3,  LOG_NEVER  },
    { "jump",           do_jump,        POS_STANDING,    3,  LOG_NEVER  },  
    { "lullaby",        do_lullaby,     POS_STANDING,    3,  LOG_NEVER  },  
    { "dirge",          do_dirge,       POS_STANDING,    3,  LOG_NEVER  },  
    { "websense",       do_readaura,    POS_STANDING,    2,  LOG_NEVER  },  
    { "severstrand",    do_severstrand, POS_STANDING,    2,  LOG_NEVER  },  
    { "crescendo",      do_crescendo,   POS_STANDING,    3,  LOG_NEVER  },
    { "befuddlement",   do_befuddlement,POS_FIGHTING,    3,  LOG_NEVER  },
    { "splicestrand",   do_unveil,      POS_STANDING,    3,  LOG_NEVER  },
    { "sculpt",         do_sculpt,      POS_STANDING,    2,  LOG_NEVER  },
    { "gremlinize",     do_gremlinize,  POS_STANDING,    3,  LOG_NEVER  },
    { "wempower",        do_wempower,     POS_STANDING,    3,  LOG_NEVER  },
    { "imitate",        do_imitate,     POS_STANDING,    3,  LOG_NEVER  },
    { "tempestfugit",   do_tempestfugit,POS_STANDING,    3,  LOG_NEVER  },
    { "rend",           do_withering,   POS_STANDING,    3,  LOG_NEVER  },
    { "foulhumor",      do_foulhumor,   POS_FIGHTING,    3,  LOG_NORMAL },
    { "surge",          do_surge,       POS_STANDING,    3,  LOG_NORMAL },
    { "shellride",      do_shellride,   POS_STANDING,    3,  LOG_NEVER  },
   /*
     *
     * Online creation commands.
     */
    { "aedit",		do_aedit,	POS_DEAD,	12,  LOG_NORMAL },
    { "redit",		do_redit,	POS_DEAD,	 8,  LOG_NORMAL },
    { "oedit",          do_oedit,	POS_DEAD,	 8,  LOG_NORMAL },
    { "hedit",		do_hedit,	POS_DEAD,	 8,  LOG_NORMAL },
    { "hlist",		do_hlist,	POS_DEAD,	 8,  LOG_NORMAL },
    { "ashow",          do_ashow,	POS_DEAD,	 8,  LOG_NORMAL },
    { "rshow",          do_rshow,	POS_DEAD,	 8,  LOG_NORMAL },
    { "oshow",          do_oshow,	POS_DEAD,	 8,  LOG_NORMAL },
    { "mshow",          do_mshow,	POS_DEAD,	 8,  LOG_NORMAL },

    { "resets",         do_resets,      POS_DEAD,	 8,  LOG_NORMAL },
    { "resetarea",	do_resetarea,	POS_DEAD,	 8,  LOG_NORMAL },
    { "asave",          do_asave,	POS_DEAD,	 8,  LOG_NORMAL },

    { "alist",		do_arealist,	POS_DEAD,	 8,  LOG_NORMAL },
    { "=",          	do_buildtalk,   POS_DEAD,        8,  LOG_NORMAL },
    { "buildtalk",      do_buildtalk,   POS_DEAD,        8,  LOG_NORMAL },

    /*
     * Immortal commands.
     */
//Next line by unique
    { "newbieify",	do_newbieify,	POS_DEAD,	11,  LOG_NORMAL },
    { "todo",		do_todo,	POS_DEAD,	12,  LOG_NORMAL	},
    { "immproject",	do_todo2,	POS_DEAD,	12,  LOG_NORMAL	},
    { "clearartifact",  do_clearartifact,POS_DEAD,      10,  LOG_ALWAYS },
    { "initartifact",  do_initartitable,POS_DEAD,      10,  LOG_ALWAYS },
    { "takeapart", 	do_takeapart,	POS_DEAD,	10,  LOG_ALWAYS },
    { "whereparts", 	do_whereparts,	POS_DEAD,	10,  LOG_ALWAYS },
    { "puttogether",    do_puttogether, POS_STANDING,    2,  LOG_ALWAYS },
    { "ban",		do_ban,		POS_DEAD,	10,  LOG_ALWAYS	},
    { "bind",		do_bind,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "clearstats",	do_clearstats,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "clearotherstats",do_clearstatsothers,POS_STANDING,10, LOG_NORMAL	},
    { "clearreply",	do_clearreply,	POS_STANDING,    0,  LOG_NORMAL },
    { "clearvam",	do_clearvam,	POS_STANDING,	 1,  LOG_NORMAL	},
    { "clearvamp",	do_clearvamp,	POS_STANDING,	11,  LOG_ALWAYS	},
    { "create",		do_create,	POS_STANDING,	 9,  LOG_NORMAL	},
    { "copyover",	do_newcopyover,	POS_DEAD,	11,  LOG_ALWAYS },
    { "hotboot",	do_copyover,	POS_DEAD,	11,  LOG_ALWAYS },
    { "crashmud",	do_crashmud,    POS_DEAD,	13,  LOG_ALWAYS },
    { "deny",		do_deny,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "undeny", 	do_undeny,	POS_DEAD,	10,  LOG_ALWAYS },
    { "disable",	do_disable,	POS_DEAD,	11,  LOG_ALWAYS },
    { "disconnect",	do_disconnect,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "depower",	do_depower,	POS_DEAD,	12,  LOG_NORMAL },
    { "divorce",	do_divorce,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "clearmarriage",	do_clearmarriage,	POS_STANDING,	8,	LOG_ALWAYS },
    { "familiar",	do_familiar,	POS_STANDING,	13,  LOG_NORMAL	},
    { "fcommand",	do_fcommand,	POS_STANDING,	 4,  LOG_NORMAL	},
    { "marry",		do_marry,	POS_DEAD,	 3,  LOG_ALWAYS	},
    { "paradox",	do_paradox,	POS_DEAD,	12,  LOG_ALWAYS },
    { "qset",		do_qset,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "qstat",		do_qstat,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "qtrust",		do_qtrust,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "reboo",		do_reboo,	POS_DEAD,	12,  LOG_NORMAL	},
    { "reboot",		do_reboot,	POS_DEAD,	12,  LOG_ALWAYS	},
    { "shutdow",	do_shutdow,	POS_DEAD,	12,  LOG_NORMAL	},
    { "shutdown",	do_shutdown,	POS_DEAD,	12,  LOG_ALWAYS	},
    { "users",		do_users,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "numlock",	do_numlock,	POS_DEAD,	11,  LOG_ALWAYS	},
    { "newlock",	do_newlock,	POS_DEAD,	11,  LOG_ALWAYS	},
    { "wizlock",	do_wizlock,	POS_DEAD,	11,  LOG_ALWAYS	},
    { "nosafe",	        do_nosafe,	POS_DEAD,	11,  LOG_ALWAYS	},
    { "watche",		do_huh,		POS_DEAD,	 2,  LOG_NEVER	},
    { "watcher",	do_watcher,	POS_DEAD,	 2,  LOG_NEVER	},
    { "force",		do_force,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "exlist",		do_exlist,	POS_DEAD,	 8,  LOG_NORMAL },
    { "vlist",		do_vlist,	POS_DEAD,	 8,  LOG_NORMAL },
    { "unixsy",		do_huh,		POS_DEAD,	 2,  LOG_NORMAL },
    { "unixsys",	do_unixsys,	POS_DEAD,	12,  LOG_NEVER },
    { "unixtail",	do_unix_tail,	POS_DEAD,	12,  LOG_NORMAL },
    { "makemud",	do_make,	POS_DEAD,	12,  LOG_ALWAYS },
    { "makewarn",	do_makewarn,	POS_DEAD,	12,  LOG_ALWAYS },
    { "mclear",		do_mclear,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "mload",		do_mload,	POS_DEAD,	 8,  LOG_ALWAYS	},
    { "mset",		do_mset,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "noemote",	do_noemote,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "notell",		do_notell,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "oclone",		do_oclone,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "oload",		do_oload,	POS_DEAD,	 8,  LOG_ALWAYS	},
    { "oset",		do_oset,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "otransfer",	do_otransfer,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "pload",		do_pload,	POS_DEAD,	12,  LOG_ALWAYS	},  
    { "preturn",	do_preturn,	POS_DEAD,	 2,  LOG_ALWAYS },
    { "pset",		do_pset,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "purge",		do_purge,	POS_DEAD,	 8,  LOG_NORMAL	},
    { "qmake",		do_qmake,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "release",	do_release,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "relevel", 	do_relevel2,    POS_DEAD,	 1,  LOG_ALWAYS },
    { "editlevel", 	do_setrelevel,  POS_DEAD,	12,  LOG_ALWAYS },
    { "delevel", 	do_delevel,     POS_DEAD,	11,  LOG_ALWAYS },
    { "restore",	do_restore,	POS_DEAD,	 7,  LOG_ALWAYS	},
    { "rset",		do_rset,	POS_DEAD,	 8,  LOG_ALWAYS	},
    { "silence",	do_silence,	POS_DEAD,	 7,  LOG_NORMAL },
    { "sla",		do_sla,		POS_DEAD,	10,  LOG_NORMAL	},
    { "slay",		do_slay,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "special",	do_special,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "decapitate",	do_decapitate,	POS_STANDING,	 3,  LOG_SILENCE},
    { "sset",		do_sset,	POS_DEAD,	10,  LOG_ALWAYS },
    { "tear",		do_tear,	POS_STANDING,	 3,  LOG_SILENCE},
    { "transfer",	do_transfer,	POS_DEAD,	 8,  LOG_ALWAYS	},
    { "randarea",	do_randarea,	POS_DEAD,	12,  LOG_ALWAYS	},

    { "transport",	do_transport,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "at",		do_at,		POS_DEAD,	10,  LOG_NORMAL	},

    { "backlist",       do_backlist,    POS_DEAD,       12,  LOG_NORMAL },
    { "bamfin",		do_bamfin,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "bamfout",	do_bamfout,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "color",          do_color,       POS_DEAD,        4,  LOG_NORMAL }, 
    { "magi",          do_color,       POS_DEAD,         4,  LOG_NORMAL }, 
    { "echo",		do_gecho,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "gecho",		do_echo,	POS_DEAD,	13,  LOG_ALWAYS	},
    { "pecho",		do_pecho,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "zecho",		do_zecho,	POS_DEAD,	10,  LOG_ALWAYS	},
    { "goto",		do_goto,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "holylight",	do_holylight,	POS_DEAD,	 7,  LOG_NORMAL	},
    { "incog",          do_incog,       POS_DEAD,        7,  LOG_NORMAL },
    { "log",		do_log,		POS_DEAD,       12,  LOG_ALWAYS	},
    { "login",		do_login,	POS_DEAD,	 9,  LOG_NORMAL },

    { "memory",		do_memory,	POS_DEAD,	10,  LOG_NORMAL	},
    { "mfind",		do_mfind,	POS_DEAD,	 8,  LOG_NORMAL },
    { "rfind",		do_rfind,	POS_DEAD,	 8,  LOG_NORMAL },
    { "mstat",		do_mstat,	POS_DEAD,	 8,  LOG_NORMAL	},
    { "mwhere",		do_mwhere,	POS_DEAD,	 8,  LOG_NORMAL },
    { "ofind",		do_ofind,	POS_DEAD,	 8,  LOG_NORMAL },
    { "ostat",		do_ostat,	POS_DEAD,	 8,  LOG_NORMAL	},
    { "oswitch",	do_oswitch,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "oreturn",	do_oreturn,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "peace",		do_peace,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "promote",        do_promote,     POS_DEAD,        9,  LOG_NORMAL }, 
    { "recho",		do_recho,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "reloadplayer",   do_reloadp,     POS_DEAD,       13,  LOG_ALWAYS },
    { "return",		do_return,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "rstat",		do_rstat,	POS_DEAD,	 8,  LOG_NORMAL	},
    { "slookup",	do_slookup,	POS_DEAD,	 8,  LOG_NORMAL },
    { "nslookup",	do_slowns,	POS_DEAD,	11,  LOG_ALWAYS },
    { "snoop",		do_snoop,	POS_DEAD,	 9,  LOG_NORMAL	},
    { "switch",		do_switch,	POS_DEAD,	 9,  LOG_ALWAYS	},
    { "vampire",	do_vampire,	POS_DEAD,	 0,  LOG_NORMAL },
    { "vamptalk",	do_vamptalk,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "ict",		do_nclantalk,	POS_DEAD,	12,  LOG_NORMAL },
//    { "clantalk",	do_clantalk,	POS_DEAD,	 3,  LOG_NORMAL },
    { "ct",		do_nclantalk,	POS_DEAD,	 3,  LOG_NORMAL },
    { "magetalk",	do_magetalk,	POS_DEAD,	 4,  LOG_NORMAL	},
    { "mageupkeep",	do_mageupkeep,	POS_STANDING,    4,  LOG_NORMAL },
    { "magecommands",	do_magecommands,POS_STANDING,    4,  LOG_NORMAL },
    { "magepowers",	do_magepowers,	POS_STANDING,	 3,  LOG_NORMAL },
    { "vtalk",		do_vamptalk,	POS_DEAD,	 3,  LOG_NORMAL	},
    { ">",		do_vamptalk,	POS_DEAD,	 3,  LOG_NORMAL	},
    { "vtwist",         do_vtwist,      POS_STANDING,    3,  LOG_NORMAL },
    { "mxp", 		do_mxp,		POS_STANDING,	 2,  LOG_NORMAL },
    { "sound", 		do_sound,	POS_STANDING,	 2,  LOG_NORMAL },
    { "mxptest",        do_mxptest,     POS_DEAD,        2,  LOG_NORMAL },
    { "defences",	do_defences,	POS_STANDING,	 0,  LOG_NORMAL	},
    { "cache",          do_cache,       POS_DEAD,       12,  LOG_NORMAL },
    { "immune",		do_immune,	POS_DEAD,	 0,  LOG_NORMAL	},
    { "[",		do_fcommand,	POS_SITTING,	 3,  LOG_NORMAL	},

    { "ftalk",		do_ftalk,	POS_DEAD,	 2,  LOG_NORMAL	},
    { "btalk",		do_btalk,	POS_DEAD,	 2,  LOG_NORMAL	},
    { "foundertalk",	do_founder,	POS_DEAD,	 3,  LOG_NORMAL },
    { ":",		do_immtalk,	POS_DEAD,	 7,  LOG_NORMAL	},

    // Tag Commands
    { "ftag",       	do_ftag,        POS_SLEEPING,    9,  LOG_NORMAL },
    { "autoftag",       do_autoftag,    POS_SLEEPING,    9,  LOG_NORMAL },
    { "ftagstats",	do_ftagstats,	POS_SLEEPING,	 0,  LOG_NORMAL },
    { "ztag",        	do_ztag, 	POS_RESTING,     0,  LOG_NORMAL },
    { "redtalk",        do_red, 	POS_RESTING,     0,  LOG_NORMAL },
    { "bluetalk",       do_blue,        POS_RESTING,     0,  LOG_NORMAL },
    { "countdown",      do_countdown,   POS_DEAD,       11,  LOG_ALWAYS },
    { "tokenquest",	do_tokenquest,	POS_DEAD,       11,  LOG_ALWAYS },    
    { "smackdown",	do_smackdown,	POS_DEAD,       11,  LOG_ALWAYS },    
    { "joinwar",	do_joinwar,	POS_STANDING,    3,  LOG_NORMAL },
    { "eliminate",	do_eliminate,	POS_STANDING,    3,  LOG_SILENCE},
    { "startwar",	do_startwar,	POS_DEAD,       12,  LOG_ALWAYS },
    { "viewwar",	do_viewwar,	POS_STANDING,    0,  LOG_NORMAL },
    { "endwar",		do_endwar,	POS_DEAD,       11,  LOG_ALWAYS },
    { "makewatcher", 	do_makewatcher, POS_DEAD,       13,  LOG_NORMAL },
    { "mercenary", 	do_mercenary, 	POS_STANDING,    3,  LOG_NORMAL },

     {"addchange",      do_naddchange,  POS_DEAD,       11,  LOG_NORMAL },
    { "testcommand",    do_testcommand,	POS_DEAD,	13,  LOG_NORMAL },
    { "changes",        do_changes,	POS_DEAD,	 0,  LOG_NORMAL },
    { "editchange",     do_chsave,      POS_DEAD,	11,  LOG_ALWAYS },
    { "cleararti",      do_purgeartitable,POS_DEAD,	13,  LOG_ALWAYS },
    { "distinv",        do_distinv,	POS_DEAD,	 7,  LOG_NORMAL },
    { "sortareas",      do_sortareas,	POS_DEAD,	13,  LOG_ALWAYS },
    { "socedit",	do_socedit,	POS_DEAD,	 9,  LOG_NORMAL },
    { "socshow",	do_socshow,	POS_DEAD,	 9,  LOG_NORMAL },
    { "unclaim",	do_unclaim, 	POS_DEAD, 	 2,  LOG_NORMAL },

/* New Wolf Stuff */

    { "senseaura",	do_senseaura,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "wyld",           do_wyld,        POS_DEAD,        3,  LOG_NORMAL },
    { "banshee",        do_banshee,     POS_DEAD,        3,  LOG_NORMAL },
    { "balorsgaze",     do_balor,       POS_DEAD,        3,  LOG_NORMAL },
    { "brew",           do_brew,        POS_STANDING,    3,  LOG_NORMAL },
    { "halosun",	do_halosun, 	POS_STANDING,	 3,  LOG_NORMAL },
    { "shred",		do_shred,       POS_STANDING,    3,  LOG_NORMAL },
    { "talon",		do_talons,	POS_FIGHTING,	 3,  LOG_NORMAL },
    { "devour", 	do_devour, 	POS_STANDING,	 3,  LOG_NORMAL },

    {"lightofgod", 	do_lightofgod, 	POS_STANDING,    3,  LOG_NORMAL },
    {"vielshadow", 	do_vielshadow, 	POS_STANDING,    3,  LOG_NORMAL },
    {"chameleon", 	do_chameleon, 	POS_STANDING,    3,  LOG_NORMAL },
    {"fleshofmoltenrock",do_fleshofmoltenrock,POS_STANDING,3,LOG_NORMAL },
    {"shademirror", 	do_shademirror, POS_STANDING,    3,  LOG_NORMAL },
    { "sunwalk", 	do_sunwalk, 	POS_STANDING,    3,  LOG_NORMAL },
    { "godbreath", 	do_gbreath, 	POS_STANDING,    3,  LOG_NORMAL },     

    { "stokenquest",    do_stoken,      POS_DEAD,       14,  LOG_ALWAYS },

    { "hatch",          do_hatch,       POS_SITTING,     3,  LOG_NORMAL },
    { "droar",          do_earthembrace,POS_SITTING,     3,  LOG_NORMAL },
//    { "consume",        do_consume,     POS_SITTING,     3,  LOG_NORMAL },
    { "dgain",          do_dgain,       POS_SITTING,     3,  LOG_NORMAL },
    { "dlick",          do_lick,        POS_SITTING,     3,  LOG_NORMAL },
    { "dragonarmor",    do_dragonarmour,POS_SITTING,     3,  LOG_NORMAL },  
    { "drackform",      do_drackform,   POS_SITTING,     3,  LOG_NORMAL },
    { "dbreath",        do_dbreath,     POS_SITTING,     3,  LOG_NORMAL },
    { "dconfuse",       do_dconfuse,    POS_SITTING,     3,  LOG_NORMAL },
    { "dpolymorph",     do_dpolymorph,  POS_SITTING,     3,  LOG_NORMAL },
    { "dfly",           do_fly,         POS_SITTING,     3,  LOG_NORMAL },
    { "dpeer",          do_peer,        POS_SITTING,     3,  LOG_NORMAL },
    { "consume",        do_consume,     POS_SITTING,     3,  LOG_NORMAL },
    { "gem",            do_gem,         POS_SITTING,     3,  LOG_NORMAL },
    { "horde", 	        do_horde,       POS_DEAD,        3,  LOG_NORMAL },
    { "dragonpowers",   do_dragonpowers,POS_STANDING,    3,  LOG_NORMAL },

    { "faepowers",      do_faepowers,   POS_STANDING,    3,  LOG_NORMAL },
    { "grandeur",       do_grandeur,    POS_STANDING,    3,  LOG_NORMAL },
    { "faeawe",         do_faeawe,      POS_STANDING,    3,  LOG_NORMAL },
    { "dictum",         do_dictum,      POS_STANDING,    3,  LOG_NORMAL },
    { "captive",        do_captive,     POS_STANDING,    3,  LOG_NORMAL },
    { "faesight",       do_faesight,    POS_STANDING,    3,  LOG_NORMAL },
    { "ensnare",        do_ensnare,     POS_STANDING,    3,  LOG_NORMAL },
    { "passage",        do_passage,     POS_STANDING,    3,  LOG_NORMAL },
    { "flicker",        do_flicker,     POS_STANDING,    3,  LOG_NORMAL },
    { "flickering",        do_wflicker,     POS_STANDING,    2,  LOG_NEVER  },   
    { "hopscotch",      do_hopscotch,   POS_STANDING,    3,  LOG_NORMAL },
    { "wind",           do_wind,        POS_STANDING,    3,  LOG_NORMAL },
    { "augury",         do_augury,      POS_STANDING,    3,  LOG_NORMAL },
    { "boil",           do_boil,        POS_STANDING,    3,  LOG_NORMAL },
    { "arts",           do_arts,        POS_STANDING,    3,  LOG_NORMAL },
    { "faeenchant",     do_faeenchant,  POS_STANDING,    3,  LOG_NORMAL },
    { "choose",         do_choose,      POS_STANDING,    3,  LOG_NORMAL },
    { "weaver",         do_weaver,      POS_STANDING,    3,  LOG_NORMAL },
    { "cleave",         do_cleave,      POS_STANDING,    3,  LOG_NORMAL },
    { "fate",           do_fate,        POS_STANDING,    3,  LOG_NORMAL },
    { "holly",          do_holly,       POS_FIGHTING,    3,  LOG_NORMAL },
    { "fugue",          do_fugue,       POS_STANDING,    3,  LOG_NORMAL },
    { "effigy",         do_effigy,      POS_STANDING,    3,  LOG_NORMAL },
    { "fuddle",         do_fuddle,      POS_STANDING,    3,  LOG_NORMAL },
    { "gimmix",         do_gimmix,      POS_STANDING,    3,  LOG_NORMAL },
    { "boggan",         do_boggan,      POS_STANDING,    3,  LOG_NORMAL },
    { "eshu",           do_eshu,        POS_STANDING,    3,  LOG_NORMAL },
    { "nocker",         do_nocker,      POS_STANDING,    3,  LOG_NORMAL },
    { "pooka",          do_pooka,       POS_STANDING,    3,  LOG_NORMAL },
    { "redcap",         do_redcap,      POS_STANDING,    3,  LOG_NORMAL },
    { "satyr",          do_satyr,       POS_STANDING,    3,  LOG_NORMAL },
    { "sidhe",          do_sidhe,       POS_STANDING,    3,  LOG_NORMAL },
    { "sluagh",         do_sluagh,      POS_STANDING,    3,  LOG_NORMAL },
    { "troll",          do_troll,       POS_STANDING,    3,  LOG_NORMAL },
    { "teeth",          do_teeth,       POS_STANDING,    3,  LOG_NORMAL },
    { "dreameyes",      do_dreameyes,   POS_STANDING,    3,  LOG_NORMAL },
    { "faehorns",       do_faehorns,    POS_STANDING,    3,  LOG_NORMAL },
    { "faehooves",      do_faehooves,   POS_STANDING,    3,  LOG_NORMAL },
    { "freehold",       do_freehold,    POS_STANDING,    3,  LOG_NORMAL },
    { "viewaura",       do_viewaura,    POS_STANDING,    3,  LOG_NORMAL },
    { "oakenshield",    do_oakenshield, POS_STANDING,    3,  LOG_NORMAL },
    { "veiled",         do_veiled,      POS_STANDING,    3,  LOG_NORMAL },
    { "tattle",         do_scry,        POS_STANDING,    3,  LOG_NORMAL },
    { "elderform",      do_elderform,   POS_STANDING,    3,  LOG_NORMAL },
    { "haunted",        do_haunted,     POS_FIGHTING,    3,  LOG_NORMAL },
    { "squirm",         do_squirm,      POS_STANDING,    3,  LOG_NORMAL },
    { "heather",        do_heather,     POS_STANDING,    3,  LOG_NORMAL },
    { "craftarmour",    do_craftarmour, POS_STANDING,    3,  LOG_NORMAL },
    { "faecharm",       do_faecharm,    POS_STANDING,    3,  LOG_NORMAL },
    { "geasa",          do_geasa,       POS_STANDING,    3,  LOG_NORMAL },
    { "phantom",        do_phantom,     POS_STANDING,    3,  LOG_NORMAL },
    { "willow",	        do_willow,      POS_STANDING,    3,  LOG_NORMAL },
    { "quicksilver",    do_quicksilver, POS_STANDING,    3,  LOG_NORMAL },
    { "poisonweapon",   do_poisonweapon,POS_STANDING,    3,  LOG_NORMAL },
    { "freezeweapon",   do_freezeweapon,POS_STANDING,    3,  LOG_NORMAL },
    { "flameweapon",    do_flameweapon, POS_STANDING,    3,  LOG_NORMAL },
    { "cover",          do_cover,       POS_STANDING,    3,  LOG_NORMAL },
    { "sap",            do_sap,         POS_STANDING,    3,  LOG_NORMAL },
    { "shapeshift",	do_shapeshift,	POS_STANDING,	 3,  LOG_NORMAL },
    { "shadowshade",    do_shadowshade, POS_STANDING,    3,  LOG_NORMAL },
    { "showcourt",      do_showcourt,   POS_STANDING,    3,  LOG_NORMAL },
    { "faesteed",       do_faesteed,    POS_STANDING,    3,  LOG_NORMAL },
    { "teethclench",    do_teethclench, POS_STANDING,    3,  LOG_NORMAL },
    { "silentwalk",     do_silentwalk,  POS_STANDING,    3,  LOG_NORMAL },
    { "entrap",         do_entrap,      POS_STANDING,    3,  LOG_NORMAL },
    { "redclaws",       do_redclaws,    POS_STANDING,    3,  LOG_NORMAL },
    { "craftweapon",    do_craftweapon, POS_STANDING,    3,  LOG_NORMAL },
    { "dreamtalk",      do_dreamtalk,   POS_DEAD,        3,  LOG_NORMAL },
    { "roar",           do_dragtalk,    POS_DEAD,        3,  LOG_NORMAL },
    { "dt",             do_dreamtalk,   POS_DEAD,        3,  LOG_NORMAL },
    { "dreaming",       do_dreaming,    POS_SLEEPING,    2,  LOG_NORMAL },
    //{ "phantomwings",   do_phantomwings,POS_STANDING,    3,  LOG_NORMAL },
    //{ "phantommask",    do_phantommask, POS_STANDING,    3,  LOG_NORMAL },
    { "protocol",       do_protocol,    POS_FIGHTING,    3,  LOG_NORMAL },
    //{ "purgeold",     do_purgeoldchar,POS_DEAD,       13,  LOG_ALWAYS },
    //{ "transfering",    do_transfering, POS_STANDING,    3,  LOG_NORMAL },
    //{ "shadowritual",   do_shadowritual,POS_STANDING,    3,  LOG_NORMAL },
    { "parasite",       do_parasite,    POS_DEAD,       11,  LOG_ALWAYS },
    { "nochan",         do_nochan,      POS_DEAD,        8,  LOG_NORMAL },
    { "nobeep",         do_nobeep,      POS_DEAD,        2,  LOG_NORMAL },
    { "multexp",        do_multexp,     POS_DEAD,       12,  LOG_ALWAYS },
    { "multqps",        do_multqp,      POS_DEAD,       12,  LOG_ALWAYS },
    { "exacorpse",      do_exacorpse,   POS_DEAD,        2,  LOG_NORMAL },
    { "grantqp",        do_grantqp,     POS_DEAD,       10,  LOG_ALWAYS },
    { "findtoken",      do_findstoken,  POS_DEAD,       11,  LOG_SILENCE },
    { "doxlimit",       do_paradoxlimit,POS_DEAD,       11,  LOG_ALWAYS },
    { "asperson",       do_asperson,    POS_DEAD, 	11,  LOG_ALWAYS },
    { "offline",        do_offline,     POS_DEAD,       12,  LOG_ALWAYS },
    { "seize",          do_seize,       POS_DEAD,       12,  LOG_ALWAYS },
    { "checkmulti",     do_multicheck,  POS_DEAD,       10,  LOG_NORMAL },
    { "xname",          do_shitlist,    POS_STANDING,   12,  LOG_NORMAL },
    { "fvlist",         do_fvlist,      POS_DEAD,       12,  LOG_NORMAL },
    { "idecap",         do_idecap,      POS_DEAD,       13,  LOG_ALWAYS },
    { "gohome",         do_gohome,      POS_STANDING,    3,  LOG_NORMAL },
    { "mudinfo",        do_mudinfo,     POS_DEAD,       10,  LOG_NORMAL },
   // { "gethost",        do_gethost,     POS_DEAD,       10,  LOG_NORMAL },
    { "loadbackup",     do_reloadplayer,POS_DEAD,       12,  LOG_ALWAYS },
    { "unfoldarea",     do_unfoldarea,  POS_DEAD,       13,  LOG_ALWAYS },
    { "spectate",       do_spectate,    POS_STANDING,    3,  LOG_NORMAL },
    { "vt100",          do_vt100,       POS_STANDING,    2,  LOG_NORMAL },
    { "selfpardon",     do_selfpardon,  POS_STANDING,    3,  LOG_NORMAL },
    { "sever",          do_sever,       POS_DEAD,       12,  LOG_ALWAYS },
    { "giveclan",       do_giveclan,    POS_STANDING,    3,  LOG_ALWAYS },
    { "automap",        do_automap,     POS_STANDING,    2,  LOG_NORMAL },
    { "soulsteal",      do_soulsteal,   POS_STANDING,    3,  LOG_NORMAL },
    { "soulpromote",    do_promotesoul, POS_STANDING,    3,  LOG_NORMAL },
    { "lowergen",       do_lowergen,    POS_STANDING,    3,  LOG_NORMAL },
    { "gensteal",       do_gensteal,    POS_STANDING,    3,  LOG_ALWAYS },
    { "spellcheck",     do_spellcheck,  POS_STANDING,    2,  LOG_NORMAL },
    //{ "whotype",        do_whotype,     POS_DEAD,        0,  LOG_NORMAL },
    { "autoconsume",    do_autoconsume, POS_STANDING,    3,  LOG_NORMAL },
    { "rules",          do_rules,       POS_DEAD,        0,  LOG_NEVER  },
    { "vote",           do_vote,        POS_DEAD,        2,  LOG_NORMAL },
    { "polladd",        do_polladd,     POS_DEAD,        7,  LOG_NORMAL },
    { "polledit",       do_polledit,    POS_DEAD,        7,  LOG_NORMAL },
    { "pollstop",       do_pollstop,    POS_DEAD,        7,  LOG_NORMAL },
    { "pollshow",       do_pollshow,    POS_DEAD,        7,  LOG_NORMAL },
    //{ "clanshow",       do_clanshow,    POS_DEAD,        2,  LOG_NORMAL },
    { "lcommands",	do_lcommands,	POS_STANDING,    1,  LOG_NORMAL },
    { "tportal", 	do_tportal,	POS_STANDING,	 2,  LOG_NORMAL },
    { "trestore",	do_trestore,	POS_STANDING,	 2,  LOG_NORMAL },
    { "pkready",	do_pkready,	POS_STANDING,    3,  LOG_NORMAL },
    { "amup",		do_amup,	POS_DEAD,	10,  LOG_NORMAL },
    { "psycho",		do_psycho,	POS_DEAD,	10,  LOG_NORMAL },
    { "mobquest",       do_mobquest,    POS_DEAD,       11,  LOG_NORMAL },

    /*
     * Kingdom Stuff
     */
/*
     { "krecall",	do_krecall,	POS_FIGHTING,  3, LOG_NORMAL},
     { "kingdom" ,      do_kingdoms, 	POS_STANDING,  3, LOG_NORMAL},
     { "kingdomlist",   do_kinglist,	POS_STANDING,  3, LOG_NORMAL},

     { "promoterank",   do_kpromote,	POS_STANDING,  3, LOG_NORMAL},
     { "demoterank", 	do_kdemote,	POS_STANDING,  3, LOG_NORMAL},
     { "disband", 	do_kdisband,    POS_STANDING,  3, LOG_NEVER },
     { "initiate",	do_kinduct, 	POS_STANDING,  3, LOG_NORMAL},
     { "expell", 	do_koutcast,    POS_STANDING,  3, LOG_NORMAL},
     { "defect", 	do_kdesert, 	POS_STANDING,  3, LOG_NORMAL},
     { "kcmdset", 	do_kcmdset, 	POS_STANDING,  3, LOG_NORMAL},
     { "abdicate", 	do_krenounce,	POS_STANDING,  3, LOG_NORMAL},
     { "wantk",	        do_clannable,	POS_STANDING,  3, LOG_NORMAL},
     { "khow", 	        do_kshow, 	POS_DEAD,      9, LOG_NORMAL},
     { "kedit",		do_kedit, 	POS_DEAD,      9, LOG_NORMAL},
     { "ktalk",		do_ktalk,	POS_DEAD,      2, LOG_NORMAL},
     { "diplomacy",	do_kdiplomacy,	POS_DEAD,      3, LOG_NORMAL},
     { "declare",	do_kdeclare,	POS_DEAD,      3, LOG_NORMAL},
     { "kinginfo",	do_kinginfo,	POS_DEAD,      3, LOG_NORMAL},
     { "depositqps",	do_depositqps,  POS_STANDING,  3, LOG_ALWAYS},
     { "withdrawqps",	do_withdrawqps, POS_STANDING,  3, LOG_ALWAYS},
*/
//New Quotes stuff (copy of changes) by Unique
     { "addquote",      do_naddquote,   POS_DEAD,     11, LOG_NORMAL },
    { "quotes",         do_quotes,	POS_DEAD,      0, LOG_NORMAL },
    { "editquote",      do_qusave,      POS_DEAD,     11, LOG_ALWAYS },
    { "genpoint",	do_genpoints,	POS_STANDING,  3, LOG_NORMAL },
    { "register",	do_register,    POS_STANDING,  2, LOG_NORMAL },
    { "reregister",	do_reregister,    POS_STANDING,  12, LOG_NORMAL },
  
    /*
     * End of list.
     */
    { "",		0,		POS_DEAD,	 0,  LOG_NORMAL	}
};




bool check_speedwalk( CHAR_DATA *ch, char *argument )
{
int len;
int count;
char buf[MSL];
                
len = strlen( argument );
            
if (ch->fight_timer > 0)
{
stcprintf(ch, "not with a fight timer!\n\r");
return FALSE;
}
     for ( count = 1; count < len; count++ )
     {
        switch (argument[count])
        {
        case 'n':
        case 'N':
        case 's':
        case 'S':
        case 'e':
        case 'E':
        case 'w':
        case 'W':
        case 'u':
        case 'U':
        case 'd':
        case 'D':
           break;
        default:
           stcprintf(ch, "%c isn't a valid direction.\n\r", argument[count]);
        WAIT_STATE(ch, 4);
           return FALSE;
           break;
        }
     }

     argument++;
     while ( *argument !=  '\0' )
     {
        sprintf(buf, "%c", *argument );
        interpret( ch, buf );
        WAIT_STATE(ch, 4);
        argument++;
     }
     return TRUE;
}
/*
 * The main entry point for executing commands.
 * Can be recursively called from 'at', 'order', 'force'.
 */
void interpret( CHAR_DATA *ch, char *argument )
{
    CHAR_DATA *unveil;

    CHAR_DATA *vch;
    char *reason;
    char arg[MAX_STRING_LENGTH];
    char argu[MAX_STRING_LENGTH];
//    char newer_argument[MAX_STRING_LENGTH];
//    char new_argument[MAX_STRING_LENGTH];

    char buf[MAX_STRING_LENGTH];
    char buf2[MAX_STRING_LENGTH];
    char command[MAX_STRING_LENGTH];
    char logline[MAX_STRING_LENGTH];
    char cmd_copy[MAX_STRING_LENGTH];
    char memcheck[MSL];
    int cmd;
    int trust;
    bool found, foundstar = FALSE;
    sh_int col = 0;
    int star = 0;
    int string_count = nAllocString ;
    int perm_count = nAllocPerm ;


    if (!ch || !ch->in_room) return;
    WRITE_STR(debug_last_character, ch->name);
    WRITE_STR(debug_last_command,   argument           );
    debug_last_room = ch->in_room->vnum;
    sprintf(argu,"%s %s",arg,one_argument( argument, arg));

    if ( IS_CLASS(ch, CLASS_DEMON) && IS_SET(ch->warp, WARP_SLOW) )  
       WAIT_STATE( ch, 10 ); 

    if ( IS_GAR1(ch, GAROU_BLISSFUL) )
    {
      stc("You lose your concentration and fade back into existance.\n\r",ch);
      REMOVE_BIT(ch->garou1, GAROU_BLISSFUL);
    }

    /*
     * Strip leading spaces.
     */
    while ( isspace(*argument) )
	argument++;
    if ( argument[0] == '\0' )
	return;

    /*
     * No hiding.
     */
    if (!IS_AFFECTED(ch, AFF_SNEAK) &&
       (IS_NPC (ch) || (!IS_CLASS (ch, CLASS_NINJA) &&
      !(IS_CLASS (ch, CLASS_FAE) && IS_SET (ch->kith, KITH_ESHU)))))
        REMOVE_BIT( ch->affected_by, AFF_HIDE );

    /*
     * Implement freeze command.
     */
    if ( !IS_NPC(ch) && IS_SET(ch->act, PLR_FREEZE) )
    {
	send_to_char( "You're totally frozen!\n\r", ch );
	return;
    }
    else if (number_percent() <= 25 && IS_SET(ch->newbits, NEW_CALM))
    {
        send_to_char( "You really can't be bothered.\n\r", ch );
        return;
    }
    else if (number_percent() <= 25 && ch->dconfuse_counter > 0)
    {
         switch (number_range (1, 8))
         {
             default: do_chat(ch,argument); return; break;
             case 1: do_berserk(ch,""); return; break;
             case 2: do_cast(ch,"'dispel magic' self"); return; break;
             case 3: do_cast(ch,"gas"); return; break;
             case 4: do_chat(ch,argument); return; break;
             case 5: do_recall(ch,""); return; break;
             case 6: do_score(ch,""); return; break;
             case 7: do_who(ch,""); return; break;
             case 8: do_say(ch,argument); return; break;
          }
    }
    else if ( (number_percent() <= 25 ) && ( IS_SET (ch->flag2, AFF2_FROZEN ) ) )
    {
        send_to_char( "You're frozen solid.\n\r", ch );
        return;
    }
/*
if ( !IS_NPC(ch) && ch->desc && argument == ch->desc->incomm )
    {
//               new_argument[0] = '\0';
//               check_multi_cmd ( ch, argument, new_argument );
//               argument = new_argument;
//               if (argument[0] == ch->pcdata->speedchar)
//               {
//                 newer_argument[0] = '\0';
//                 check_speedwalk(ch, argument);
//                 return;
               }
    }
*/
	if ( !IS_IMMORTAL(ch) && !IS_NPC(ch) && IS_SET(ch->flag2, EXTRA_AFK) && str_cmp(argument, "afk"))
	do_afk(ch,"");

	if ( !IS_NPC(ch) && IS_SET(ch->flag2, EXTRA_CODING)&& str_cmp(argument, "coding") )
	do_coding(ch,"");

    /*
     * Grab the command word.
     * Special parsing so ' can be a command,
     *   also no spaces needed after punctuation.
     */
    strcpy( logline, argument );
    strcpy( cmd_copy, argument );
    strcpy( buf, argument);

    if ( !isalpha(argument[0]) && !isdigit(argument[0]) )
    {
	command[0] = argument[0];
	command[1] = '\0';
	argument++;
	while ( isspace(*argument) )
	    argument++;
    }
    else
    {
	argument = one_argument( argument, command );
    }
    if (command[strlen(command) - 1] == '*')
    {
        command[strlen(command) - 1] = '\0';
        loc_to_char(ch);
        for ( cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++ )
        {   
            if ((!str_prefix(command, cmd_table[cmd].name) || strlen(command) == 0) && can_interpret(ch, cmd))
            {   
                foundstar = TRUE;
                star++;
                sprintf( buf, "%-15s", cmd_table[cmd].name );
                send_to_char( buf, ch );
                if ( ++col % 5 == 0 )
                    send_to_char( "\n\r", ch );
            }
        }
        if (col % 5 != 0 && foundstar)
            send_to_char("\n\r", ch);
        
        if (foundstar && star != 0) 
        {
            sprintf(buf, "#w%d command%s found.#n", star,
                (star > 1) ? "s" : "");
    divide7_to_char(ch);
            cent_to_char(buf, ch);
    divide7_to_char(ch);
        }
     
        if (!foundstar)
        {   
    divide7_to_char(ch);
            cent_to_char("#wNo commands found.#n", ch);
    divide7_to_char(ch);
        }
        return;
    }
    /*
     * Look for command in command table.
     */
    if (!IS_NPC(ch) && ch->pcdata->evilchat != NULL)
    {
        CHAR_DATA *temp;
        found = FALSE;
        trust = get_trust( ch );
        for ( cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++ )
        {
            sprintf( buf2, "%s@", cmd_table[cmd].name );
            if ( command[0] == cmd_table[cmd].name[0]
            &&   !str_prefix( command, cmd_table[cmd].name )
            &&   (cmd_table[cmd].level <= trust || is_name(cmd_table[cmd].name,
            ch->empowered)) && !is_name(buf2, ch->empowered) )
            {
                if      (!str_cmp( cmd_table[cmd].name, "beep"    )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "control" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "command" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "kill"    )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "warps"   )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "harakiri")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "srestore")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "donate"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "alignment")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "config"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "description")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "profile" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "title"   )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "wimpy"   )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "prompt"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "cprompt" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "impulse" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "challenge")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "arenaagree")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "giveup"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "consent" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "propose" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "accept"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "token"   )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "etoken"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "teachmastery")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "selfrestore")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "diablerie")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "selfpardon")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "giveclan")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "soulsteal")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "gensteal")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "disband" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "expell"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "defect"  )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "promoterank")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "tportal" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "trestore")) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "order"   )) found = TRUE;
            }
        }
        temp = ch;
        if (found) ch = ch->pcdata->evilchat;
        temp->pcdata->evilchat = NULL;
    }

    found = FALSE;
    trust = get_trust( ch );
    for ( cmd = 0; cmd_table[cmd].name[0] != '\0'; cmd++ )
    {
        sprintf( buf2, "%s@", cmd_table[cmd].name );
        if ( command[0] == cmd_table[cmd].name[0]
        &&   !str_prefix( command, cmd_table[cmd].name )
        &&   (cmd_table[cmd].level <= trust || is_name(cmd_table[cmd].name,
        ch->empowered)) && !is_name(buf2, ch->empowered) )
	{
	    if (IS_HEAD(ch,LOST_HEAD) || IS_EXTRA(ch,EXTRA_OSWITCH) )
	    {
		if      (!str_cmp( cmd_table[cmd].name, "say"     )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "'"       )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "immtalk" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "ftalk" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "btalk" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, ":"       )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "chat"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "."       )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "look"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "save"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "exits"   )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "emote"   )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "tell"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "order"   )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "who"     )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "weather" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "where"   )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "safe"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "scan"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "spy"     )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "score"   )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "save"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "oreturn" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "preturn" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "roll" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "pour" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "leap" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "lifespan" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "nightsight" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "truesight" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "horns" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "fangs" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "cast" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "plasma" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "ashes" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "statue" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "itemjump" )) found = TRUE;
		else if (!str_cmp(cmd_table[cmd].name, "dpolymorph") ) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "quit" ) &&
			!IS_NPC(ch) && ch->pcdata->obj_vnum != 0) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "humanform" ) &&
			!IS_NPC(ch) && ch->pcdata->obj_vnum != 0) found = TRUE;
		else {
		    send_to_char( "Not without a body!\n\r", ch ); return; }
	    }

         else if (IS_SET(ch->more, MORE_JAIL) )
         {
		if      (!str_cmp( cmd_table[cmd].name, "save") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "chat") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "look") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "say") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "tell") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "reply") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "vamptalk") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "vt") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "music") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "hum") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "magetalk") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "hightalk") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "miktalk") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "pray") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "howl") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "sign") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "quit") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "who" ) ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "score") ) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "finger") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "board") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "note") ) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "ftalk") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "'") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, ".") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "timers") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "ktalk") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "help") ) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "changes") ) found = TRUE;
                else
		{
		     stc("Not while in Jail\n\r", ch);
		     return;
                }
         }
	 else if (IS_EXTRA(ch,EXTRA_EARTHMELD) )
	    {
                if      (!str_cmp( cmd_table[cmd].name, "earthmeld"  ))
found = TRUE;
                else if      (!str_cmp( cmd_table[cmd].name, "earth"  )) found = TRUE;
                else if (!str_cmp(cmd_table[cmd].name,"burrow")) found= TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "exits")) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "weather" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "where" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "safe" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "scan" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "spy"  )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "shadowsight" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "vclan" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "upkeep" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "immune" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "clandisc" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "dreaming" )) found = TRUE;
                else 
                {
		    if(IS_CLASS(ch,CLASS_FAE))stc("Not whilst Dreaming.\n\r",ch);
		else
                    send_to_char( "Not while in the ground.\n\r", ch );
		    return; 
                }
	    }
            else if (ch->embracing!=NULL  || ch->embraced!=NULL)
	    {
		if      (!str_cmp( cmd_table[cmd].name, "say"  )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "embrace"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "'"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "chat" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "."    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "report" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "goto" )) found = TRUE;

		else if (!str_cmp( cmd_table[cmd].name, "kill" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "berserk" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "testemb" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "reboot" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE;

 		else if (!str_cmp(cmd_table[cmd].name,"diablerise") && ch->embracing !=NULL) found=TRUE;
		else if(!str_cmp(cmd_table[cmd].name,"restore"))found=TRUE;
		else 
		{
                    send_to_char( "Not while in an embrace.\n\r", ch );
		    return; 
		}
	    }
            else if (IS_EXTRA(ch,EXTRA_NO_ACTION) )
            {
                     if (!str_cmp( cmd_table[cmd].name, "reply" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "fcommand" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "[" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "muse" )) found = TRUE;
                else if (!str_cmp( cmd_table[cmd].name, "projection" )) found = TRUE;
                else {
                    send_to_char( "You are not in control of your body.\n\r", ch );
                    if (ch->pcdata->familiar == NULL)
                        REMOVE_BIT(ch->extra, EXTRA_NO_ACTION);
                    return; }
            }
	    else if (IS_EXTRA(ch,TIED_UP) )
	    {
		if      (!str_cmp( cmd_table[cmd].name, "say"  )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "'"    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "chat" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "ftalk" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "btalk" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "."    )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "yell" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "shout")) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "look" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "save" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "exits")) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "inventory" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "tell" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "order" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "who" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "weather" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "where" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "introduce" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "relevel" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "safe" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "scan" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "spy"  )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "darkness" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "sleep" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "wake" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "fangs" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "claws" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "nightsight" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "shadowsight" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "shadowplane" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "regenerate" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "shield" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "vclan" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "upkeep" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "score" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "immune" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "report" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "goto" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "flex" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "change" )) found = TRUE;
		else if (!str_cmp( cmd_table[cmd].name, "drink" )) found = TRUE;
		else {
		    send_to_char( "Not while tied up.\n\r", ch );
		    if (ch->position > POS_STUNNED)
		    	act("$n strains against $s bonds.",ch,NULL,NULL,TO_ROOM);
		    return; }
	    }
	    found = TRUE;
	    break;
	}
    }

    /*
     * Log and snoop.
     */
    if ( cmd_table[cmd].log == LOG_NEVER )
	strcpy( logline, "XXXXXXXX XXXXXXXX XXXXXXXX" );
/* New Code For when i get around to Coding the new stuff for it. */
   if (  !IS_NPC(ch) && !IS_CREATOR(ch) )
    {
        if ( cmd_table[cmd].log == LOG_SILENCE )
	{
	    sprintf( log_buf, "Log %s: %s", ch->name, logline );
	    if ( IS_SET( ch->act, PLR_LOG ) )
		log_player( log_buf, ch, TRUE );
	    else
		log_string_sil( log_buf );
	}
	else if ( IS_SET( ch->act, PLR_LOG ) && cmd_table[cmd].log != LOG_NOSHOW )
	{
	    sprintf( log_buf, "Log %s: %s", ch->name, logline );
	    log_player( log_buf, ch, FALSE );
	}
	else if ( ( WizConfig->logall
	||	    cmd_table[cmd].log == LOG_ALWAYS )
	&&	    cmd_table[cmd].log != LOG_NOSHOW )
	{
	    sprintf( log_buf, "Log %s: %s", ch->name, logline );
	    log_string( log_buf, ch );
	    wiznet (ch, WIZ_SECURE, trust , log_buf );
	}
    }
    if ( ch->desc != NULL && ch->desc->snoop_by != NULL )
    {
	if ( (vch = ch->desc->snoop_by->character) == NULL)
	    ch->desc->snoop_by = NULL;
	else if (IS_IMMORTAL(vch))
	{
	    write_to_buffer( ch->desc->snoop_by, "% ",    2 );
	    write_to_buffer( ch->desc->snoop_by, logline, 0 );
	    write_to_buffer( ch->desc->snoop_by, "\n\r",  2 );
	}
	else if (ch->in_room == NULL || vch->in_room == NULL)
	{
	    sprintf(buf, "You loose your mental link with %s.\n\r",ch->name);
	    send_to_char(buf,vch);	
	    if (IS_SET(ch->newbits, WRA_SKINRIDE) )
		REMOVE_BIT(ch->newbits, WRA_SKINRIDE);
	    bug( "Auspex power 4 in-room bug.", 0 );
	    ch->desc->snoop_by = NULL;
	}
	else if (ch->in_room != vch->in_room)
	{
	    sprintf(buf, "You loose your mental link with %s.\n\r",ch->name);
	    send_to_char(buf,vch);
	    if (IS_SET(ch->newbits, WRA_SKINRIDE) )
                REMOVE_BIT(ch->newbits, WRA_SKINRIDE);
	    ch->desc->snoop_by = NULL;
	}
	else
	{
	    sprintf(buf, "%s thinks: %s.\n\r",ch->name,logline);
	    send_to_char(buf,vch);
	}
    }
  

  if ( ch != NULL && ch->unveil != NULL )
    {
      unveil = ch->unveil;

      if ( unveil->in_room->vnum != ch->in_room->vnum )
	{
	  sprintf(buf,"You lose your mental link with %s.\n\r",ch->name);
	  stc(buf,unveil);
	  ch->unveil = NULL;
	}
      else
	{
	  sprintf(buf, "%s thinks : %s.\n\r",ch->name, logline);
	  stc(buf, unveil);
	}
    }

  if (ch->desc != NULL)
    write_to_buffer(ch->desc,"\n\r",2);

    if ( !found )
    {

	/*
	 * Look for command in socials table.
	 */

	if ( !check_social( ch, command, argument ) )
	{

	    if ( !check_xsocial( ch, command, argument ))
            {
                    if (!is_name(command, ch->empowered))
         	        do_rand_typo(ch);
            }
	}

 /*
	else
	{
	    sprintf(kavirarg,">>>%s",argu);
	    room_text( ch, kavirarg );
	}
*/
	return;
    }
    else /* a normal valid command.. check if it is disabled */
        if((reason=disabled_reason(&cmd_table[cmd]))!=NULL)
      {
        char buf[MSL];
              send_to_char ("#rThis command has been temporarily disabled.\n\r", ch );
                if (strlen(reason) > 3)
                {
                   sprintf(buf,"#rReason: #g%s#n\n\r",reason);
                   stc(buf,ch);
                }
                if (!IS_CREATOR(ch) )
             return;
      }


    /*
     * Character not in position for command?
     */
    if ( ch->position < cmd_table[cmd].position )
    {
	switch( ch->position )
	{
	case POS_DEAD:
	    send_to_char( "Lie still; you are DEAD.\n\r", ch );
	    break;

	case POS_MORTAL:
	case POS_INCAP:
	    send_to_char( "You are hurt far too bad for that.\n\r", ch );
	    break;

	case POS_STUNNED:
	    send_to_char( "You are too stunned to do that.\n\r", ch );
	    break;

	case POS_SLEEPING:
	    send_to_char( "In your dreams, or what?\n\r", ch );
	    break;

	case POS_MEDITATING:
	case POS_SITTING:
	case POS_RESTING:
	    send_to_char( "Nah... You feel too relaxed...\n\r", ch);
	    break;

	case POS_FIGHTING:
	    send_to_char( "No way!  You are still fighting!\n\r", ch);
	    break;

	}
	return;
    }
/* Nice idea... No USE for it tho
	if ( ch->in_room->vnum == ROOM_VNUM_LOUNGE )
	{
	    bool lgl_cmd = FALSE;
	    if ( !str_prefix( command, "say" ) )   lgl_cmd = TRUE;
	    if ( !str_prefix( command, "look" ) )   lgl_cmd = TRUE;
	    if ( !str_prefix( command, "quit" ) )  lgl_cmd = TRUE;
	    if ( !str_prefix( command, "north" ) ) lgl_cmd = TRUE;
	    if ( !str_prefix( command, "south" ) ) lgl_cmd = TRUE;
	    if ( !str_prefix( command, "east" ) )  lgl_cmd = TRUE;
	    if ( !str_prefix( command, "west" ) )  lgl_cmd = TRUE;
	    if ( !str_prefix( command, "up" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "chat" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "say" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "tell" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "reply" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "eq" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "note" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "down" ) )  lgl_cmd = TRUE;
	    if ( !str_prefix( command, "board" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "quit" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "score" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "." ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "flame" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "pray" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "howl" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "vamptalk" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "vtalk" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "vamp" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "humm" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "mikt" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "sign" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "ftalk" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "save" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "time" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "relevel" ) )    lgl_cmd = TRUE;
	    if ( !str_prefix( command, "who" ) )    lgl_cmd = TRUE;


	    if ( !lgl_cmd && !IS_IMMORTAL(ch))
	    {
		char full_argument[MSL];
		if (!str_prefix( command, "chant" ) )
		{
		    char da_buf[5000];		//that a stands for arse
		    do_info( NULL, "#RL#rO#RS#rE#RR#r!#n" );
		    sprintf( da_buf, "#y%s is soooo stupid.  They are trying to chant %s in the lounge!", ch->name, argument );
		    do_info( NULL, da_buf );
		}
                do_say( ch, cmd_copy );
		//sprintf( full_argument, "say %s %s", command, argument );
		//interpret( ch, full_argument );
		return;
	    }
	}
*/
    /*
     * Dispatch the command.
     */

  if (last_command != NULL) free_string(last_command);
  if (!ch->in_room) sprintf(log_buf, "%s %s BY %s", cmd_table[cmd].name,argument,ch->name);
  else sprintf(log_buf, "%s %s BY %s in %d", cmd_table[cmd].name,argument,ch->name,ch->in_room->vnum);
  last_command = str_dup(log_buf);

  cmd_done = FALSE;
  (*cmd_table[cmd].do_fun)(ch, argument);
  cmd_done = TRUE;

    if (string_count < nAllocString)
    {
       sprintf(memcheck, "Memcheck : Increase in strings :: %s : %s", ch->name, buf) ;
       //log_string_sil(memcheck);
       wiznet (NULL, WIZ_DEBUG, LEVEL_IMPLEMENTOR , memcheck );
    }

    if (perm_count < nAllocPerm)
    { 
	sprintf(memcheck,"Memcheck : Increase in perms :: %s : %s", ch->name, buf) ;
	//log_string_sil(memcheck);
        wiznet (NULL, WIZ_DEBUG, LEVEL_IMPLEMENTOR, memcheck);
    }
    tail_chain( );

    return;
}

/*
 * Return true if an argument is completely numeric.
 */
bool is_number( char *arg )
{
    if ( *arg == '\0' )
	return FALSE;

    for ( ; *arg != '\0'; arg++ )
    {
        if (!isdigit(*arg) && *arg != '-' && *arg != '.')
	    return FALSE;
    }

    return TRUE;
}



/*
 * Given a string like 14.foo, return 14 and 'foo'
 */
int number_argument( char *argument, char *arg )
{
    char *pdot;
    int number;
    
    for ( pdot = argument; *pdot != '\0'; pdot++ )
    {
	if ( *pdot == '.' )
	{
	    *pdot = '\0';
	    number = atoi( argument );
	    *pdot = '.';
	    strcpy( arg, pdot+1 );
	    return number;
	}
    }

    strcpy( arg, argument );
    return 1;
}



/*
 * Pick off one argument from a string and return the rest.
 * Understands quotes.
 */
char *one_argument( char *argument, char *arg_first )
{
    char cEnd;

    while ( isspace(*argument) )
	argument++;

    cEnd = ' ';
    if ( *argument == '\'' || *argument == '"' )
	cEnd = *argument++;

    while ( *argument != '\0' )
    {
	if ( *argument == cEnd )
	{
	    argument++;
	    break;
	}
	*arg_first = LOWER(*argument);
	arg_first++;
	argument++;
    }
    *arg_first = '\0';

    while ( isspace(*argument) )
	argument++;

    return argument;
}

/* Syntax is:
disable - shows disabled commands
disable <command> - toggles disable status of command
*/
void do_disable (CHAR_DATA *ch, char *argument)
{
        char arg[MSL];
        int i;
        DISABLED_DATA *p,*q;
        char buf[MSL];
                argument=one_argument(argument,arg);
        if (IS_NPC(ch))
        {
                send_to_char ("RETURN first.\n\r",ch);
                return;
        }

        if (!arg[0]) /* Nothing specified. Show disabled commands. */
        {
                if (!disabled_first) /* Any disabled at all ? */
                {
                        send_to_char ("There are no commands disabled.\n\r",ch);
                        return;
                }

                send_to_char ("Disabled commands:\n\r",ch);
                sprintf(buf,"%-12s%-5s %-12s%-24s\n\r",
                "Command","Level","Disabled By","Reason");
                stc(buf,ch);

                for (p = disabled_first; p; p = p->next)
                {
                        sprintf (buf, "%-12s%5d %-12s%-24s\n\r",p->command->name, p->level, p->disabled_by,p->reason==NULL||p->reason[0]=='\0'?"None Given":p->reason);
                        send_to_char (buf,ch);
                }
                return;
        }

        /* command given */

        /* First check if it is one of the disabled commands */
        for (p = disabled_first; p ; p = p->next)
                if (!str_cmp(arg, p->command->name))
                        break;

        if (p) /* this command is disabled */
        {
        /* Optional: The level of the imm to enable the command must equal or exceed level
           of the one that disabled it */

//                if (get_trust(ch) < p->level)
//                {
//                        send_to_char ("This command was disabled by a higher power.\n\r",ch);
//                        return;
//                }

                /* Remove */

                if (disabled_first == p) /* node to be removed == head ? */
                        disabled_first = p->next;
                else /* Find the node before this one */
                {
                        for (q = disabled_first; q->next != p; q = q->next); /* empty for */
                        q->next = p->next;
                }

                free_string (p->disabled_by); /* free name of disabler */
                free_mem (p,sizeof(DISABLED_DATA)); /* free node */

                save_disabled(); /* save to disk */
                send_to_char ("Command enabled.\n\r",ch);
        }
        else /* not a disabled command, check if that command exists */
        {
                /* IQ test */
                if (!str_cmp(arg,"disable"))
                {
                        send_to_char ("You cannot disable the disable command.\n\r",ch);
                        return;
                }

                /* Search for the command */
                for (i = 0; cmd_table[i].name[0] != '\0'; i++)
                        if (!str_cmp(cmd_table[i].name, arg))
                                break;

                /* Found? */
                if (cmd_table[i].name[0] == '\0')
                {
                        send_to_char ("No such command.\n\r",ch);
                        return;
                }

                /* Can the imm use this command at all ? */
                if (cmd_table[i].level > get_trust(ch))
                {
                        send_to_char ("You dot have access to that command; you cannot disable it.\n\r",ch);
                        return;
                }

                /* Disable the command */

                p = alloc_mem (sizeof(DISABLED_DATA));

                p->command = &cmd_table[i];
                p->disabled_by = str_dup (ch->name); /* save name of disabler */
                p->level = get_trust(ch); /* save trust */
                p->next = disabled_first;
                p->reason=str_dup(argument);
                disabled_first = p; /* add before the current first element */

                send_to_char ("Command disabled.\n\r",ch);
                save_disabled(); /* save to disk */
        }
}

/* Check if that command is disabled 
   Note that we check for equivalence of the do_fun pointers; this means
   that disabling 'chat' will also disable the '.' command
*/   
char *disabled_reason(const struct cmd_type *command)
{
    DISABLED_DATA *p;
    for (p=disabled_first;p;p=p->next){
        if(p->command->do_fun==command->do_fun){
        return p->reason?p->reason:"None Given";}}
        return NULL;
}

bool check_disabled (const struct cmd_type *command)
{
	DISABLED_DATA *p;
	
	for (p = disabled_first; p ; p = p->next)
		if (p->command->do_fun == command->do_fun)
			return TRUE;

	return FALSE;
}

/* Load disabled commands */
void load_disabled()
{
	FILE *fp;
	DISABLED_DATA *p;
	char *name;
	int i;
	
	disabled_first = NULL;
	
	fp = fopen (DISABLED_FILE, "r");
	
	if (!fp) /* No disabled file.. no disabled commands : */
		return;
		
	name = fread_word (fp);
	
	while (str_cmp(name, END_MARKER)) /* as long as name is NOT END_MARKER :) */
	{
		/* Find the command in the table */
		for (i = 0; cmd_table[i].name[0] ; i++)
			if (!str_cmp(cmd_table[i].name, name))
				break;
				
		if (!cmd_table[i].name[0]) /* command does not exist? */
		{
			bug ("Skipping uknown command in " DISABLED_FILE " file.",0);
			fread_number(fp); /* level */
			fread_word(fp); /* disabled_by */
			fread_string(fp); /* RREASSONN */
		}
		else /* add new disabled command */
		{
			p = alloc_mem(sizeof(DISABLED_DATA));
			p->command = &cmd_table[i];
			p->level = fread_number(fp);
			p->disabled_by = str_dup(fread_word(fp)); 
                        p->reason=str_dup(fread_string(fp));
			p->next = disabled_first;
			
			disabled_first = p;

		}
		
		name = fread_word(fp);
	}

	fclose (fp);		
}

/* Save disabled commands */

void save_disabled()
{
	FILE *fp;
	DISABLED_DATA *p;
	
	if (!disabled_first) /* delete file if no commands are disabled */
	{
		unlink (DISABLED_FILE);
		return;
	}
	
	fp = fopen (DISABLED_FILE, "w");
	
	if (!fp)
	{
		bug ("Could not open " DISABLED_FILE " for writing",0);
		return;
	}
	
	for (p = disabled_first; p ; p = p->next)
		fprintf (fp, "%s %d %s %s~\n", p->command->name, p->level, p->disabled_by,p->reason);
		
	fprintf (fp, "%s\n",END_MARKER);
		
	fclose (fp);
}

/* itoa, ltoa, and _ultoa are all (C) DJ Delorie and can be gotten from
   http://www.koders.com/c/fid5F9B1CF12E947E5030A132D309A367C5CCB671CE.aspx
   DJ's website is found at http://www.delorie.com/ for those wanting more information */
    

char *itoa(int value, char *string, int radix)
{
  char tmp[33];
  char *tp = tmp;
  int i;
  unsigned v;
  int sign;
  char *sp;

  if (radix > 36 || radix <= 1)
  {
    return 0;
  }

  sign = (radix == 10 && value < 0);
  if (sign)
    v = -value;
  else
    v = (unsigned)value;
  while (v || tp == tmp)
  {
    i = v % radix;
    v = v / radix;
    if (i < 10)
      *tp++ = i+'0';
    else
      *tp++ = i + 'a' - 10;
  }

  if (string == 0)
    string = (char *)malloc((tp-tmp)+sign+1);
  sp = string;

  if (sign)
    *sp++ = '-';
  while (tp > tmp)
    *sp++ = *--tp;
  *sp = 0;
  return string;
}

char *ltoa(long value, char *string, int radix)
{
  char tmp[33];
  char *tp = tmp;
  long i;
  unsigned long v;
  int sign;
  char *sp;

  if (radix > 36 || radix <= 1)
  {
    return 0;
  }

  sign = (radix == 10 && value < 0);
  if (sign)
    v = -value;
  else
    v = (unsigned long)value;
  while (v || tp == tmp)
  {
    i = v % radix;
    v = v / radix;
    if (i < 10)
      *tp++ = i+'0';
    else
      *tp++ = i + 'a' - 10;
  }

  if (string == 0)
    string = (char *)malloc((tp-tmp)+sign+1);
  sp = string;

  if (sign)
    *sp++ = '-';
  while (tp > tmp)
    *sp++ = *--tp;
  *sp = 0;
  return string;
}

char *_ultoa(unsigned long value, char *string, int radix)
{
  char tmp[33];
  char *tp = tmp;
  long i;
  unsigned long v = value;
  char *sp;

  if (radix > 36 || radix <= 1)
  {
    return 0;
  }

 
  while (v || tp == tmp)
  {
    i = v % radix;
    v = v / radix;
    if (i < 10)
      *tp++ = i+'0';
    else
      *tp++ = i + 'a' - 10;
  }

  if (string == 0)
    string = (char *)malloc((tp-tmp)+1);
  sp = string;

 
  while (tp > tmp)
    *sp++ = *--tp;
  *sp = 0;
  return string;
}