a851062891
Merge pull request #133 from vcmi/feature/pathfinderLayers
...
Pathfinder layers and related changes: fly and water walking implemented
2015-11-24 13:09:06 +03:00
df4515901d
CPathfinder: fix special movement boundary check
...
Forgot to fix it for water walking after fe12b8f664
2015-11-23 14:11:08 +03:00
f4c06660e4
CPathfinder::evaluateAccessibility: apply more optimizations
2015-11-22 21:31:47 +03:00
2632389aaf
CPathfinder: bring FoW reference back to avoid performance loss
...
This one is revert 148355908d
2015-11-22 21:06:37 +03:00
6dacb84404
CPathfinder::addNeighbours: avoid allocating new vector each time
2015-11-22 07:32:33 +03:00
e1a360408d
GameConstants: move operators into header and always inline them
2015-11-22 07:24:12 +03:00
5a87f58e09
CPathfinder: optimize checks order in calculatePaths
2015-11-22 06:23:54 +03:00
8217eb3a82
CPathfinder: split isLayerTransitionPossible into two functions
...
This way we can avoid usage of getNode for layers that clearly can't be used.
2015-11-22 06:16:16 +03:00
649ebfad2f
TerrainTile::topVisitableObj: avoid costly vector copying
2015-11-22 05:34:37 +03:00
a1fe2ebc44
Pathfinding: restore gamestate usage to avoid overhead
...
Also when possible pass TerrainTile pointers to getMovementCost instead of using getTile.
2015-11-21 14:31:30 +03:00
438a444443
CGHeroInstance: move native terrain check into getNativeTerrain
...
That make it easier to use that code independently in TurnInfo
2015-11-21 13:32:45 +03:00
a375c86ea2
movementPointsAfterEmbark: get max move points from TurnInfo
...
Missed that when originally implemented TurnInfo.
Not pretties code, but boost performance a lot.
2015-11-21 12:46:59 +03:00
5ae6225ebc
TurnInfo: implement internal bonus cache for most used bonuses
...
Bonus system even with caching add too big overhead so we'll only use it once for these bonuses.
Still I'm like it to be transparent for external code so it's a bit hacky code.
2015-11-21 10:00:09 +03:00
e91d79414b
PathfinderOptions: use settings and move all defaults into schema
2015-11-21 00:32:23 +03:00
b48d65ad57
addNewBonus: add turnsRemain check for N_TURNS, N_DAYS and ONE_WEEK
2015-11-20 14:37:57 +03:00
f99ffbd074
Bonus system: use duration helpers in selecters
2015-11-20 13:24:48 +03:00
cb61572878
TurnInfo: add cache for bonuses selection
2015-11-20 12:28:35 +03:00
6d395bcba7
Bonus system: add turnsRemain support for ONE_WEEK duration
2015-11-20 12:11:35 +03:00
d19cb5ce89
EPathfindingLayer: fix obvious layer over-allocation in CPathsInfo
2015-11-19 04:01:56 +03:00
adeefe903a
CGPathNode: apply suggested optimizations
...
Also make EPathfindingLayers ui8 too
2015-11-19 03:08:57 +03:00
7101083a24
CPathfinder: restore transit via garrisons
2015-11-18 00:07:25 +03:00
ab9680a7d9
CPathfinder: handle event object properly everywhere
...
Also add forgoted check for AdvmapInterface to avoid possible crash.
2015-11-17 07:09:01 +03:00
e9636a8d37
CPathfinder: add TODO and ideas for available options
2015-11-17 04:33:21 +03:00
fe12b8f664
Pathfinding: re-introduce EAccessibility::FLYABLE
...
That let us get rid of really hacky code in initializeGraph and also fix flying over tiles that aren't visible.
2015-11-17 03:59:02 +03:00
c2ba3e3faf
CPathfinderHelper: very firts pass over getNeighbours
2015-11-17 02:41:31 +03:00
73d8687785
CPathfinder: add some comments and TODO for future changes
2015-11-17 01:38:13 +03:00
578aa2acd4
Pathfinding: don't use gamestate directly as it's not needed
2015-11-16 21:22:11 +03:00
d524b4eabe
CPathfinder: get rid of addNeighbours coord argument
2015-11-16 19:54:17 +03:00
8f72d73241
CPathfinder: update teleport code and use TurnInfo for whirlpools
2015-11-16 19:14:18 +03:00
0949283cb9
Pathfinding: pass PathfinderOptions to helper and avoid changing them
...
Original idea behind options is that options should only be set on pathfinder object creation (or via some special method in case pathfinder become persistent).
2015-11-16 18:43:02 +03:00
3185b64fb0
CPathfinder: rename cObj and dObjt to ctObj and dtObj
...
This way it's more clear that it's pointer to object on tile and not path node.
It's important because air layer nodes don't have visitable objects while tile under them can have one.
2015-11-16 17:41:23 +03:00
6dd9572644
CPathfinder: cleanup checks for source node visitable object
2015-11-16 17:36:58 +03:00
aa59ad05ed
CPathfinder: don't access map->guardingCreaturePositions directly
2015-11-13 23:32:52 +03:00
324cf5490c
CPathfinder: fix movement into guardian tile
2015-11-13 23:07:56 +03:00
0be9d21132
CPathfinder: add rule that hero in boat can't visit empty boats
2015-11-13 10:28:44 +03:00
d2baa5b0d0
Pathfinding: move isLayerAvailable into TurnInfo
2015-11-12 14:40:56 +03:00
abc4ea272f
TurnInfo: store all bonuses and use TileInfo for everything
...
Currently this going to break ONE_WEEK bonuses because those don't work with CWillLastDays selector.
2015-11-12 14:30:29 +03:00
9ed9d94009
TurnInfo: first step towards better abstraction
2015-11-12 05:20:32 +03:00
4e11d81673
CGWhirlpool: fix random exit chooser
2015-11-12 01:23:27 +03:00
942c0cd718
CPathfinder: improve support for whirlpools
2015-11-12 01:16:06 +03:00
d76b2b7ca8
CPathsInfo: rework nodes multi_array allocation
2015-11-12 00:05:20 +03:00
09473f6648
CPathfinder: move embark special case to isMovementToDestPossible
2015-11-11 22:29:20 +03:00
46b923713b
Pathfinding: rework isLayerTransitionPossible and fix formatting
2015-11-11 22:08:15 +03:00
f1311abd0b
CPathfinder: move node action code into getDestAction
2015-11-11 19:51:08 +03:00
5fadb239f2
Merge pull request #134 from edeksumo/Fix-Defence-Ani
...
Let's try this.
2015-11-11 09:43:51 +01:00
4aaf6191a5
CPathfinder: implemented originalMovementRules option
2015-11-10 21:07:27 +03:00
2b6851b3d2
Pathfinding: use unique_ptr for hlp and fix few rules
2015-11-10 19:15:59 +03:00
9a63735c24
CPathfinderHelper: implement TurnInfo to avoid bonus re-checking
...
TurnInfo contain information about what movement-related bonuses and MP hero going to have on certain turn.
This way we can collect this information once for each turn so it's huge performance boost.
2015-11-10 14:26:45 +03:00
2ef9d7c3ec
Rename getCost back to getMovementCost
...
Initially wanter to name main class differently and back then getCost make sense.
Then renamed class to CPathfinderHelper, but forgot to rename function back.
2015-11-10 02:30:05 +03:00
b2e1ee5363
CGameState: move two pathfinding-related functions to CPathfinderHelper
...
Both getMovementCost and getNeighbours have nothing to do with gamestate.
2015-11-10 02:15:27 +03:00