Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/targets.cc')
-rw-r--r--src/client/targets.cc17
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;