Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-08-14 11:37:10 +0000
committerStijn Buys <ingar@osirion.org>2009-08-14 11:37:10 +0000
commitbab6eff9da1927a4fc1e22d97e56199c1b677670 (patch)
tree14a06a6abd5b74c8b368b992594cb2f3133ab553 /src/render/renderext.cc
parent69d54b593f96c0f7e525c0dff560ca0614071cf3 (diff)
model API cleanup, render WORLDSCALE
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;