ArseniyShestakov
03e9dd3bab
Add hero gold cost to GameConstants
2015-12-07 00:13:58 +03:00
AlexVinS
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
ArseniyShestakov
7708810148
VCAI: don't serialize destinationTeleportPos to avoid crash
...
This won't affect AI functionality except if game saved while AI moving through teleporters.
Serialization for some reason don't work properly and cause save loading to fail.
2015-12-05 08:08:02 +03:00
ArseniyShestakov
0a5e9c0fbe
Merge pull request #144 from vcmi/fix/teleportMultiExitPoints
...
Support for exit selection between multiple teleport exit points
2015-12-05 03:12:17 +03:00
ArseniyShestakov
791d1e7ab4
VCAI: finish fixing of teleport probing for whirlpools
2015-12-04 05:30:43 +03:00
Ivan Savenko
faa7cbff18
Fixed gcc/clang warnings
2015-12-04 01:17:43 +02:00
ArseniyShestakov
3800bd45b7
Movement: initialize destinationTeleportPos with invalid int3 position
2015-12-04 01:54:25 +03:00
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
2e56b547ee
replaced references to SectorMap with shared_ptr to avoid data races in AI code
2015-12-04 00:10:51 +02:00
ArseniyShestakov
ee08749743
VCAI: more work on teleport exit probing
2015-12-03 21:18:40 +03:00
ArseniyShestakov
2f9ca778b2
VCAI: add channel probing support for teleporters with multiple exits
2015-12-03 17:20:03 +03: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
ArseniyShestakov
eb9f29e368
VCAI: restoring teleport probing feature for updated mechanics
2015-12-02 19:26:24 +03:00
ArseniyShestakov
b5100bee94
Teleport: rework code to support exit point selection for whirlpools
2015-12-02 17:56:26 +03: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
f6de3f94ca
Teleports: use TTeleportExitsList typedef for exits list
...
There is several ideas that teleportation code have to be shared between object/spells and this way we can avoid changing showTeleportDialog declaration every time.
2015-11-28 02:41:30 +03:00
ArseniyShestakov
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
ArseniyShestakov
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
ArseniyShestakov
5106738160
Merge branch 'develop' into feature/pathfinderLayers
2015-11-09 19:20:13 +03:00
ArseniyShestakov
866a0a1fc0
VCAI: little improvement for 2a59cb6191
2015-11-08 23:02:59 +03:00
ArseniyShestakov
ac12a0735e
Plumbing on client and server to make flying actually work
2015-11-05 10:02:13 +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
AlexVinS
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
Vadim Markovtsev
fa8a282696
Fix pthread_mutex_lock abort() in requestActionASAP impl
2015-10-31 18:04:06 +03:00
DjWarmonger
1e36f3cecd
Cache SectorMap where possible and update when necessary.
2015-10-26 16:38:17 +01:00
AlexVinS
c9e03405f2
fix a warning
2015-10-25 23:17:33 +03:00
AlexVinS
e8e484bbca
Merge branch 'mutexRelax_fix' into develop
2015-10-25 22:35:19 +03:00
DjWarmonger
2a59cb6191
Fixed #2308 - AI didn't attack enemy heroes at all.
2015-10-25 11:55:50 +01:00
DjWarmonger
768b1ca289
More consitent code.
2015-10-25 11:16:43 +01:00
DjWarmonger
87f838f286
AI should poke inaccessible Quest Guards less often.
2015-10-25 08:39:03 +01:00
DjWarmonger
520e42bcd7
Fixed #2317
2015-10-25 08:21:15 +01:00
DjWarmonger
4e444abf66
Few more uses of cached visibleTiles.
2015-10-24 20:46:55 +02:00
DjWarmonger
a6ea0981b6
Merge branch 'develop' into mutexRelax
2015-10-24 18:30:43 +02:00
Vadim Markovtsev
d24fd10e21
Fix std::abs warning
...
Recent clang wants std::abs instead of plain abs
2015-10-13 21:05:46 +03:00
DjWarmonger
fe2a72f543
Minor optimization.
2015-08-31 10:08:50 +02:00
DjWarmonger
afe65d1264
Relaxed some locks in VCAI.
2015-08-31 09:18:24 +02:00
DjWarmonger
1c14dbf7b2
Cache SectorMaps to evaluate multiple goals -> huge performance boost
2015-08-31 08:25:33 +02:00
DjWarmonger
a3ce1521e5
Cache visible tiles within SectorMap for quicker access.
2015-08-31 07:39:03 +02:00
DjWarmonger
2012d53dd6
Fixed issues with exchanging combo artifacts ( #2132 ).
2015-08-30 15:15:04 +02:00
DjWarmonger
6af8db2c69
Fixed logic discrepancy for (in)visible objects. Fixes #2224 , #2225 and possibly more.
2015-08-30 09:14:54 +02:00
AlexVinS
782c8ec40b
Changed windows minimum version back to winxp due to mingw bug
...
* will be changed back after newer mingw tests
2015-08-20 04:22:54 +03:00
AlexVinS
03a295f1a0
Added debug mingw64 build, minimum Windows version set to windows 7, SDL suffixes removed from Build Tagerts
2015-08-20 03:28:04 +03:00
AlexVinS
53b85d16be
Cleanup C::B projects
2015-06-21 01:59:33 +03:00
DjWarmonger
f3c7774576
AiI will ignore winning conditions that require defeating his own objects. Fixes #2174
2015-04-13 18:45:43 +02:00
DjWarmonger
3e8c395156
- More fixes for wander targets
...
- SectorMap won't find paths through the rock
2015-04-10 08:50:21 +02:00
DjWarmonger
d32461d9d1
Complete solution for artifact equip & exchange.
2015-04-09 09:53:17 +02:00
DjWarmonger
b3f482b8a8
Restored artifact selection & exchange, work in progress.
2015-04-07 22:48:35 +02:00
DjWarmonger
264a0c4fe7
- Restored evaluation of wander targets at every step.
...
- First wander target will be sorted by distance (closest) as well.
2015-04-07 08:55:13 +02:00
DjWarmonger
2f588b548e
Fixed one case when heroes exchanged armies until ran out of movement points.
2015-04-07 08:43:10 +02:00
DjWarmonger
6cfc89dc7c
A number of fixes for wander / SectorMap.
2015-04-05 21:13:47 +02:00
DjWarmonger
a208afeee6
Removed new code, it was enough to fix the old one.
2015-03-30 16:54:32 +02:00
DjWarmonger
b2a75551c8
- Extensive use of SectorMap. AI will not eagerly pick guarded and blocked treasures.
...
- Fixed usage of boats, added Boat building as a part of Explore goal. This resolves #2151
2015-03-30 15:32:23 +02:00
DjWarmonger
299e9d5a0b
Experiment - do not prioritize reserved objects during wandering to prevent running back and forth.
2015-03-30 10:07:37 +02:00
DjWarmonger
8820bc05a9
MSVS compiler doesn't allow default arguments for Lambdas.
2015-03-10 10:06:45 +01:00
DjWarmonger
ec879046ca
Merge pull request #93 from ArseniyShestakov/feature/pathfindingTeleports
...
Okay let's do this!
2015-03-10 09:04:25 +01:00
ArseniyShestakov
11d4b4291c
VCAI: always clear teleport channel probing list if we lost hero
2015-03-10 03:23:36 +03:00
ArseniyShestakov
431f3bd857
VCAI: use cannotFulfillGoalException instead of runtime_error
2015-03-09 17:09:34 +03:00
ArseniyShestakov
f7a999f0f3
VCAI: add destinationTeleport to serialization
2015-03-09 15:37:54 +03:00
ArseniyShestakov
8524bdbc25
VCAI: use copy_if instead of erase_if for teleport exit probing list
2015-03-09 03:24:39 +03:00
ArseniyShestakov
496338813c
VCAI: explicitly check for teleportation between subterranean gates
2015-03-09 02:27:49 +03:00
ArseniyShestakov
8f8d237d5d
Use isTeleportChannel callback functions to check teleport channel type
2015-03-09 02:13:40 +03:00
ArseniyShestakov
8d901ad4d0
VCAI Explore goal: fix switch formatting
2015-03-09 01:25:52 +03:00
ArseniyShestakov
f490ea1fcd
VCAI Explore goal: remove useless check
2015-03-08 18:36:25 +03:00
ArseniyShestakov
afac28a2f5
VCAI little fix for typo in retreiveVisitableObjs
2015-03-08 17:56:59 +03:00
ArseniyShestakov
9ece636cf8
VCAI Explore goal: add monolith's exploration support
...
Explore will also suggest AI to re-enter bidirectional teleporter in case of one of it's exits is not visible for some reason.
Also now AI won't try to visit teleporters in case if it's know that it's channel is impassable. E.g if map have several entrance monoliths of with same same SubID that don't have exit then AI will only try to visit one of them and later of he'll know that all other monoliths of this subtype is blocked because they all using same channel.
2015-03-08 17:49:14 +03:00
ArseniyShestakov
12cf883740
VCAI: add all new movement code include teleports and transit support
2015-03-08 17:47:58 +03:00
ArseniyShestakov
665712c196
VCAI: add any newly found teleports to knownTeleportChannels
...
Now all new objects added to visitableObjs only using addVisitableObj so we can catch them for teleports handling.
I also simplified one of retreiveVisitableObjs functions because it's only used for inserting things into visitableObjs.
2015-03-08 17:38:09 +03:00
ArseniyShestakov
ab7ad4741a
AIStatus: add teleport channel probing mode
...
When AI going through bidirectional teleport it's always getting list of all available exits.
If some of exits are invisible it's will attempt to visit each of them teleport probing begins.
2015-03-08 17:23:56 +03:00
ArseniyShestakov
25656aa586
Add showTeleportDialog everywhere except actual code for AI and player
...
Just like TeleportDialog it's based off showBlockingDialog, but as number of package is higher when possible showTeleportDialog will be after other dialogs handling code.
2015-03-08 16:52:50 +03:00
AlexVinS
f4c683cd5e
Move VievXXX logic to server side (except expert ViewEarth)
2015-02-26 17:15:17 +03:00
AlexVinS
685deddac1
Start spell-relatet files reorganisation
...
* moved existing files to separate directory
-> todo: split mechanics
2015-02-26 08:39:48 +03:00
ArseniyShestakov
ea46be03f3
AI: check if hero killed while visiting object he stayed on
...
This is need to avoid crashes like one happen in 2084, but then game bahaviour incorrect.
I'm not exactly sure if this possible currently, but I can imaging this would happen if hero decide to attack bank while staying on it.
2015-02-22 20:56:50 +03:00
DjWarmonger
60932d9ed0
AI won't ignore owned objects taken by enemies.
2015-01-24 21:38:22 +01:00
DjWarmonger
5b8180e327
Cleaning logs.
2014-12-25 12:58:15 +01:00
DjWarmonger
7735e193f0
Merge branch 'develop' into experimental/serializerrefactoring
2014-12-22 19:17:40 +01:00
AlexVinS
3bca68fd2d
Initial refactoring
...
* reduce registerTypes* templtates instantiation
2014-12-21 17:29:42 +03:00
DjWarmonger
da76a2f227
Fixed AI trying to visit tile already occupied by different hero, including #1902 .
2014-12-21 14:50:26 +01:00
DjWarmonger
af02655b30
Fixed #1962
2014-12-21 11:33:53 +01:00
DjWarmonger
a823fae822
Fixed NaNs in FuzzyHelper::getTacticalAdvantage
2014-12-19 19:15:41 +01:00
DjWarmonger
cd060c00c5
Each fuzzy set of rules will use separate fuzzy engine.
2014-12-19 10:52:41 +01:00
DjWarmonger
a1e42caddd
Banks won't use fuzzy engine at all, only center of mass.
2014-12-10 12:29:51 +01:00
DjWarmonger
7adb0fd600
Fuzzy engine fix by Jcrada.
2014-12-05 09:28:58 +01:00
DjWarmonger
6463c33c26
Rewrite / update terms for TacticalAdvantage.
2014-11-28 14:17:17 +01:00
DjWarmonger
9ca991282a
Taken JCrada patch as it is.
2014-11-27 21:51:48 +01:00
DjWarmonger
b0cd4f4117
Added limits and assertions which show that fuzzy engine is completely bugged.
2014-11-22 18:57:17 +01:00
Mikhail Paulyshka
d0da88a515
define FL_CPP11 outside Fuzzylite source
2014-11-03 01:00:22 +03:00
Mikhail Paulyshka
941dcee0f5
Fix AI and VCAI CMakeLists.txt
2014-11-02 23:43:10 +03:00
DjWarmonger
9eeea7299a
- Removed unecessary includes
...
- Fixed town types configured from RMG templates
2014-10-31 17:09:34 +01:00
AlexVinS
f16e859242
[C::B] update FL project 2
2014-10-27 15:17:40 +03:00
DjWarmonger
c87f2cdaaf
Updated build for MSVS. Some compile fixes to FuzzyLite source.
2014-10-26 12:32:19 +01:00
jcrada
a4f98a9ebd
Upgraded to FuzzyLite version 5.0
2014-10-25 16:13:20 +02:00
josch
fab31642d9
prepare for update to fuzzylite 5.0
...
- use system version of fuzzylite if available
- adapt include paths
2014-10-25 16:00:44 +02:00
AlexVinS
66b022f93e
initializer lists part1
2014-10-02 19:43:46 +04:00
DjWarmonger
95e442898e
Fixed #1900
2014-10-01 13:26:04 +02:00
Ivan Savenko
33c0e24940
Fixes 1895 - Properly select upper army for recruitment
2014-09-23 14:28:55 +03:00
Ivan Savenko
4bb5784922
Fixing AI - dwelling visitation code should now work properly
2014-09-21 18:08:47 +03:00
Ivan Savenko
b67618ab53
First batch of AI fixes:
...
- wiped not actually used set/get selection
- replaced isReachable with VCAI::isAccessible
2014-09-21 17:03:20 +03:00