Ivan Savenko
c2f4991e99
Replaced barrier with mutex due to data races:
...
Destruction of barrier while one of the threads is still in barrier.wait() is illegal. This may happen if caller thread reaches wait() after helper thread and immediately return's from the function destroying barrier which is still in use by helper thread
2015-12-04 00:12:49 +02:00
Ivan Savenko
f02e553b70
Fixed another uninitialized field possiblity causing issues with StupidAI
2015-12-04 00:11:44 +02:00
Ivan Savenko
2e56b547ee
replaced references to SectorMap with shared_ptr to avoid data races in AI code
2015-12-04 00:10:51 +02:00
Ivan Savenko
73b4188fab
Fixed access to unitialized memory causing StupidAI to act stupid
2015-12-03 21:28:01 +02:00
Ivan Savenko
90dfe3e782
reduced visibility for members of Mine and Dwellings
2015-12-02 22:34:13 +02:00
Ivan Savenko
7189a12df2
removed few more includes from headers
2015-12-02 22:10:46 +02:00
Ivan Savenko
7b5a7f43ad
Removed includes of CGameState from headers
2015-12-02 21:39:53 +02:00
Ivan Savenko
c3ce4b25df
Removed all #include's of CMap.h from headers.
...
To all - please, avoid #include's in headers as much as possible
This kills incremental build compile times
2015-12-02 21:05:10 +02:00
Ivan Savenko
bef7048460
minimized visibility of members of teleportation-related classes
2015-12-02 21:01:43 +02:00
Ivan Savenko
f9d9a38e53
Fixed gcc warnings
2015-12-02 20:59:38 +02:00
ArseniyShestakov
f55bfe41d6
Digging: implement digging status on right click. Fix issue 401
...
This is also fix possibility to dig on some non-blockable objects like event.
2015-11-29 12:34:23 +03:00
ArseniyShestakov
f940e3ed42
Fix issue 2239. Pillarbox when restored after alt-tab in fullscreen
...
This isn't best solution and all SDL-related code need refactoring, but it's works.
2015-11-29 01:56:18 +03:00
ArseniyShestakov
ce5b7c73be
CGEvent: avoid permanent event removal after visit. Fix issue 2339
2015-11-28 23:03:26 +03:00
ArseniyShestakov
c45cd1f4c2
CGHeroInstance::getOutOffsets: temporary fix for boat summoning
...
Appropriate fix would require to get rid of convertPosition everywhere. Check issue 515 for more details.
2015-11-26 10:55:02 +03:00
ArseniyShestakov
64c6d3c950
CGCreature::takenAction: add neverFlee check. Fix issue 2242
2015-11-25 09:34:49 +03:00
ArseniyShestakov
3d8f67f864
getFreeTiles: filter ROCK tiles. Fix issue 1870
2015-11-25 09:12:09 +03:00
ArseniyShestakov
745ab7c7df
One more fix for options
2015-11-25 07:40:35 +03:00
ArseniyShestakov
2276af70dc
PreGame: avoid crashing on random map options
...
Options is still broken, but at least we shouldn't crash there.
2015-11-25 07:25:44 +03:00
DjWarmonger
45d183289d
Merge pull request #142 from edeksumo/Fix-Defence-Ani
...
Fix crash
2015-11-24 21:37:32 +01:00
edeksumo
aab5a05036
Fix crash during auto battle
2015-11-24 20:55:11 +01:00
ArseniyShestakov
0b9a9ab26d
Add description of new pathfinder features into changelog
2015-11-24 13:36:51 +03:00
ArseniyShestakov
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
ArseniyShestakov
ac57eaf61d
Merge pull request #141 from vcmi/fix/oneWeekTurnsRemain
...
Bonus system: add turnsRemain support for ONE_WEEK duration
2015-11-24 13:08:03 +03:00
ArseniyShestakov
df4515901d
CPathfinder: fix special movement boundary check
...
Forgot to fix it for water walking after fe12b8f664
2015-11-23 14:11:08 +03:00
ArseniyShestakov
f4c06660e4
CPathfinder::evaluateAccessibility: apply more optimizations
2015-11-22 21:31:47 +03:00
ArseniyShestakov
2632389aaf
CPathfinder: bring FoW reference back to avoid performance loss
...
This one is revert 148355908d
2015-11-22 21:06:37 +03:00
ArseniyShestakov
6dacb84404
CPathfinder::addNeighbours: avoid allocating new vector each time
2015-11-22 07:32:33 +03:00
ArseniyShestakov
e1a360408d
GameConstants: move operators into header and always inline them
2015-11-22 07:24:12 +03:00
ArseniyShestakov
fc06db4c4f
Move STRONG_INLINE define into Global.h
2015-11-22 07:14:52 +03:00
ArseniyShestakov
5a87f58e09
CPathfinder: optimize checks order in calculatePaths
2015-11-22 06:23:54 +03:00
ArseniyShestakov
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
ArseniyShestakov
649ebfad2f
TerrainTile::topVisitableObj: avoid costly vector copying
2015-11-22 05:34:37 +03:00
ArseniyShestakov
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
ArseniyShestakov
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
ArseniyShestakov
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
ArseniyShestakov
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
ArseniyShestakov
e91d79414b
PathfinderOptions: use settings and move all defaults into schema
2015-11-21 00:32:23 +03:00
ArseniyShestakov
b48d65ad57
addNewBonus: add turnsRemain check for N_TURNS, N_DAYS and ONE_WEEK
2015-11-20 14:37:57 +03:00
ArseniyShestakov
f99ffbd074
Bonus system: use duration helpers in selecters
2015-11-20 13:24:48 +03:00
ArseniyShestakov
cb61572878
TurnInfo: add cache for bonuses selection
2015-11-20 12:28:35 +03:00
ArseniyShestakov
6d395bcba7
Bonus system: add turnsRemain support for ONE_WEEK duration
2015-11-20 12:11:35 +03:00
ArseniyShestakov
d19cb5ce89
EPathfindingLayer: fix obvious layer over-allocation in CPathsInfo
2015-11-19 04:01:56 +03:00
ArseniyShestakov
adeefe903a
CGPathNode: apply suggested optimizations
...
Also make EPathfindingLayers ui8 too
2015-11-19 03:08:57 +03:00
ArseniyShestakov
def0f0ef0a
CTerrainRect::mouseMoved: don't pass curHoveredTile by reference
...
This does cause problems because curHoveredTile can change while reference still being used by CAdvMapInt::tileHovered.
2015-11-18 03:14:58 +03:00
ArseniyShestakov
7101083a24
CPathfinder: restore transit via garrisons
2015-11-18 00:07:25 +03:00
ArseniyShestakov
511bb54644
doMoveHero: only allow to stop at accessible or land/sail nodes
2015-11-17 17:46:26 +03:00
ArseniyShestakov
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
ArseniyShestakov
e9636a8d37
CPathfinder: add TODO and ideas for available options
2015-11-17 04:33:21 +03:00
ArseniyShestakov
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
ArseniyShestakov
c2ba3e3faf
CPathfinderHelper: very firts pass over getNeighbours
2015-11-17 02:41:31 +03:00