summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/directn.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/directn.cc')
-rw-r--r--crawl-ref/source/directn.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index e95e57787e..a151b45e99 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -1048,7 +1048,7 @@ void direction(dist& moves, targeting_type restricts,
bool target_unshifted = Options.target_unshifted_dirs;
// Find a default target.
- if (Options.default_target && (mode == TARG_ENEMY || mode == TARG_NOT_SELF))
+ if (Options.default_target && (mode == TARG_ENEMY || mode == TARG_HOSTILE))
{
skip_iter = true; // Skip first iteration...XXX mega-hack
if (you.prev_targ != MHITNOT && you.prev_targ != MHITYOU)
@@ -1056,7 +1056,8 @@ void direction(dist& moves, targeting_type restricts,
const monsters *montarget = &menv[you.prev_targ];
if (you.can_see(montarget)
// not made friendly since then
- && (mode == TARG_NOT_SELF || !mons_friendly(montarget))
+ && (mons_attitude(montarget) == ATT_HOSTILE
+ || mode == TARG_ENEMY && !mons_friendly(montarget))
&& _is_target_in_range(montarget->pos(), range))
{
found_autotarget = true;
@@ -1330,9 +1331,10 @@ void direction(dist& moves, targeting_type restricts,
case CMD_TARGET_CYCLE_TARGET_MODE:
mode = static_cast<targ_mode_type>((mode + 1) % TARG_NUM_MODES);
mprf( "Targeting mode is now: %s",
- (mode == TARG_ANY) ? "any" :
- (mode == TARG_ENEMY) ? "enemies"
- : "friends" );
+ (mode == TARG_ANY) ? "any" :
+ (mode == TARG_ENEMY) ? "enemies" :
+ (mode == TARG_HOSTILE) ? "hostiles"
+ : "friends" );
break;
case CMD_TARGET_PREV_TARGET:
@@ -2004,9 +2006,12 @@ static bool _find_monster( const coord_def& where, int mode, bool need_path,
return (false);
// Now compare target modes.
- if (mode == TARG_ANY || mode == TARG_NOT_SELF)
+ if (mode == TARG_ANY)
return (true);
+ if (mode == TARG_HOSTILE)
+ return (mons_attitude(mon) == ATT_HOSTILE);
+
if (mode == TARG_FRIEND)
return (mons_friendly(mon));