#include <phantasmal/phrase.h>
#include <phantasmal/map.h>
#include <phantasmal/log.h>
#include <phantasmal/exit.h>
#include <phantasmal/lpc_names.h>
inherit unq DTD_UNQABLE;
inherit ext EXIT;
#define PHR(x) PHRASED->new_simple_english_phrase(x)
static void create(varargs int clone) {
ext::create(clone);
unq::create(clone);
if(clone) {
bdesc = nil;
ldesc = nil;
edesc = nil;
}
}
void destructed(int clone, varargs int looped) {
object exit, exit2, room;
if(clone) {
exit = this_object();
room = exit->get_from_location();
EXITD->remove_exit(room, exit);
unq::destructed(clone);
ext::destructed(clone);
}
}
void upgraded(varargs int clone) {
ext::upgraded(clone);
unq::upgraded(clone);
}
string to_unq_text(void) {
return " ~newexit{\n" + to_unq_flags() + "}\n";
}
void from_dtd_unq(mixed* unq) {
int ctr;
if(unq[0] != "newexit")
error("Doesn't look like exit data!");
for (ctr = 0; ctr < sizeof(unq[1]); ctr++) {
from_dtd_tag(unq[1][ctr][0], unq[1][ctr][1]);
}
}
/* function which returns an appropriate error message if this object
* isn't a container or isn't open
*/
private string is_open_cont() {
if (!is_container()) {
return "That object isn't a container!";
}
if (!is_open()) {
return "That object isn't open!";
}
return nil;
}
/*
* Overrides of OBJECT stuff
*/
object get_brief(void) {
object desc;
desc = ::get_brief();
if(!desc)
return PHRASED->new_simple_english_phrase("exit");
return desc;
}
object get_look(void) {
object desc;
desc = ::get_brief();
if(!desc)
return EXITD->get_name_for_dir(direction);
return desc;
}
string *get_nouns(int locale) {
string *tmp, loc_str;
object dir;
dir = EXITD->get_name_for_dir(direction);
tmp = ::get_nouns(locale);
loc_str = dir->get_content_by_lang(locale);
if(loc_str)
return (tmp ? tmp : ({ })) + ({ loc_str });
return tmp;
}