mantis3329-fix.diff (856 bytes)
2012-12-05 21:55
diff --git a/rts/Sim/MoveTypes/GroundMoveType.cpp b/rts/Sim/MoveTypes/GroundMoveType.cpp
index d49f061..1cd749a 100644
--- a/rts/Sim/MoveTypes/GroundMoveType.cpp
+++ b/rts/Sim/MoveTypes/GroundMoveType.cpp
@@ -2286,7 +2286,11 @@ void CGroundMoveType::UpdateOwnerPos(bool wantReverse)
const MoveDef* md = ud->moveDef;
const int speedSign = int(!reversing) * 2 - 1;
- const float speedScale = currentSpeed + deltaSpeed;
+ // LuaSyncedCtrl::SetUnitVelocity directly assigns
+ // to owner->speed which gets overridden below, so
+ // need to calculate speedScale from it directly
+ // const float speedScale = currentSpeed + deltaSpeed;
+ const float speedScale = owner->speed.Length() + deltaSpeed;
const float3 speedVector = owner->frontdir * speedScale * speedSign;
// NOTE: don't check for structure blockage, coldet handles that