From bab6eff9da1927a4fc1e22d97e56199c1b677670 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 14 Aug 2009 11:37:10 +0000 Subject: model API cleanup, render WORLDSCALE --- src/render/renderext.cc | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src/render/renderext.cc') 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(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; -- cgit v1.2.3