diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-11-16 17:48:53 +0100 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-11-16 20:32:25 +0100 |
commit | 2c9b3ce286f5c274cb0348253259bcca24d967a3 (patch) | |
tree | e1ac204d887238915b3fd8a2755b66973fd8bc9f /crawl-ref/source/directn.cc | |
parent | 5059f548248efbc905c16a7cfbaa41d98c30dcb0 (diff) | |
download | crawl-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.cc | 21 |
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) |