summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/directn.cc
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-26 15:59:20 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-26 15:59:20 +0000
commit547124b71f53d6b64f31b029a19254c81e1cf7ac (patch)
tree60fa4f0acee116c65e5fafc4ddf40daf23b4fb70 /crawl-ref/source/directn.cc
parent64b430b8e7e9f913af35f3749514968665e15eef (diff)
downloadcrawl-ref-547124b71f53d6b64f31b029a19254c81e1cf7ac.tar.gz
crawl-ref-547124b71f53d6b64f31b029a19254c81e1cf7ac.zip
[2021074] Tiles cursor improvements.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6691 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/directn.cc')
-rw-r--r--crawl-ref/source/directn.cc62
1 files changed, 62 insertions, 0 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index 4e9ce1daf3..22e77a4540 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -1221,6 +1221,68 @@ void direction(dist& moves, targeting_type restricts,
_extend_move_to_edge(moves);
}
+std::string get_terse_square_desc(const coord_def &gc)
+{
+ std::string desc;
+ const char *unseen_desc = "[unseen terrain]";
+ bool is_feature = false;
+ if (gc == you.pos())
+ {
+ desc = you.your_name;
+ }
+ else if (!map_bounds(gc))
+ {
+ desc = unseen_desc;
+ }
+ else if (!see_grid(gc))
+ {
+ if (is_terrain_seen(gc))
+ {
+ desc = feature_description(gc, false, DESC_PLAIN, false);
+ if (!see_grid(gc))
+ {
+ desc = "[" + desc + "]";
+ }
+ is_feature = true;
+ }
+ else
+ {
+ desc = unseen_desc;
+ }
+ }
+ else if (mgrd(gc) != NON_MONSTER)
+ {
+ const monsters &mons = menv[mgrd(gc)];
+
+ if (mons_is_mimic(mons.type) && !(mons.flags & MF_KNOWN_MIMIC))
+ {
+ item_def item;
+ get_mimic_item(&mons, item);
+ desc = item.name(DESC_PLAIN);
+ }
+ else
+ {
+ desc = mons.name(DESC_PLAIN);
+ if (mons.has_base_name())
+ {
+ desc += ", ";
+ desc += mons.base_name(DESC_NOCAP_THE, false);
+ }
+ }
+ }
+ else if (igrd(gc) != NON_ITEM)
+ {
+ desc = mitm[igrd(gc)].name(DESC_PLAIN);
+ }
+ else
+ {
+ desc = feature_description(gc, false, DESC_PLAIN, false);
+ is_feature = true;
+ }
+
+ return desc;
+}
+
void terse_describe_square(const coord_def &c)
{
if (!see_grid(c))