/*Made by Aphex on Fri 21 Nov 97*/ /* Fixed to handle goto'ing of room files by Fudge. */ void main( string str ) { object usr; object player; usr = USER_D->find_user(str); if (usr != 0){ if (this_player()->query_environment() != usr->query_player()->query_environment()){ this_player()->query_environment()->tell_room( this_player(), capitalize(this_player()->query_name()) + " disappears.\n"); player = usr->query_player(); this_player()->move(player->query_environment()->base_name()); this_player()->query_environment()->tell_room( this_player(), capitalize(this_player()->query_name()) + " appears from nowhere.\n"); this_player()->do_look(); } else { out( "Going somewhere?\n"); } } else { if( file_exists( normalize_path( str, this_player()->query_env( "cwd" ) ) + ".c" ) > 0 ) { this_environment()->event( "body_leave", this_player() ); this_environment()->tell_room( this_player(), capitalize(this_player()->query_name()) + " disappears.\n" ); if( !this_player()->move( normalize_path( str, this_player()->query_env( "cwd" ) ) ) ) { write( "\nConstruction blocks your path.\n" ); } this_player()->do_look( 0 ); this_environment()->event( "body_enter", this_player() ); this_environment()->tell_room( this_player(), capitalize(this_player()->query_name()) + " appears.\n" ); } else { write( "Unable to find " + str + ".\n" ); } } }