#include <mudlib.h>
#include <terrain.h>
#include <perms.h>
#include <ships.h>
#define DW_PORT "domains/darkwind/wharf/port"
#define DW_HIDDEN_PORT "domains/darkwind/wharf/hidden_port"
inherit "/objects/ships/rooms/ship_room";
void reset(int arg) {
::reset(arg);
if(arg) return;
set_terrain(TER_OUTSIDE);
set_no_teleport(1);
set_light(1);
//Calls to vehicle_room
set_audible_room();
set_listen_to_outside(1);
//Calls to ship_room
set_leave_room();
set_see_outside();
set_no_drop_here();
set_short("The maindeck");
set_long("\
You are on the main deck of the Fairweather. This is small merchantman\n\
built to manoevre ably through the sea lanes and trade with far off\n\
lands. A narrow mast rises from the deck to the crow's nest far above.\n\
Mounted on the mast is a medium-sized square sail that billows and\n\
waves as the wind blows through it. Towards the prow of the ship there\n\
is a small platform with the spar sticking out of it. Towards the stern\n\
is a larger platform, which probably holds the bridge, the command\n\
center of the ship. The sides of the ship are low here, permitting\n\
you to disembark when the ship docks. A small hatch near the starboard\n\
rail provides a way to go below.\n");
add_look("hatch","The hatch is open, allowing you to go below decks.\n");
add_look(({"deck","maindeck"}),"\
The deck is made of long planks of sturdy wood.\n");
add_look("sail","\
The square sail billows at it catches the wind. Rigging extends from\n\
the sail down to the deck, forecastle, and sterncastle.\n");
add_look("mast","\
The mast is located amidship, and stabs up towards the sky.\n");
add_look("rigging","\
The lines which allow the sailors to control the sails.\n");
add_vehicle_exit("fore","forecastle");
add_vehicle_exit("hatch","hold");
add_special_exit("disembark","/path/irrelevant","disembark_func");
set_concealed_exit("disembark",0);
}
string query_exit_path(string sArg) {
string sName;
if(sArg != "disembark") return ::query_exit_path(sArg);
sName = object_name(query_ship_object()->query_vehicle_environment());
if(sName == DW_HIDDEN_PORT) return DW_PORT;
return sName;
}
void init() {
::init();
add_action("stop_func","climb");
add_action("stop_func","aft");
}
status stop_func(string sArg) {
if(query_verb() == "climb" && sArg != "mast") {
notify_fail("Climb what?\n");
return 0;
}
write("A sailor yells at you: \"AY ye lubber. Don't ya be doin' that now.\"\n");
return 1;
}