#define EXTRA_MOVE /* nothing */
string name,short_desc,long_desc,dir1,dir2,dest;
int id(string s) {
if(!s) return 0;
return(s==name);
}
string short() { return short_desc; }
void long() { write(long_desc); }
void init() {
if(name) add_action("enter","enter");
if(dir1) add_action("go_room",dir1);
if(dir2) add_action("go_room",dir2);
}
void set_name(string s) { name=s; }
void set_short(string s) { short_desc=s; }
void set_long(string s) { if(s) long_desc=s; }
void set_dirs(string d1,string d2) {
if(d1) {
dir1=d1;
dir2=d2;
}
}
void set_dest(string s) { if(s) dest=s; }
int enter(string s) {
if(!id(s)) return 0;
EXTRA_MOVE
this_player()->move_player("into the "+name+"#"+dest);
return 1;
}
int go_room() {
EXTRA_MOVE
this_player()->move_player(dir1+"#"+dest);
return 1;
}
void reset(int arg) {
if(arg) return;
dest="room/church";
long_desc="You see nothing special.\n";
}