diff options
author | Stijn Buys <ingar@osirion.org> | 2009-08-14 11:37:10 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2009-08-14 11:37:10 +0000 |
commit | bab6eff9da1927a4fc1e22d97e56199c1b677670 (patch) | |
tree | 14a06a6abd5b74c8b368b992594cb2f3133ab553 /src/render/renderext.cc | |
parent | 69d54b593f96c0f7e525c0dff560ca0614071cf3 (diff) |
model API cleanup, render WORLDSCALE
Diffstat (limited to 'src/render/renderext.cc')
-rw-r--r-- | src/render/renderext.cc | 22 |
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; |