summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/directn.cc15
-rw-r--r--crawl-ref/source/initfile.cc6
-rw-r--r--crawl-ref/source/religion.cc3
-rw-r--r--crawl-ref/source/spl-cast.cc16
4 files changed, 22 insertions, 18 deletions
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 <w>Z</w> 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);
}