60 lines
1.1 KiB
C
60 lines
1.1 KiB
C
#include <lib.h>
|
|
#include <daemons.h>
|
|
#include ROOMS_H
|
|
|
|
inherit LIB_FLOW;
|
|
|
|
void create() {
|
|
::create();
|
|
set_heart_beat(1);
|
|
SetDoorStopped(0);
|
|
enable_commands();
|
|
set_heart_beat(1);
|
|
SetHBOverride(1);
|
|
}
|
|
|
|
void init(){
|
|
::init();
|
|
}
|
|
|
|
void heart_beat(){
|
|
::heart_beat();
|
|
set_heart_beat(1);
|
|
}
|
|
|
|
int GetMapper(){
|
|
return 1;
|
|
}
|
|
|
|
int GetPressure(){
|
|
return 5;
|
|
}
|
|
|
|
int eventMove(mixed dest){
|
|
int ret;
|
|
string *avoids = ({ "/domains/town/virtual/space",
|
|
"/domains/town/virtual/surface",
|
|
"/domains/town/virtual/sub", "/domains/town/virtual/bottom" });
|
|
object envr = environment();
|
|
string location, sdest;
|
|
|
|
if(objectp(dest)) sdest = base_name(dest);
|
|
else sdest = dest;
|
|
foreach(mixed avoid in avoids){
|
|
if(!strsrch(sdest, avoid)){
|
|
this_object()->eventDestruct();
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(envr){
|
|
if(clonep(envr)) location = file_name(envr);
|
|
else location = base_name(envr);
|
|
}
|
|
|
|
if(location) this_object()->SetProperty("LastLocation", location);
|
|
ret = ::eventMove(dest);
|
|
return ret;
|
|
}
|
|
|