diff options
Diffstat (limited to 'src/client/targets.cc')
-rw-r--r-- | src/client/targets.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/client/targets.cc b/src/client/targets.cc index 0bec6c5..c634557 100644 --- a/src/client/targets.cc +++ b/src/client/targets.cc @@ -53,6 +53,21 @@ bool is_valid_hud_target(core::Entity *entity) } } +bool is_valid_map_target(core::Entity *entity) +{ + if (entity->serverside()) { + return false; + } else if (entity == core::localcontrol()) { + return false; + } else if (entity->flag_is_set(core::Entity::ShowOnMap)) { + return true; + } else if (entity == core::localplayer()->mission_target()) { + return true; + } else { + return false; + } +} + core::Entity* current() { return current_target; @@ -358,7 +373,7 @@ void frame() } // find the current target - if (!core::localplayer()->view() && core::localcontrol() && is_valid_hud_target(entity)) { + if (!core::localplayer()->view() && core::localcontrol() && (is_valid_hud_target(entity) || is_valid_map_target(entity))) { if (entity->id() == current_target_id) { current_target = entity; |