summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/directn.cc
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-11-16 17:48:53 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-11-16 20:32:25 +0100
commit2c9b3ce286f5c274cb0348253259bcca24d967a3 (patch)
treee1ac204d887238915b3fd8a2755b66973fd8bc9f /crawl-ref/source/directn.cc
parent5059f548248efbc905c16a7cfbaa41d98c30dcb0 (diff)
downloadcrawl-ref-2c9b3ce286f5c274cb0348253259bcca24d967a3.tar.gz
crawl-ref-2c9b3ce286f5c274cb0348253259bcca24d967a3.zip
Simplify out-of-range darkening.
Also fixes the range_view_annotator destructor clobbering option "darken_beyond_range". Options.target_range is now really an option, and called Options.darken_beyond_range. Current darkening range is now stored in crawl_state.darken_range. I can't reproduce SIGHUP retaining darkened range (BR 2151183) (why would it be saved?), so range_view_annotator is not a crawl_exit_hook anymore. crawl_exit_hook is not used anymore, but still present.
Diffstat (limited to 'crawl-ref/source/directn.cc')
-rw-r--r--crawl-ref/source/directn.cc21
1 files changed, 9 insertions, 12 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index ba02499131..8230db5e3e 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -875,24 +875,20 @@ crawl_exit_hook::~crawl_exit_hook()
range_view_annotator::range_view_annotator(int range)
{
- if (range >= 0)
+ if (Options.darken_beyond_range && range >= 0)
{
-#ifndef USE_TILE
- if (Options.target_range != -1)
-#endif
- Options.target_range = range;
+ crawl_state.darken_range = range;
+ viewwindow(false, false);
}
}
range_view_annotator::~range_view_annotator()
{
- restore_state();
- viewwindow(false);
-}
-
-void range_view_annotator::restore_state()
-{
- Options.target_range = 0;
+ if (Options.darken_beyond_range && crawl_state.darken_range >= 0)
+ {
+ crawl_state.darken_range = -1;
+ viewwindow(false, false);
+ }
}
bool _dist_ok(const dist& moves, int range, targ_mode_type mode,
@@ -1668,6 +1664,7 @@ void direction(dist& moves, targetting_type restricts,
if (need_beam_redraw)
{
#ifndef USE_TILE
+ // Clear the old ray.
viewwindow(false, false);
#endif
if (show_beam && have_beam)