/* Benedick's Airplane */ inherit "std/container.c"; string str, name; void setup() { add_alias("airplane"); add_alias("plane"); set_short("An airplane"); } string long() { if(environment(this_player()) != this_object()) return "You are looking at an airplane. Be afraid."; return "You are inside an airplane. Through the windows you see " + (string)environment(this_object())->long(); } void init() { ::init(); add_action("go","fly"); add_action("enter","enter"); add_action("out","out"); add_action("view","view"); } int view() { name = capitalize(this_player()->query_name()); if(environment(this_player()) != this_object()) return 0; write("Through the windows you see " + (string)environment(this_object())->long()); tell_room(environment(this_player()),this_player()->query_cap_name()+ " peers out the windows.\n",TP); tell_room(environment(this_object()),name + " peers at you through the windows of the airplane.\n"); return 1; } int out() { name = capitalize(this_player()->query_name()); if(environment(this_player()) != this_object()) return 0; write("You exit the airplane.\n"); tell_room(environment(this_object()),name + " emerges from the airplane.\n"); tell_room(environment(this_player()),this_player()->query_cap_name()+ " exits the airplane.\n",TP); this_player()->move(environment(this_object())); return 1; } int enter(string str) { name = capitalize(this_player()->query_name()); if(str == "airplane" || str == "plane") { write("You enter the airplane.\n"); this_player()->move(this_object()); tell_room(environment(this_player()),this_player()->query_cap_name()+ " enters the airplane.\n",TP); tell_room(environment(this_object()),name + " enters the airplane.\n"); write("Through the windows you see " + environment(this_object())->long()); return 1; } else { return 0; } } int go(string str) { string *dirs; int t; dirs = environment(this_object())->query_dest_dir(); for (t=0; t<sizeof(dirs); t+=2) { if (dirs[t]==str) { tell_room(environment(this_object()),"There is a great roar "+ "and rush of air as the airplane flies "+str+".\n"); move(dirs[t+1]); t=sizeof(dirs); tell_room(environment(this_object()),"An airplane flies in " + "with a great roar!\n"); } } write("You man the controls and fly the plane "+ str +".\n"); tell_room(environment(this_player()),this_player()->query_cap_name()+ "mans the controls and flies " + str + ".\n",TP); write ("Through the windows you see " + (string)environment(this_object())->long()); tell_room(environment(this_player()),"Through the windows you see "+ (string)environment(this_object())->short(),TP); return 1; }