diff --git a/src/karts/kart.cpp b/src/karts/kart.cpp index 29f640238..6f0e5424c 100644 --- a/src/karts/kart.cpp +++ b/src/karts/kart.cpp @@ -76,6 +76,8 @@ Kart::Kart (const std::string& kart_name, int position, m_eliminated = false; m_finished_race = false; m_finish_time = 0.0f; + m_shadow_enabled = false; + m_shadow = NULL; m_smoke_system = NULL; m_nitro = NULL; m_skidmarks = NULL; @@ -635,6 +637,18 @@ void Kart::update(float dt) // Check if any item was hit. item_manager->hitItem(this); m_skidmarks->update(dt); + + // Remove the shadow if the kart is not on the ground + if(!isOnGround() && m_shadow_enabled) + { + m_shadow_enabled = false; + m_model_transform->removeKid(m_shadow); + } + if(isOnGround() && !m_shadow_enabled) + { + m_shadow_enabled = true; + m_model_transform->addKid(m_shadow); + } } // update //----------------------------------------------------------------------------- @@ -981,6 +995,7 @@ void Kart::loadData() m_shadow = createShadow(m_kart_properties->getShadowFile(), -1, 1, -1, 1); m_shadow->ref(); m_model_transform->addKid ( m_shadow ); + m_shadow_enabled = true; } // loadData //-----------------------------------------------------------------------------