/* * Process_input * grabbed from RoD and lobotomized by Baldrick dec '97 * included at the bottom of player.c */ // Skullslayer - define MAX_STRLEN to stop the driver barfing as it tries // to interpret the command #define MAX_STRLEN 900 #define EXPANSION ([ \ "u" : "up", \ "d" : "down", \ "n" : "north", \ "s" : "south", \ "e" : "east", \ "w" : "west", \ "ne" : "northeast", \ "nw" : "northwest", \ "se" : "southeast", \ "sw" : "southwest", \ ]) //inherit "/global/alias"; static int exec_alias(string verb, string args); nomask static mixed process_input( string ss ) { string verb, t, tmp ; mixed tmp2; reset_eval_cost() ; if ( !strlen(ss) ) return ""; // Taniwha crash workround if( !strsrch(ss,"%^") ) return ""; while( ss[<1] == ' ' ) ss = ss[0..<2]; if ( !strlen(ss) ) return ""; if( strlen(ss) > MAX_STRLEN ) { ss = ss[ 0..MAX_STRLEN ]; tell_object(this_object(),"Command too long - processing anyway.\n"); } switch( ss[0] ) { case '\'' : ss = "say "+ ss[1..<1]; break; case ':' : ss = "emote "+ ss[1..<1]; break; case '\"' : ss = "lsay "+ ss[1..<1]; break; case ';' : ss = "parse "+ ss[1..<1]; break; } if( (tmp = EXPANSION[ss]) ) ss = tmp ; /* Ok, my stuff: (Baldrick) */ /* First the aliases. */ sscanf(ss, "%s %s", verb, t); if(!verb) verb = ss; if ( exec_alias(verb, t) ) { return 1; } //if( action_check( ss ) ) { return 1; } tmp2 = this_object()->action_check( ss ); //tc("tmp2: "+identify(tmp2)); if(tmp2) return 1; //if(this_object()->action_check( ss )) return 1; //if( lower_check( ss ) ) { return 1; } this_object()->lower_check( ss ); return 1; }