1
0
forked from mirrors/0ad

Fix UnitMotion 'path prediction' to not trigger if following a short path

This is needed otherwise units might never go around pure unit obstructions.

Adds a small test map.

Fixes def0f57365
This commit is contained in:
Lancelot de Ferrière
2025-05-03 08:45:05 +02:00
committed by wraitii
parent dc6544a6c4
commit 7cc495ec91
2 changed files with 4 additions and 1 deletions
@@ -1091,7 +1091,7 @@ void CCmpUnitMotion::PostMove(CCmpUnitMotionManager::MotionState& state, fixed d
const bool needPathUpdate{PathingUpdateNeeded(state.pos)};
// If we're following a long-path, check if we might run into units in advance, to smoothe motion.
if (!needPathUpdate && !state.wasObstructed && m_LongPath.m_Waypoints.size() >= 1)
if (!needPathUpdate && !state.wasObstructed && m_LongPath.m_Waypoints.size() >= 1 && m_ShortPath.m_Waypoints.empty())
{
ICmpObstructionManager::tag_t specificIgnore;
if (m_MoveRequest.m_Type == MoveRequest::ENTITY)