/**
* Print out a cute little map if one exists.
* @author Pinkfish
* @started Wed Jul 17 23:51:41 PDT 2002
*/
inherit "/cmds/base";
int do_map() {
string map;
int* coords;
object env;
string handler;
env = environment(this_player());
if (!env) {
add_failed_mess("You are somewhere not on any map.\n");
return 0;
}
if (this_player()->query_blinded()) {
add_failed_mess("You are blind and cannot see.\n");
return 0;
}
switch(this_player()->check_dark(environment(this_player())->query_light()))
{
case -2:
case -1:
return add_failed_mess("It is too dark to see anything.\n");
case 2:
case 1:
return add_failed_mess("It is too bright to see anything.\n");
}
coords = env->query_terrain_coords();
handler = env->query_terrain_handler();
if (!coords || !handler) {
add_failed_mess("You can only do this in a terrain.\n");
return 0;
}
map = handler->query_player_map_template(coords[0], coords[1], coords[2],
env->query_visibility(env));
if (!map) {
add_failed_mess("There is no map available here.\n");
return 0;
}
write(map);
return 1;
}
mixed* query_patterns() {
return ({ "", (: do_map :) });
}