#include <drinks.h> #include <player.h> #include <language.h> inherit COMMAND_BASE; string query_whisper_word_type(string str); int check_living( object thing ) { return living( thing ); } mixed cmd( object *others, string last ) { int i; string lang; string type; object *fail; lang = (string)this_player()->query_current_language(); if ( !LANGUAGE_HAND->query_language_spoken( lang ) ) { add_failed_mess( lang +" is not a spoken language.\n" ); return 0; } fail = this_player()->query_ignoring(others); if (sizeof(fail)) { add_failed_mess("You cannot whisper to $I since you are ignoreing " "them.\n", fail); others -= fail; } fail = this_player()->query_ignored_by(others); if (sizeof(fail)) { add_failed_mess("You cannot whisper to $I they are ignoreing " "you.\n", fail); others -= fail; } if ( ( sizeof( others ) == 1 ) && ( others[ 0 ] == this_player() ) ) { add_failed_mess( "You have difficulty getting your lips near "+ "your ear.\n" ); return 0; } this_player()->adjust_time_left( -5 ); others -= ({ this_player() }); if ( !interactive( this_player() ) ) { last = (string)this_player()->convert_message( last ); last = (string)this_player()->fit_message( last ); } if ( this_player()->query_volume( D_ALCOHOL ) ) { last = (string)this_player()->drunk_speech( last ); } i = strlen( last ) - 1; while ( i >= 0 && last[ i ] == ' ' ) { i--; } switch ( last[ i ] ) { case '!' : type = "urgently "; break; case '?' : type = "questioningly "; break; default : type = ""; } last += "%^RESET%^"; #ifdef 0 event( environment( this_player() ), "whisper", (string)this_player()->one_short() +" whispers "+ type, last, others, lang, this_player()); #endif this_player()->do_whisper(environment( this_player() ), "whisper", (string)this_player()->one_short() +" whispers "+ type, last, others, lang, this_player()); write( "You whisper "+ type +"to "+ query_multiple_short( others, "the" ) + ": "+ last +"\n" ); return 1; } /* cmd() */ mixed *query_patterns() { return ({ "<string'message'> to <indirect:living>", (: cmd($1, $4[0]) :), "<indirect:living> <string'message'>", (: cmd($1, $4[1]) :) }); } /* query_patterns() */