53 lines
2.2 KiB
C
53 lines
2.2 KiB
C
string query_door(object what, string direction){
|
|
string door = what->GetDoor(direction);
|
|
object puerta;
|
|
if(!door) return "#";
|
|
else {
|
|
puerta = load_object(door);
|
|
if(!puerta) return "#";
|
|
if(puerta->GetClosed()) return "O";
|
|
return "#";
|
|
}
|
|
return " ";
|
|
}
|
|
|
|
varargs string simple_map(mixed arg){
|
|
string *exits;
|
|
string *extra_desc = ({});
|
|
string ret = "";
|
|
string line0 = "---------\n";
|
|
string line6 = "---------\n";
|
|
string line1 = "| |\n";
|
|
string line2, line3, line4, line5;
|
|
line2 = line3 = line4 = line5 = line1;
|
|
if(!arg && !this_player()) return "";
|
|
if(!arg) arg = environment(this_player());
|
|
if(stringp(arg)) arg = load_object(arg);
|
|
if(living(arg) || arg->GetMount()) arg = environment(arg);
|
|
if(!arg) return "";
|
|
exits = arg->GetExits();
|
|
if(!exits || !sizeof(exits)) return "";
|
|
line3[4..4] = "*";
|
|
|
|
foreach(string element in exits){
|
|
switch(element){
|
|
case "north" : line1[4..4] = query_door(arg, element); line2[4..4] = "|";break;
|
|
case "south" : line5[4..4] = query_door(arg, element); line4[4..4] = "|";break;
|
|
case "east" : line3[7..7] = query_door(arg, element); line3[5..5] = "-";line3[6..6] = "-";break;
|
|
case "west" : line3[1..1] = query_door(arg, element); line3[2..2] = "-";line3[3..3] = "-";break;
|
|
case "northeast" : line1[7..7] = query_door(arg, element); line2[6..6] = "/";break;
|
|
case "northwest" : line1[1..1] = query_door(arg, element); line2[2..2] = "\\";break;
|
|
case "southeast" : line5[7..7] = query_door(arg, element); line4[6..6] = "\\";break;
|
|
case "southwest" : line5[1..1] = query_door(arg, element); line4[2..2] = "/";break;
|
|
//case "up" : extra_desc += ({ "up" });break;
|
|
//case "down" : extra_desc += ({ "down" });break;
|
|
default : extra_desc += ({ element });break;
|
|
}
|
|
}
|
|
if(sizeof(extra_desc)){
|
|
line3 = replace_string(line3,"\n"," Also available: "+item_list(extra_desc)+".\n");
|
|
}
|
|
ret = line0 + line1 + line2 + line3 + line4 + line5 +line6;
|
|
return ret;
|
|
}
|