#define REAL (string)this_player()->query_name(1)
#define NAME (string)this_player()->query_name()
static mixed *door_info, *secret_door_finders;
status guide(string str) {
object ob, tp;
string file;
int i;
object guild_object;
if(guild_object = present("guild_object", this_player())) {
if(guild_object->check_alignment()) {
notify_fail("You are too evil to use your God given powers.\n");
return 0;
}
}
tp = this_player();
door_info = (mixed *)environment(tp)->query_doors();
for(i=0; i<sizeof(door_info); i++) {
if(door_info[i][1] == "trail") {
secret_door_finders = door_info[i][9];
break;
}
}
if(!sizeof(secret_door_finders)) {
notify_fail("You haven't found any wilderness trails here.\n");
return 0;
}
if(member_array(REAL, secret_door_finders) == -1) {
notify_fail("You haven't found any wilderness trails here.\n");
return 0;
}
if(!str) {
notify_fail("Guide who?\n");
return 0;
}
if(!ob = present(str, environment(tp))) {
notify_fail("There is no such person here to guide.\n");
return 0;
}
write("You guide "+ob->short()+" onto the trail...\n");
tell_object(ob, "\n"+NAME+" guides you onto a wilderness trail...\n\n");
file = door_info[i][0];
if(!stringp(file)) {
notify_fail("The trail seems to be blocked with debris.\n");
return 0;
}
ob->move_player("onto the wilderness trail#"+file);
command("trail", tp);
return 1;
}