From 0a9bc55e9cd63d2badb476ff24d5cb66d4a15950 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sat, 18 Jul 2009 20:29:53 +0000 Subject: Change part of the z/Z handling: * added option darken_beyond_range (defaults to true) * Z doesn't show the spell list anymore git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10278 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/docs/options_guide.txt | 6 ++++++ crawl-ref/settings/init.txt | 1 + crawl-ref/source/directn.cc | 15 +++++---------- crawl-ref/source/initfile.cc | 6 ++++++ crawl-ref/source/spl-cast.cc | 16 ++++++++++------ 5 files changed, 28 insertions(+), 16 deletions(-) diff --git a/crawl-ref/docs/options_guide.txt b/crawl-ref/docs/options_guide.txt index 41badf56e8..9b33332a3d 100644 --- a/crawl-ref/docs/options_guide.txt +++ b/crawl-ref/docs/options_guide.txt @@ -586,6 +586,12 @@ target_unshifted_dirs = false If you use target_unshifted_dirs, default_target will be automatically disabled. +darken_beyond_range = true + If set to true, everything beyond range when targeting will be + coloured grey. Setting this to false will also suppress the brief + flash if there are no visible monsters within range, both for + ASCII and the Tiles version. + 4-c Passive Sightings (detected or remembered entities). ----------------------------------------------------------- diff --git a/crawl-ref/settings/init.txt b/crawl-ref/settings/init.txt index d9062fe584..a28fb2d299 100644 --- a/crawl-ref/settings/init.txt +++ b/crawl-ref/settings/init.txt @@ -119,6 +119,7 @@ drop_filter = useless_item # target_los_first = false # default_target = false # target_unshifted_dirs = true +# darken_beyond_range = false ##### 4-c Passive Sightings ##################### # diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc index 68e1509272..29e53c4a53 100644 --- a/crawl-ref/source/directn.cc +++ b/crawl-ref/source/directn.cc @@ -888,13 +888,12 @@ crawl_exit_hook::~crawl_exit_hook() range_view_annotator::range_view_annotator(int range) { - do_anything = (range >= 0); - - if (do_anything) + if (range >= 0) { - Options.target_range = range; - // Repaint. -// viewwindow(true, false); +#ifndef USE_TILE + if (Options.target_range != -1) +#endif + Options.target_range = range; } } @@ -906,11 +905,7 @@ range_view_annotator::~range_view_annotator() void range_view_annotator::restore_state() { - if (!do_anything) - return; - Options.target_range = 0; - do_anything = false; } bool _dist_ok(const dist& moves, int range, targ_mode_type mode, diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index d3dda61ca3..d38f411eb0 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -850,6 +850,7 @@ void game_options::reset_options() target_oos = true; target_los_first = true; target_unshifted_dirs = false; + target_range = 0; // -1 -> grey out targets out of range dump_kill_places = KDO_ONE_PLACE; dump_message_count = 7; @@ -3016,6 +3017,11 @@ void game_options::read_option_line(const std::string &str, bool runscript) if (target_unshifted_dirs) default_target = false; } + else if (key == "darken_beyond_range") + { + if (!_read_bool(field, target_range != -1)) + target_range = -1; + } else if (key == "drop_mode") { if (field.find("multi") != std::string::npos) diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index 61be1b39c5..ff54ef83dd 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -690,7 +690,7 @@ bool cast_a_spell(bool check_range) const int minRange = _get_dist_to_nearest_monster(); - int keyin = (check_range ? 0 : '?'); + int keyin = 0; while (true) { @@ -753,13 +753,17 @@ bool cast_a_spell(bool check_range) { // Abort if there are no hostiles within range, but flash the range // markers for about half a second. - Options.target_range = _calc_spell_range(spell); - viewwindow(true, false); mpr("There are no visible monsters within range! (Use Z to " "cast anyway.)"); - delay(500); - Options.target_range = 0; - viewwindow(true, false); + + if (Options.target_range != -1) + { + Options.target_range = _calc_spell_range(spell); + viewwindow(true, false); + delay(500); + Options.target_range = 0; + viewwindow(true, false); + } return (false); } -- cgit v1.2.3-54-g00ecf