Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/renderext.cc')
-rw-r--r--src/render/renderext.cc22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/render/renderext.cc b/src/render/renderext.cc
index 6a59870..b0462d4 100644
--- a/src/render/renderext.cc
+++ b/src/render/renderext.cc
@@ -107,20 +107,34 @@ void RenderExt::frame(float elapsed)
if ((entity()->type() == core::Entity::Controlable)) {
if (static_cast<core::EntityDynamic *>(entity())->state() == core::Entity::Docked) {
state_visible = false;
+ return;
}
}
if (state_visible && entity()->model()) {
- float r = entity()->model()->radius();
- math::clamp(r, 1.0f, farplane / drawfxdistance);
- if (distance() < drawfxdistance * r) {
+
+ if (distance() < core::range::fxdistance) {
// entity within detail range
state_visible = true;
state_detailvisible = true;
- } else if ((distance() < drawdistance * r) && (distance() < core::range::max)) {
+
+ } else if (distance() < core::range::maxvisible) {
// entity within drawing distance, outside detail range
state_visible = true;
state_detailvisible = false;
+
+ } else if (distance() < core::range::maxdistance) {
+
+ if ((entity()->type() == core::Entity::Controlable)) {
+ // controlable entity out of range
+ state_visible = false;
+ state_detailvisible = false;
+ } else {
+ // entity within drawing distance, outside detail range
+ state_visible = true;
+ state_detailvisible = false;
+
+ }
} else {
// entity out of range
state_visible = false;