Changes between Initial Version and Version 1 of Ticket #3337


Ignore:
Timestamp:
Jul 14, 2015, 2:24:43 PM (9 years ago)
Author:
wraitii
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3337 – Description

    initial v1  
    1 This is a general purpose ticket for issues with CcmpUnitMotion, which is somewhat dumb. This is the code that actually makes unit move, including calls to the pathfinding components. It handles a variety of logic and is linked with UnitAI in non-obvious ways.
     1This is a general purpose ticket for issues with CcmpUnitMotion, which is somewhat dumb. This is the code that actually makes unit move, including calls to the pathfinding components. It handles a variety of logic and is linked with UnitAI in non-obvious ways.
    22
    3 The most important current issue is that units can get stuck if they need to go around a unit (units aren't counted in the long range pathfinder obstructions), and the short-range pathfinder can't find a path. The attached patch fixes the simple case by telling idle units to move away in those situations. It seems to work fairly well, but some edge cases still happen where the units gets stuck. I however believe it improves on the current situation and thus should be committed.
     3The most important current issue is that units can get stuck if they need to go around a unit (units aren't counted in the long range pathfinder obstructions), and the short-range pathfinder can't find a path. The attached patch fixes the simpler cases by keeping the waypoints instead of scraping them (so units don't simply forget where they were going if there is an obstruction) and telling potential idle units to move away to clear the space in some cases. It seems to work fairly well, but some edge cases still happen where the units gets stuck. Needs some testing for the "trader route" case. I however believe it improves on the current situation and thus should be committed.
     4
     5A better fix would probably rely on giving order through unitAI but that requires bigger and more complex changes to unitMotion.