improved patch by MiniBjorn to remove skidding when it doesn't make sense

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@2850 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2009-01-06 21:16:27 +00:00
parent 52bfa1b506
commit 4c3834e4e2
2 changed files with 16 additions and 11 deletions

View File

@ -120,7 +120,7 @@ void SkidMarks::update(float dt)
} }
// Currently no skid marking // Currently no skid marking
// ------------------------- // -------------------------
if(!m_kart.getControls().m_drift) return; // no skidmarking if((!m_kart.getControls().m_drift) || (fabsf(m_kart.getControls().m_steer) < 0.001f)) return; // no skidmarking
// not turning enough, don't draw skidmarks if kart is going straight ahead // not turning enough, don't draw skidmarks if kart is going straight ahead
// this is even stricter for Ai karts, since they tend to use LOTS of skidding // this is even stricter for Ai karts, since they tend to use LOTS of skidding

View File

@ -792,18 +792,23 @@ void Kart::updatePhysics (float dt)
} }
#endif #endif
if(m_controls.m_drift && fabs(m_controls.m_steer) > 0.001f && isOnGround() ) if (isOnGround()){
{ if((fabs(m_controls.m_steer) > 0.001f) && m_controls.m_drift)
m_skidding += m_kart_properties->getSkidIncrease() {
*dt/m_kart_properties->getTimeTillMaxSkid(); m_skidding += m_kart_properties->getSkidIncrease()
if(m_skidding>m_kart_properties->getMaxSkid()) *dt/m_kart_properties->getTimeTillMaxSkid();
m_skidding=m_kart_properties->getMaxSkid(); if(m_skidding>m_kart_properties->getMaxSkid())
m_skidding=m_kart_properties->getMaxSkid();
}
else if(m_skidding>1.0f)
{
m_skidding *= m_kart_properties->getSkidDecrease();
if(m_skidding<1.0f) m_skidding=1.0f;
}
} }
else if(m_skidding>1.0f) else
{ {
m_skidding -= m_kart_properties->getSkidDecrease() m_skidding = 1.0f; // Lose any skid factor as soon as we fly
*dt/m_kart_properties->getTimeTillMaxSkid();
if(m_skidding<1.0f) m_skidding=1.0f;
} }
if(m_skidding>1.0f) if(m_skidding>1.0f)
{ {