/* * Process_input * grabbed from RoD and lobotomized by Baldrick dec '97 */ // Skullslayer - define MAX_STRLEN to stop the driver barfing as it tries // to interpret the command // Skullslayer - took out random error messages, "What?" will do :) #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", \ "r" : "read", \ "p" : "post", \ "l" : "look", \ ]) nomask static mixed process_input( string ss ) { string verb, t, tmp ; //string tmp ; reset_eval_cost() ; if( !ss || ss == "" ) return "" ; // Taniwha crash workround. if( strsrch(ss,"%^") == 0) return ""; while( ss[(strlen( ss ) - 1)..(strlen( ss ) - 1)] == " " ) ss = ss[0..(strlen( ss ) - 2)] ; if( !ss || ss == "" ) return "" ; if( strlen(ss) > MAX_STRLEN ) { ss = ss[ 0..MAX_STRLEN ]; tell_object(this_object(),"Command too long - processing anyway.\n"); } if( ss[0] == '\'' ) ss = "say "+ ss[1..(strlen( ss ) - 1)] ; if( ss[0] == ':' ) ss = "emote "+ ss[1..(strlen( ss ) - 1)] ; if( ss[0] == '\"' ) ss = "lsay "+ ss[1..(strlen( ss ) - 1)] ; if( ss[0] == ';' ) ss = "parse "+ ss[1..(strlen( ss ) - 1)] ; 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; } action_check( ss ); if( lower_check( ss ) ) { return 1; } return 1; }