1
0
forked from mirrors/0ad

Fix unit acceleration reset on upgrade

Fixes #7625
This commit is contained in:
Atrik
2026-01-08 14:45:17 +01:00
committed by Vantha
parent fb1c0d2a82
commit 8e15b9c000
4 changed files with 35 additions and 3 deletions
@@ -60,6 +60,17 @@ function ChangeEntityTemplate(oldEnt, newTemplate)
cmpNewPosition.SetHeightOffset(cmpPosition.GetHeightOffset());
}
const cmpUnitMotion = Engine.QueryInterface(oldEnt, IID_UnitMotion);
const cmpNewUnitMotion = Engine.QueryInterface(newEnt, IID_UnitMotion);
if (cmpUnitMotion && cmpNewUnitMotion)
{
const currentSpeed = cmpUnitMotion.GetCurrentSpeed();
cmpNewUnitMotion.SetCurrentSpeed(currentSpeed);
const acceleration = cmpUnitMotion.GetAcceleration();
cmpNewUnitMotion.SetAcceleration(acceleration);
}
// Prevent spawning subunits on occupied positions.
const cmpTurretHolder = Engine.QueryInterface(oldEnt, IID_TurretHolder);
const cmpNewTurretHolder = Engine.QueryInterface(newEnt, IID_TurretHolder);