From b4338a00f5d85699e599307f09d502e3cbd621dc 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/religion.cc | 3 +-- crawl-ref/source/spl-cast.cc | 16 ++++++++++------ 6 files changed, 29 insertions(+), 18 deletions(-) diff --git a/crawl-ref/docs/options_guide.txt b/crawl-ref/docs/options_guide.txt index 2a48a26872..2cc76e3926 100644 --- a/crawl-ref/docs/options_guide.txt +++ b/crawl-ref/docs/options_guide.txt @@ -582,6 +582,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 034816f925..4d5d853b7d 100644 --- a/crawl-ref/settings/init.txt +++ b/crawl-ref/settings/init.txt @@ -117,6 +117,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 642f92eb5d..db4cbb7848 100644 --- a/crawl-ref/source/directn.cc +++ b/crawl-ref/source/directn.cc @@ -875,13 +875,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; } } @@ -893,11 +892,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 0a61a61c38..eeb349a65b 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -840,6 +840,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; @@ -3004,6 +3005,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/religion.cc b/crawl-ref/source/religion.cc index 49d6a06466..72d50c404e 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -5155,8 +5155,7 @@ static bool _jiyva_retribution() { const god_type god = GOD_JIYVA; - if (you.is_undead || one_chance_in(4) - || player_mutation_level(MUT_MUTATION_RESISTANCE) == 3) + if (you.is_undead || one_chance_in(4)) { const monster_type slimes[] = { MONS_GIANT_EYEBALL, MONS_EYE_OF_DRAINING, diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index 645b3d4edf..e17370cdeb 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -671,7 +671,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) { @@ -734,13 +734,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