9fd1cff090
Refactoring: always use std prefix for shared_ptr, unique_ptr and make_shared
...
Long time ago it's was used without prefix to make future switch from boost to std version easier.
I discusses this with Ivan and decide to drop these using from Global.h now.
This change wouldn't break anything because there was already code with prefix for each of three cases.
2015-12-29 05:43:33 +03:00
a051a08a46
Merge remote-tracking branch 'origin/issue/2306' into develop
2015-12-18 22:21:11 +02:00
05a34fb417
Use "Favorable" instead of "Favourable" everywhere for consistency
...
Original game of course used american english version so we stick to it.
2015-12-06 02:23:41 +03:00
0fab319c73
Merge remote-tracking branch 'remotes/origin/develop' into issue/2306
...
s reverts commit fa8a282696
.
Conflicts:
AI/VCAI/VCAI.cpp
Conflicts:
AI/VCAI/VCAI.cpp
client/windows/CAdvmapInterface.cpp
lib/CPathfinder.cpp
lib/CPathfinder.h
2015-12-05 12:56:12 +03:00
360ebcce7e
Merge pull request #145 from vcmi/feature/tavernRumors
...
Tavern rumors and Thieves Guild fixes
2015-12-05 03:13:25 +03:00
89bf3592e3
Likely fixed duplicated random heroes
2015-12-05 01:40:23 +02:00
d856fde73f
Rumors: use enum instead of magic numbers and avoid potential crash
2015-12-04 22:58:14 +03:00
2a63ba148a
Thieves Guild: fix tavern map object, lvl 0 when no taverns owned
...
We also now check not number of towns, but only towns that has tavern built. Also according to original mechanics all taverns always display information based on your number of taverns and not number of taverns of object owner.
2015-12-04 18:38:57 +03:00
3b3c49420f
Thieves Guild: correct number of taverns to access information
2015-12-04 17:52:30 +03:00
a62ee65d72
Rumors: implement income checking via statsHLP::getIncome
...
This also fix income ranking in Thieves' Guild
2015-12-01 06:28:08 +03:00
ffcc5ccdd2
Rumors: implement support for grail terrain rumor
2015-12-01 04:57:52 +03:00
15273ac0f7
Rumors: avoid repeating of same rumor twice in a row
...
Multiple rumors of same type can go in a row, but not identical rumors.
2015-12-01 02:14:11 +03:00
98582d628c
Rumors: move code into CGameState and add backward compatability
2015-12-01 00:44:58 +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
d3c8ca7c1c
Pathfinding: implement duration checking for fly and water walking
...
Now pathfinder take into account different bonuses for different tuns. So if you only have FLYING_MOVEMENT bonus from Fly spell for one turn then pathfinder will only let you use air layer within one turn only.
That work for cost calculations too. Let's say you have two bonuses:
- FLYING_MOVEMENT with 20% penalty for next 2 turns
- FLYING_MOVEMENT with 40% penalty for 5 turns
Now pathfinder using correct penalty for each turn so movements in air layer going to be more expensive on 3-5 turns.
2015-11-09 19:57:26 +03:00
7eebcb9d60
Artifacts: replace few more ints by ArtifactID
2015-11-07 11:46:58 +03:00
d46364c4c3
Merge branch 'develop' into issue/2306
...
Need to reapply changes to pathfiner
Conflicts:
AI/VCAI/VCAI.cpp
lib/CGameState.cpp
lib/CGameStateFwd.h
2015-11-01 01:49:57 +03:00
e6e975e9ef
Fix adventure map movement segfault in some scenarios
2015-10-31 20:23:13 +03:00
17071c6ec8
Merge pull request #125 from ArseniyShestakov/newMovementSystem
...
Okay, time to merge this.
2015-10-31 13:56:22 +01:00
6b34eb729e
Move all pathfinding-related code into new file
2015-10-27 03:34:47 +03:00
9e8427a078
CPathfinder: update comment for isSourceGuarded condition
2015-10-27 00:22:40 +03:00
01257efc02
CPathfinder: get rid of curPos and pass on initializeGraph
2015-10-26 20:17:10 +03:00
68bd37aa45
Store penalty in value of FLYING_MOVEMENT and WATER_WALKING
2015-10-26 18:30:11 +03:00
44ca00cd16
CPathfinder: rename functions
2015-10-25 19:11:00 +03:00
a536691781
CPathfinder: fix typos and more code cleanups
2015-10-25 17:01:28 +03:00
4f7c3ec60f
Minor formatting fixes within pathfinder-related code
2015-10-24 15:50:00 +03:00
939b3c05a1
CPathfinder: use struct instead of enum for options
...
Suggested by @DjWarmonger as better alternative from performance standpoint while struct still more organized than bunch of variables.
Other reason of change it's that in future we may need non-boolean options, e.g for patrol movement and some new pathfinder usages.
2015-10-24 15:34:27 +03:00
6934c6bc95
CPathfinder: move check into isBetterWay lambda
...
It's must be of course used for teleporters too.
2015-10-24 14:54:15 +03:00
5a04f05b9b
CPathfinder: move one more check into isMovementPossible
2015-10-24 12:09:57 +03:00
6ebe2abc1a
Fix penalties for FLYING_MOVEMENT and WATER_WALKING
2015-10-23 20:50:52 +03:00
fc6f62e633
getMovementCost: get rid of useless flying parameter
2015-10-19 07:27:00 +03:00
498eb1d032
Fix typos
2015-10-19 05:16:18 +03:00
e4b1ef1405
Add "override" to virtual overriden methods
2015-10-13 21:05:36 +03:00
9954dfb33a
CPathfinder: move flying into options and add walk on sea
2015-10-12 19:03:08 +03:00
0faedde6b9
CPathfinder: store pathfinding options in set instead of variables
...
There is plenty of variables now and in future I'm going to add more more once pathfinder become usable for all kind of things.
2015-10-12 10:29:39 +03:00
886042dc11
CPathfinder: clean calculatePaths of code unsused for pathfinding
...
Map graph initialization should be there as well because it's needed for path checking.
This change wouldn't affect anything since currently CPathfinder object created from scratch every time.
2015-10-12 08:31:35 +03:00
213d8c2258
CPathfinder: turn checkDestinationTile into function
...
This code was only kept as lamba to access guard related variables that is now gone.
2015-10-12 08:22:31 +03:00
1beacf2260
CPathfinder: move guard checks into functions
2015-10-12 08:13:10 +03:00
cd7c5acbc4
CPathfinder: move embark special case code down
...
It's not affect cost calculations any way so let it's be in same order as it's used in condition under it.
2015-10-12 07:26:13 +03:00
c6f9cd1e52
CPathfinder: move passability checks into renamed goodForLandSeaTransition
...
There no need in dedicated function for embark / disembark and other conditions belong there perfectly.
This function is going to check what movements are plain impossible so we don't have to bother check their cost.
2015-10-12 07:10:33 +03:00
ee4305cd6d
CPathfinder: move destTopVisObjID where it's belongs to
2015-10-10 19:02:21 +03:00
13c2b5e2d8
CPathfinder: separate teleporter exits and neighbour tile code
...
This way code that handle real neighbour tiles is more readable and teleport exits don't have to go via all checks they ignore anyway.
2015-10-10 17:17:41 +03:00
f15065fdc5
CPathfinder: separate neighbours code into getNeighbours
...
This is first step to make this code usable outside of calculatePaths.
2015-10-10 16:09:40 +03:00
2cb6cb7baa
Remove useless durationType selector
...
* duration is a mask, equality comparison is not enough
2015-06-02 07:12:02 +03:00
32009690eb
initTowns: only add Tovern by default to player-owned towns
...
Neutral towns with default buildings set should never get Tovern automatically.
This one fixes issue 2090.
2015-03-12 18:47:32 +03:00
f2a237ce6c
CPathfinder: move allowed teleport check into lambda
...
This also fix accidental whirlpool usage as previously I messed up code a bit.
2015-03-11 23:53:35 +03:00
17f3f94ca6
CGSubterraneanGate: fix pairing and always assign all gates to channel
...
Before gates on underground layer didn't had any channel assigned and of course any function that attempt to check -1 channel caused crash.
Also I find out that at point postInit executed It's possible to get mutable gamestate via gameState() callback so we don't need to pass it there.
2015-03-11 17:17:21 +03:00
ec879046ca
Merge pull request #93 from ArseniyShestakov/feature/pathfindingTeleports
...
Okay let's do this!
2015-03-10 09:04:25 +01:00
5c6633f8ad
CPathfinder::addTeleportWhirlpool: check that obj isn't nullptr
2015-03-09 15:32:09 +03:00
00b0af7306
CGameInfoCallback: now actually drop excludeId argument
2015-03-09 14:20:34 +03:00