diff options
Diffstat (limited to 'src/client/targets.cc')
-rw-r--r-- | src/client/targets.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/client/targets.cc b/src/client/targets.cc index 3ccea8a..c544e73 100644 --- a/src/client/targets.cc +++ b/src/client/targets.cc @@ -45,6 +45,8 @@ bool is_legal_target(core::Entity *entity) { if (entity->serverside()) { return false; + } else if (!ext_render(entity)) { + return false; } else if (entity == core::localplayer()->mission_target()) { return true; } else if (entity == core::localcontrol()) { @@ -307,17 +309,17 @@ void render_entity_sound(core::Entity *entity) return; } - if (!ext_render(entity) || !ext_render(entity)->visible()) { + if (!ext_render(entity) || (ext_render(entity) && !ext_render(entity)->visible())) { if (ext_sound(entity)) delete ext_sound(entity); return; - } + } else { + if (!ext_sound(entity)) { + new SoundExt(entity); + } - if (!ext_sound(entity)) { - new SoundExt(entity); + ext_sound(entity)->frame(0.0f); } - - entity->extension((size_t) core::Extension::Sound)->frame(0.0f); } |