diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-05-04 19:20:28 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-05-04 19:20:28 +0000 |
commit | c68ef2df6780db4bd3b16a50de06f7f528a31336 (patch) | |
tree | 1afdaad186f5db466de1c7555e8e2b301883e280 /crawl-ref/source/directn.cc | |
parent | 6945b9d587b894371ba4d6d99f9ee1b8ee3beb86 (diff) | |
download | crawl-ref-c68ef2df6780db4bd3b16a50de06f7f528a31336.tar.gz crawl-ref-c68ef2df6780db4bd3b16a50de06f7f528a31336.zip |
* Some more tweaks to the spellcasting interface.
* Colour items out of range darkgrey, like we do for floor/monsters.
* Fix berserk monsters choosing one of the nearest monsters randomly.
(Seriously, I must have been half asleep when I wrote that.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9733 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/directn.cc')
-rw-r--r-- | crawl-ref/source/directn.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc index 6ce2cd4fb0..4a98350a56 100644 --- a/crawl-ref/source/directn.cc +++ b/crawl-ref/source/directn.cc @@ -881,13 +881,22 @@ range_view_annotator::range_view_annotator(int range) { // Save and replace grid colours. -1 means unchanged. orig_colours.init(-1); + orig_item_colours.init(-1); const coord_def offset(ENV_SHOW_OFFSET, ENV_SHOW_OFFSET); for (radius_iterator ri(you.pos(), LOS_RADIUS); ri; ++ri) { if (grid_distance(you.pos(), *ri) > range) { - orig_colours(*ri - you.pos() + offset) = env.grid_colours(*ri); + const coord_def showpos = *ri - you.pos() + offset; + + orig_colours(showpos) = env.grid_colours(*ri); env.grid_colours(*ri) = DARKGREY; + + if (igrd(*ri) != NON_ITEM) + { + orig_item_colours(showpos) = mitm[igrd(*ri)].colour; + mitm[igrd(*ri)].colour = DARKGREY; + } } } @@ -927,9 +936,15 @@ void range_view_annotator::restore_state() for (c.x = 0; c.x < ENV_SHOW_DIAMETER; ++c.x) for (c.y = 0; c.y < ENV_SHOW_DIAMETER; ++c.y) { - const int old_colour = orig_colours(c); + const coord_def pos = you.pos() + c - offset; + + int old_colour = orig_colours(c); if (old_colour != -1) - env.grid_colours(you.pos() + c - offset) = old_colour; + env.grid_colours(pos) = old_colour; + + old_colour = orig_item_colours(c); + if (old_colour != -1 && igrd(pos) != NON_ITEM) + mitm[igrd(pos)].colour = old_colour; } // Restore monster colours. |