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>2010-11-12 21:13:29 +0000
committerStijn Buys <ingar@osirion.org>2010-11-12 21:13:29 +0000
commit82bc4da2b81077ddfc40c1ee37c57033010c9eef (patch)
tree328f512d7676ae4b34fcd6826d4301cec12969f4 /src/render
parente6516fb9999ae47a828e032f0908d2f2ae4b2434 (diff)
make the renderer properly respect FragmentGroup::Rotate
Diffstat (limited to 'src/render')
-rw-r--r--src/render/draw.cc4
-rw-r--r--src/render/draw.h2
-rw-r--r--src/render/renderext.cc2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/render/draw.cc b/src/render/draw.cc
index c9da6d4..780c77e 100644
--- a/src/render/draw.cc
+++ b/src/render/draw.cc
@@ -565,7 +565,7 @@ void draw_fragment(const model::Fragment *fragment, bool draw_details)
void draw_model_fragments(model::Model *model,
const math::Color & color_primary, const math::Color & color_secondary,
- const float time, const bool detail, const bool power, const float thrust)
+ const float enginetime, const bool detail, const bool power, const float thrust)
{
// default material, lighted and geometry color
const model::Material *material = 0;
@@ -588,7 +588,7 @@ void draw_model_fragments(model::Model *model,
gl::translate(group->location());
if (group->type() == model::FragmentGroup::Rotate) {
- float rotation_angle = math::degrees360f(time * group->speed());
+ const float rotation_angle = math::degrees360f((group->engine() ? enginetime : core::application()->time()) * group->speed());
gl::rotate(-rotation_angle, group->axis().forward());
} else {
gl::multmatrix(group->axis());
diff --git a/src/render/draw.h b/src/render/draw.h
index a2b3abc..516da13 100644
--- a/src/render/draw.h
+++ b/src/render/draw.h
@@ -29,7 +29,7 @@ void draw_sphere(math::Color const & color, float radius);
/// draw a model
void draw_model_fragments(model::Model *model,
const math::Color & color_primary, const math::Color & color_secondary,
- const float time, const bool detail, const bool power, const float thrust);
+ const float enginetime, const bool detail, const bool power, const float thrust);
class Stats
{
diff --git a/src/render/renderext.cc b/src/render/renderext.cc
index 197ca6d..29997ca 100644
--- a/src/render/renderext.cc
+++ b/src/render/renderext.cc
@@ -138,7 +138,7 @@ void RenderExt::frame(float elapsed)
if ((controlable->state() == core::Entity::Impulse) || (controlable->state() == core::Entity::ImpulseInitiate)) {
state_thrust = 1.0f;
} else {
- state_thrust = controlable->thrust();
+ state_thrust = controlable->thrust();
}
state_enginetime += elapsed * state_thrust;