/* command, trial out by Turrican for a commands daemon. */
#include <language.h>
#include <player.h>
#include <drinks.h>
inherit COMMAND_BASE;
inherit SPEECH_BASE;
mixed cmd(string arg) {
string word, s1, cur_lang;
if (!arg)
arg = "";
if (arg == "" || arg == " ")
return notify_fail("Syntax: say <something>\n");
if(TP->query_gagged()) {
return notify_fail("You have been gagged! You will not be able "
"to say things again until the gag is removed. Perhaps you should "
"talk to a creator about this.\n");
}
cur_lang = TP->query_current_language();
if (!LANGUAGE_HAND->query_language_spoken(cur_lang))
return notify_fail(capitalize(cur_lang)+" is not a spoken language.\n");
if ( !interactive( this_player() ) ) {
arg = (string)this_player()->convert_message( arg );
arg = (string)this_player()->fit_message( arg );
}
word = query_word_type(arg);
if(TP->query_volume(D_ALCOHOL))
arg = drunk_speech(arg);
// General speech modifications (curses, etc)
s1 = TP->mangle_speech(arg);
if (stringp(s1))
arg = s1;
arg = de_eight(arg);
TP->remove_hide_invis( "hiding" );
if(!environment(TP))
write("You are in limbo, noone can hear you.\n");
TP->comm_event(environment(TP), "person_say",
"$one_short:"+file_name(TP)+"$ "+
"$V$0=" + word + "s," + word + "$V$: ", arg, cur_lang);
if (cur_lang != "common")
word += " in "+cur_lang;
my_mess("You " + word + ": ", arg);
TP->add_say_history( "You " + word + ": ", arg );
TP->adjust_time_left(-5);
return 1;
}