ArseniyShestakov
bd8eec7fb8
CGPathNode: move resetting code into separate function
2015-11-07 22:16:45 +03:00
ArseniyShestakov
d8a612f5d6
CPathsInfo: use boost::multi_array for storing graph of nodes
2015-11-07 22:02:57 +03:00
ArseniyShestakov
3f2cdf3137
CPathfinder: implement priority queue and node locking
2015-11-07 21:11:07 +03:00
ArseniyShestakov
148355908d
CPathfinder: get rid of FoW variable and bunch of small fixes
2015-11-05 15:04:56 +03:00
ArseniyShestakov
5f3e9deda7
CPathfinder: deny transit over whirlpools when hero not protected
2015-11-05 11:34:01 +03:00
ArseniyShestakov
a1290f548b
CPathfinder: only allow water walking over accessible tiles
2015-11-05 11:25:41 +03:00
ArseniyShestakov
3de94a8b99
CPathfinder: don't allow future movement after guarded tile
...
There is two exceptions:
- Hero start movement from guarded tile.
- Hero that embarking into boat that standing on guarded tile.
In other cases future movement is impossible.
2015-11-05 10:22:38 +03:00
ArseniyShestakov
f4dea88e3b
CPathfinder: get rid of hero object usage when it's not needed
2015-11-04 15:38:15 +03:00
ArseniyShestakov
1bc335323d
CPathfinder: add lightweightFlyingMode option suggested by @alexvins
2015-11-04 15:05:22 +03:00
ArseniyShestakov
330c1666fc
CPathfinder: move isLayerTransitionPossible and remove outdated comment
2015-11-04 12:29:51 +03:00
ArseniyShestakov
934c682733
CPathfinder: always add air and water layer nodes to queue
...
It's should be possible to go into air layer from visitable object (but opposite isn't allowed).
And when walking on water player can't really interact with any object at all so future movement always possible.
2015-11-04 11:53:52 +03:00
ArseniyShestakov
595deda270
CPathfinder: rename functions to better represent what they doing
2015-11-04 11:47:43 +03:00
ArseniyShestakov
dfd70849e9
CPathfinder: restore selective tile initialization to initializeGraph
...
This way we can avoid layer checks when calculating paths by ignoring unitialized tiles entirely.
Also at this point pathfinder and movement actually works for everything except flying.
2015-11-03 03:25:12 +03:00
ArseniyShestakov
c85c7f4b61
CPathfinder: always initialize all nodes within initializeGraph
2015-11-03 01:29:43 +03:00
ArseniyShestakov
400152caee
CPathfinder: draft implementation of layers logic; not yet works
2015-11-02 16:03:03 +03:00
ArseniyShestakov
9c1c7d0caf
Pathfinding: move getNode into CPathsInfo
2015-11-02 14:04:26 +03:00
ArseniyShestakov
4b64bec711
EPathfindingLayer: copy other code from ETerrainType for debugging
2015-11-02 13:25:01 +03:00
ArseniyShestakov
2b6e1498d2
Pathfinding: change argument order for getPath and AUTO layer as default
...
This still need investigation, but likely most of external code shouldn't be aware of layers in order to work properly because only LAND and SAIL can be targeted and single tile can't have both of these layers.
2015-11-02 11:14:32 +03:00
ArseniyShestakov
b8253206c7
Pathfinding: make related code aware that layers exist
2015-11-02 11:06:06 +03:00
ArseniyShestakov
c4ea0c7ff2
CPathfinder: don't include RegisterTypes
2015-10-27 17:42:31 +03:00
ArseniyShestakov
6b34eb729e
Move all pathfinding-related code into new file
2015-10-27 03:34:47 +03:00