1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-04 09:42:40 +02:00
Commit Graph

1262 Commits

Author SHA1 Message Date
Alexander Shishkin
83094faf8e
Merge pull request #553 from nullkiller/ai-fix-town-portal-to-occupied-town
ai fix town portal to occupied town
2019-03-08 20:26:32 +03:00
Andrii Danylchenko
5fb5ddfc67 ai fix town portal to occupied town 2019-02-26 22:50:46 +02:00
AlexVinS
f36a86412e Quick fix for https://bugs.vcmi.eu/view.php?id=3041 2019-02-24 18:45:53 +03:00
AlexVinS
9311966706 [C::B] Switch to MinGW 7.3 2019-02-19 14:59:10 +03:00
Andrii Danylchenko
f76c6c2300 Remove a few more usages of thread shared ai and cb 2019-02-17 14:32:42 +02:00
Alexander Shishkin
6165954e40
Merge pull request #546 from nullkiller/ai-pathfinding-update-paths
AI pathfinding const api and updatePaths
2019-02-14 20:33:00 +03:00
Dydzio
e6baba3ca0 Disable tactical advantage engine until rework 2019-02-13 12:01:32 +01:00
Alexander Shishkin
1e8fc51f70
Merge pull request #549 from dydzio0614/AiStackSplitImprovement
AI hero exchange improvement: split last creature stack
2019-02-13 00:02:31 +03:00
Dydzio
aafad18121 Style fixes 2019-02-12 19:47:19 +01:00
Dydzio
997ed6fcd0
remove legacy VisitObj goal name in AI logging 2019-02-12 18:29:42 +01:00
Dydzio
18e139d9e3 AI hero exchange improvement: split last creature stack 2019-02-12 17:20:59 +01:00
Dydzio
b492e7f3e8 Do not generate GatherArmy goal as result of GatherArmy decomposition 2019-02-11 12:46:47 +01:00
AlexVinS
1f83953da4 Partial fix for https://bugs.vcmi.eu/view.php?id=3033 2019-02-10 21:09:24 +03:00
Andrii Danylchenko
881e7f2061 AI pathfinding: use own FuzzyHelper for each storage to allow parallel processing without cuncarrent access 2019-02-10 15:25:56 +02:00
Andrii Danylchenko
675406589c AI pathfinding calculated in parallel 2019-02-10 15:25:56 +02:00
Andrii Danylchenko
35f696b695 AI pathfinding const api and updatePaths 2019-02-10 15:25:56 +02:00
AlexVinS
b24c037129 [C::B] Updated projects 2019-02-10 04:57:06 +03:00
Arseniy Shestakov
e511ee0078 AI: fix paths after merge of #545 2019-02-09 18:46:19 +03:00
Dydzio
6c886db079 Update VS project filters 2019-02-09 13:24:43 +01:00
Andrii Danylchenko
5454848938 AI: extract pathfinding special actions and rules to separate files 2019-02-08 17:43:32 +02:00
Arseniy Shestakov
f06c8a8725 VisitObjEngine: avoid crashes if object is no longer visible
This really shouldn't happen, but better safe than sorry
2019-01-27 05:58:46 +03:00
Andrii Danylchenko
bf87a9774d AI: stability fixes 2019-01-26 22:38:57 +02:00
Andrii Danylchenko
c96be75f41 AI: optimizae explore logically, reduce amount of scanned tiles during full map scan for new exploration point 2019-01-19 17:50:59 +02:00
Alexander Shishkin
b00e935e4d
Warnings fixes (#538)
Warnings fixes
* Suppress `missing-braces` for Clang
* Fixed many C4275 warnings
* Fixed almost all Clang/GCC warnings
* Silence most frequent MSVC warning.
* Fixed some pessimizing-move warnings
* Fixed some unused capture warnings
2019-01-19 13:52:02 +03:00
AlexVinS
da20aa2388 Use the same cost value in Pathfinder and fuzzy evaluations. 2019-01-17 10:54:41 +03:00
AlexVinS
4b5910c2f4 VCAI performance improvements
* Node graph initialization optimized.
* Fixed "Unathorized obstacle access".
* Pathfinding tracing disabled with ifdef.
* Misc bonus calculation optimizations.
* Removed timestamp from log lines. Date formatting eats too much CPU.
* Paths for all heroes in Client are now cached
2019-01-17 10:50:56 +03:00
Andrii Danylchenko
8fee46de7c AI: town portal support 2019-01-17 10:40:23 +03:00
DJWarmonger
2e20dce71f Fixed random hack that broke VCAI in recent commit. 2019-01-09 19:25:51 +01:00
AlexVinS
f0492ffa53 Tweaks 2019-01-08 00:49:36 +03:00
AlexVinS
f1cd4656ff Fixed warnings. 2019-01-08 00:40:09 +03:00
AlexVinS
9ec3d2ef64 Merge remote-tracking branch 'remotes/nullkiller/ai-refactor-exploration-according-to-new-pathfinder' into develop 2019-01-08 00:25:25 +03:00
Andrii Danylchenko
8b829e1099 AI: fix crash in pathfinding 2019-01-07 22:12:59 +02:00
DjWarmonger
efc53e8f8b
Merge pull request #530 from dydzio0614/objRemovalFix
Extend objectRemoved callback to check parent goals and resource manager
2019-01-07 19:00:06 +01:00
Andrii Danylchenko
bdaf127976 AI: explore logical optimization 2019-01-07 14:58:12 +02:00
Andrii Danylchenko
04047d0a1a AI: refactor explore further 2019-01-07 14:07:36 +02:00
Andrii Danylchenko
edc5abe49d AI: tweak explore to work with new pathfinding. 2019-01-07 14:07:36 +02:00
Andrii Danylchenko
f36ac1a6e2 AI: fix one more freeze in buy army 2019-01-06 22:36:46 +02:00
Dydzio
3e1b623fb6 Refactor goal removal from resource manager queue 2019-01-01 15:41:52 +01:00
Dydzio
456132c06b Fix code mistake 2019-01-01 14:19:52 +01:00
Dydzio
94df657d03 Check parent goals and resource manager for validity 2019-01-01 14:19:52 +01:00
Dydzio
216d50788b Fix AI build, update default Windows SDK version for projects 2018-12-31 15:18:42 +01:00
AlexVinS
5a8416bd19 [c::b] Updated projects, fixed build 2018-12-31 00:03:31 +03:00
Andrii Danylchenko
2c401931c4 AI: fix freeze on BuyArmy 2018-12-30 16:40:05 +02:00
Andrii Danylchenko
ee5a26da60 AI: fix freeze while endlesly trying to recruit hero which is not possible anylonger. 2018-12-25 15:04:03 +02:00
Andrii Danylchenko
035d279ae8 Refactor CGHeroInstance, make spells private 2018-12-23 15:49:26 +03:00
Andrii Danylchenko
5d022ba77c AI: CompleteQuest goal and summon boat spell support 2018-12-23 15:49:26 +03:00
DJWarmonger
e996879733 Commented out some extensive logs which slowed down pathfinder. 2018-12-16 16:12:41 +01:00
DJWarmonger
f4a8a1294e Optimizations based on MSVS profiler. 2018-12-16 15:46:48 +01:00
Dydzio
e1c27d04b4 Update VS files to match AI goals split 2018-12-05 13:05:54 +01:00
Andrii Danylchenko
e1b922f7b8 AI goals refactoring (#524) 2018-12-01 11:30:37 +03:00
Alexander Shishkin
000ca1c823
Merge pull request #520 from nullkiller/freeze-in-gather-troops
AI: GATHER_TROOPS improvements and fixes
2018-11-17 18:46:02 +03:00
Dydzio
c3088e293a Workaround linker bug, set higher optimization by default 2018-11-17 11:34:39 +01:00
Andrii Danylchenko
60c5f584a8 AI: GATHER_TROOPS improvements and fixes 2018-11-14 22:10:02 +02:00
Dydzio
d5063e53a0 Do not evaluate goals related to removed hero 2018-11-07 21:04:15 +01:00
Andrii Danylchenko
9a0b5a0afc AI: fix freeze when AI has a win condition to control own town 2018-11-06 21:45:29 +02:00
Andrii Danylchenko
3871ed0085 Hero try to execute a quest to kill himself 2018-11-05 22:24:15 +02:00
Andrii Danylchenko
812df63aae Freeze when try to bypass a few adjasent guards 2018-11-04 14:37:29 +02:00
Alexander Shishkin
064130973f
Merge pull request #514 from dydzio0614/HeroAiValueFix
Hero ai value fix
2018-11-03 23:34:03 +03:00
Dydzio
3e6cdb28bc Promote no AI value message to error, shouldn't happen without mods 2018-11-03 13:03:31 +01:00
Dydzio
8ec558a2ae Fix AI value handling for heroes 2018-11-03 12:46:02 +01:00
Dydzio
9f3d718e3b Allow AI to be aware of invisible heroes deletion 2018-11-02 16:35:25 +01:00
Dydzio
90c7daccc5 Fix path (#510) 2018-10-31 00:55:34 +03:00
Alexander Shishkin
e26f6ff15f
Merge pull request #505 from janisozaur/catch-by-ref
Catch exceptions by const-ref, not by value
2018-10-30 05:08:30 +03:00
Michał Janiszewski
7be9aa4868 Prevent shadowing of function arguments by local vars 2018-10-29 16:56:14 +01:00
Michał Janiszewski
9822a8f2df Catch exceptions by const-ref, not by value 2018-10-29 16:41:54 +01:00
Andrii Danylchenko
d5b26d9592 AI pathfinding: fix getPathsToTile for water tiles 2018-10-28 15:03:40 +02:00
Alexander Shishkin
bd0f8f840a
Merge pull request #497 from nullkiller/ai-pathfinder-boat
AI pathfinding: buy boat
2018-10-28 14:29:09 +03:00
Andrii Danylchenko
72aff02418 AI pathfinding: buy boat 2018-10-21 14:17:55 +03:00
Dydzio
1a05e41aac BuildingManager refactoring: C++11 vector usage without helper array 2018-10-16 19:52:36 +02:00
Dydzio
e13e88bf5c ResourceManager-compliant money saving for income buildings 2018-10-16 19:52:36 +02:00
Dydzio
b69c316409 Add possible income utility function, make capitol building errorproof 2018-10-16 19:52:36 +02:00
Dydzio
12e1e5b315 Disable building from army goals, re-fix building capitol prereqs 2018-10-16 19:52:35 +02:00
Dydzio
8c763253d2 Build fort unconditionally with high priority, no fort=no dwellings 2018-10-16 19:52:35 +02:00
Dydzio
c04bb9387f New rule: Cannot build upgrades without fort 2018-10-16 19:52:35 +02:00
Dydzio
a00a7762b5 Fix for new pathfinder code - generate proper goals 2018-10-15 21:17:14 +02:00
Alexander Shishkin
6958f2cddf
Merge pull request #493 from dydzio0614/FuzzyEvaluationFixes
Fuzzy evaluation fixes
2018-10-10 22:00:14 +03:00
Dydzio
a1c0b9268e Create artifact AI value handling 2018-10-10 15:22:15 +02:00
Dydzio
9ef0481610 object value terms rework 2018-10-10 15:18:34 +02:00
Dydzio
71a3852be4 Fix some flaws of old fuzzy engines 2018-10-10 15:18:33 +02:00
Dydzio
69e142c2b9 Change fuzzy engines activation method 2018-10-10 15:18:33 +02:00
AlexVinS
be45c8cb43 Updated C::B projects, fixed a few warnings 2018-10-10 16:07:28 +03:00
Dydzio
2a299e52a8 Add AI pathfinding to VS files 2018-10-09 12:39:57 +02:00
Andrii Danylchenko
f327c46fa3 AI pathfinding: rename and add const to functions 2018-10-07 14:51:27 +03:00
Andrii Danylchenko
cf213a5acf #2983б #2910 and a few other bugs fixed 2018-10-06 16:35:31 +03:00
Andrii Danylchenko
49c872e4ec AI: replace SectorMap with new PathfinderManager 2018-10-06 16:35:31 +03:00
Andrii Danylchenko
6ac987794c AI: first rule extracted for pathfinder 2018-09-23 15:26:53 +03:00
AlexVinS
99f167a44c AIhelper should be owned by AI instance. 2018-09-02 18:04:38 +03:00
Arseniy Shestakov
edcaaf036a MSVC: fixes for compatibility with latest Vcpkg packages 2018-08-27 22:19:11 +03:00
AlexVinS
690b3caff0 [c::b] Updated projects 2018-08-26 19:42:41 +03:00
Dydzio
0edac2e124 update missing VS .h files 2018-08-23 17:02:09 +03:00
Dydzio
1471043cae Update visual studio project files 2018-08-22 17:31:48 +03:00
DJWarmonger
346796f4f8 Possible fix for evaluate VisitHero (compiler optimization?) 2018-08-22 12:32:48 +02:00
DjWarmonger
5f39e92eb4
Merge branch 'develop' into VCAI_fixes 2018-08-22 08:06:13 +02:00
DJWarmonger
383c9a20af A bunch of fixes for recent branch. 2018-08-22 07:51:35 +02:00
DjWarmonger
f484baea9f
Merge pull request #474 from vcmi/FuzzyHelperRework
FuzzyHelper refactoring + Ai Map Object Evaluation improvements
2018-08-22 07:33:09 +02:00
DJWarmonger
6503830bde Important fixes:
- AI will not always trade resources if it has better options
- Do not use reserved objects for CollectRes
2018-08-21 13:48:19 +02:00
DJWarmonger
2f4b463459 - Fixed major bugs with building dwellings. ResourceManager doesn't support building in future turns.
- Tweaks for trading
2018-08-21 12:55:31 +02:00
DJWarmonger
a44c792b7c Important fix for ClearWayTo in new branch. 2018-08-21 08:40:47 +02:00
DJWarmonger
35d2af2e7d Simplified CollectRes - rely on VisitObj now 2018-08-20 21:31:58 +02:00
Dydzio
243ce7370a This fixes crash... idk why 2018-08-20 15:20:47 +02:00
Dydzio
158b3c0b80 Initial implementation of invalid VisitObj removal 2018-08-20 14:43:51 +02:00
Dydzio
d41741251f Fix VisitObj bugs / logic flaws 2018-08-19 20:41:29 +02:00
Dydzio
b1651d716f Stupid typo fix 2018-08-19 17:11:06 +02:00
Dydzio
e197d22e68 Improve dwelling value evaluation 2018-08-16 21:17:45 +02:00
AlexVinS
de5f1461ba Fixed https://bugs.vcmi.eu/view.php?id=2998 2018-08-12 15:02:10 +03:00
Dydzio
a7c2d03c87 Fixes 2018-08-10 20:36:42 +02:00
Dydzio
72b206347f Split Fuzzy.cpp/h 2018-08-10 18:27:57 +02:00
Dydzio
bd3d27c79b Leftover stuff: rename GET_OBJ 2018-08-10 16:48:42 +02:00
Dydzio
3961b4ac93 Rename GetObj->VisitObj to reflect new functionality 2018-08-10 16:45:00 +02:00
Dydzio
f2ba500e90 Autocalculate default AI value for dwellings 2018-08-10 16:36:45 +02:00
Dydzio
787f4032b4 fulfillsMe change revert, tweaks 2018-08-10 13:42:15 +02:00
AlexVinS
c4af306ceb [c::b] Updated projects 2018-08-10 08:14:10 +03:00
Dydzio
f91c85a900 Crash fix 2018-08-10 01:04:31 +02:00
Dydzio
5065f5a104 Fixes 2018-08-10 00:33:18 +02:00
Dydzio
c0821495e5 GetObj tweak 2018-08-09 22:07:02 +02:00
Dydzio
4b776db1a2 Set destination tile in GetObj - needed for priority evaluation 2018-08-09 20:24:19 +02:00
Dydzio
fa97940b4f Improve wander logging 2018-08-09 18:24:04 +02:00
Dydzio
ff2ac5b34b Minor fixes 2018-08-09 18:04:49 +02:00
Dydzio
1377338a41 Restore old code line 2018-08-09 17:45:58 +02:00
Dydzio
616a6bbdf7 New object target handling in wander 2018-08-09 16:28:15 +02:00
Dydzio
41df9d8283 Move away subgoal collection logic for GetObj 2018-08-09 13:17:58 +02:00
Dydzio
2365946b62 Elementar GetObj - first attempt 2018-08-09 13:17:58 +02:00
Dydzio
e89c7eeba4 Remove incorrect destructors - fl::Engine is responsible for these 2018-08-09 13:17:57 +02:00
Dydzio
2079ae6190 Revert "use smart pointers for fl variables"
This reverts commit d30b76bd7b47d1bfd197e80a7b0675bd7815db03.
2018-08-09 13:17:57 +02:00
Dydzio
67439bdd36 use smart pointers for fl variables 2018-08-09 13:17:57 +02:00
Dydzio
12d750a767 Accessibility tweaks + fix some compile errors 2018-08-09 13:17:57 +02:00
Dydzio
b29d5bb001 finished FuzzyHelper logic separation 2018-08-09 13:17:57 +02:00
Dydzio
64b7c9f036 VisitTile fuzzy logic separated from FuzzyHelper 2018-08-09 13:17:57 +02:00
Dydzio
37b2dbcbba Finish moving init functions to goal engine constructors 2018-08-09 13:17:57 +02:00
Dydzio
e33ef71882 FuzzyHelper is on diet... gotta get thinner 2018-08-09 13:17:57 +02:00
Dydzio
a8f5882a77 Initial split of classes 2018-08-09 13:17:57 +02:00
DjWarmonger
a0909468de
Merge pull request #477 from vcmi/VCAI_Rework
VCAI main loop rework + lots of discovered bugs and caveats fixed
2018-08-08 22:19:17 +02:00
DJWarmonger
8ec762f858 Fixed possible (?) crash in ResourceManager 2018-08-08 15:43:42 +02:00
DJWarmonger
4b602c42ff Fix for fix, ugh. 2018-08-08 14:26:21 +02:00
DJWarmonger
d07a77f34b - Tweaks for GatherArmy
- Tweaks for exploration
- Increased default priority of BuyArmy, SIGNIFICANT improvement!
2018-08-08 12:38:32 +02:00
DJWarmonger
a9ef8fe32f - Fixed Border Gates logic
- VCAI may now walk onto removable objects when exploring
2018-08-08 10:52:52 +02:00
DJWarmonger
6fd403d7cf Remove Capitol-related code, it's redundant now. 2018-08-07 18:44:03 +02:00
DJWarmonger
a827c083d8 Remove useless code 2018-08-06 21:54:17 +02:00
DJWarmonger
4d701736f9 Important changes:
- Fixed goal completion logic
- WIN can't be completed
2018-08-06 20:25:39 +02:00
DJWarmonger
8eec7d71ad Little tweak - prioritize instant buildings over ones we can't afford. May be useful with multiple towns. 2018-08-06 17:42:58 +02:00
DJWarmonger
36e44adc8c rebase 2018-08-06 10:02:59 +02:00
KasyanDiGris
46b4dcf459 Update fuzzylite because of https://github.com/fuzzylite/fuzzylite/issues/77 (#478) 2018-08-06 06:47:51 +03:00
DjWarmonger
2afe36ebf7
Merge pull request #476 from vcmi/SectorMapRefactor
Morning!
2018-08-05 06:56:24 +02:00
AlexVinS
bd23c7d909 [c::b] Updated projects 2018-08-05 06:45:07 +03:00
DJWarmonger
580fed34bb Updated CMakeLists.txt 2018-08-04 22:00:28 +02:00
DJWarmonger
f5ba181173 Refactoring: Move SectorMap to separate file 2018-08-04 21:59:30 +02:00
DjWarmonger
f2db64af94
Merge pull request #471 from vcmi/BuildingManager
Building manager
2018-08-04 21:07:40 +02:00
DJWarmonger
976eeb3578 Sweet Jesus 2018-08-04 16:22:24 +02:00
DJWarmonger
4a85559d4b Merge branch 'develop' of https://github.com/vcmi/vcmi into BuildingManager
# Conflicts:
#	AI/VCAI/CMakeLists.txt
2018-08-04 16:09:02 +02:00
DJWarmonger
6615870045 Rebase 2018-08-04 15:59:59 +02:00
Dydzio
8a862347c4 Update VCAI VS file 2018-08-04 15:45:22 +02:00
DjWarmonger
b0e1b8c5ec
Merge pull request #465 from vcmi/AIMapObjectEvaluation
Okay let's see where this gets us.
2018-08-04 15:07:08 +02:00
DJWarmonger
aa9c6d3716 Cleanup 2018-08-04 13:18:05 +02:00
DJWarmonger
9e34ef5534 AI will not try to sell reserved resources. 2018-08-04 11:51:19 +02:00
DJWarmonger
2aa0a6fe2f More fixes for trading. Seems to work now. 2018-08-04 10:20:40 +02:00
DJWarmonger
a5ca32ad38 Some checks and log for CollectRes goal. 2018-08-04 09:24:43 +02:00
Andrii Danylchenko
4141e8e7b0 [2982] AI: unexpected error in AI logic when take resource on adjasent tile 2018-08-01 21:49:15 +03:00
Dydzio
22b02ecc78 Use boost::optional "better way" 2018-07-30 15:32:55 +02:00
Dydzio
0786bd915a remove C++17 insert_or_assign usage 2018-07-30 14:07:39 +02:00
Dydzio
123ca6c417 Update CMakeLists.txt 2018-07-30 01:39:47 +02:00
Dydzio
2288e9b8aa
Merge branch 'develop' into AIMapObjectEvaluation 2018-07-30 01:33:49 +02:00
AlexVinS
f17783cfb5 [c::b] Updated projects, applied fixes 2018-07-29 22:07:40 +03:00
Dydzio
393b25eb7f Minor tweaks/fixes 2018-07-29 19:31:01 +02:00
Dydzio
f906d98fe5 Bugfix... 2018-07-29 16:02:18 +02:00
DJWarmonger
30f99e7cc1 Fix for Travis 2018-07-28 16:02:59 +02:00
Dydzio
d3e53bea2f Add aiValue handling for MapObjectsEvaluator 2018-07-28 12:58:18 +02:00
DJWarmonger
70549197b6 Naah, revert my changes. 2018-07-28 09:08:53 +02:00
DJWarmonger
e7cb8d7d17 Fixed GetObj (TRADING_POST) incorrectly set to elementar. 2018-07-28 06:47:37 +02:00
DJWarmonger
a8696a9957 formatting 2018-07-27 09:22:07 +02:00
DJWarmonger
6abebeeb9f Fixed non-const reference issue. 2018-07-27 08:10:21 +02:00
DJWarmonger
ea19716fb9 Fix for wander - AI sitting at town will buy troops. 2018-07-27 07:20:08 +02:00
DJWarmonger
301565b315 Updated CMake 2018-07-27 06:44:10 +02:00
Dydzio
df00ced204 Create fuzzy logic map object evaluation fundamentals 2018-07-27 02:28:12 +02:00
Dydzio
27541a72f5 Extract FuzzyHelper distance calculation 2018-07-27 02:21:51 +02:00
DJWarmonger
feb3459bd7 Oops restore. 2018-07-26 21:34:52 +02:00
DJWarmonger
5ce4e784c9 Final tweaks. Not going to add anything more to this PR. 2018-07-26 18:02:15 +02:00
DJWarmonger
e5b979d4ad - ResourceManager now returns abstract goal so it can be decomposed many times 2018-07-26 16:15:37 +02:00
DJWarmonger
1450d408a2 Wandering heroes may now travel to town even if it has no army in garrison. 2018-07-26 14:37:39 +02:00
DJWarmonger
b687688f5a Do not add duplicate objectives to GatherArmy pool (or any other, if it ever exist) 2018-07-26 13:29:46 +02:00
DJWarmonger
273802c92c I have no idea what I'm doing 2018-07-26 12:14:29 +02:00
Dydzio
b6a171f858 Add code comments for VCAI::makeTurnInternal 2018-07-23 20:48:38 +02:00
Dydzio
13cca972d6 Add visual studio file changes in advance 2018-07-23 19:47:07 +02:00
Dydzio
1a78ea15bb Tweaks 2018-07-22 19:53:06 +02:00
Dydzio
21c1f47a78 Fixes 2018-07-22 19:12:11 +02:00
Dydzio
2c1d91e2ff Move object ID struct to lib 2018-07-22 18:38:45 +02:00
Dydzio
08a66abdcc Singleton implementation fix 2018-07-21 15:42:17 +02:00
Dydzio
82da82fbeb Polish object database, add data operations 2018-07-21 14:30:38 +02:00
Dydzio
36f501ebf3 Implement MapObjectsEvaluator as singleton utility 2018-07-21 11:28:55 +02:00
Dydzio
6a9e91b99b Added basic interface for AI to evaluate objects 2018-07-20 21:14:57 +02:00
DJWarmonger
cae8acc56a Clearing up the code as requested by FeniksFire 2018-07-19 20:39:37 +02:00
DJWarmonger
3d59420bb5 Minor optimisations. Also, shoter code. 2018-07-19 17:36:10 +02:00
Andrii Danylchenko
12a3c7ed33 AI - code styles and remove redundant performance optimization for explore 2018-06-24 13:30:17 +03:00
Andrii Danylchenko
2466489e13 AI - improve exploration, cancel deadends 2018-06-21 22:29:26 +03:00
Johannes 'josch' Schauer
a54e8c88a9
AI/VCAI/VCAI.cpp: Remove unused variable introduced in 2014 2018-04-19 15:15:22 +02:00
Arseniy Shestakov
25dea1a599 Code style: formatting and refactoring of VCAI code 2018-04-08 17:43:20 +07:00
Alexander Shishkin
5c09f751b3 Gui cleanup3 - UI refactoring to use smart pointers (#440)
* Changed most gui classes to use shared pointers
* Store and use IImage as shared_ptr
* CSpellWindow redesign
* AdventureMapClasses cleanup
* CLabel: store background as smart pointer
* Store CObjectList items as smart pointers
* Removed destroy function of list item
* Store toggle buttons as smart pointers
* Use CComponent as smart pointer
* Attempt to fix artifact merchant drawing
2018-04-07 18:34:11 +07:00
AlexVinS
03cfd2cb78 Do not use StackLocation in netpacks 2018-03-17 13:24:12 +08:00
AlexVinS
386805c4e0 [BattleAI] Battle magic fixes
* should fix https://bugs.vcmi.eu/view.php?id=2901
2018-03-01 22:18:01 +03:00
AlexVinS
166c04e2e0 Hack fixed serializer assertion by completely disabling AI goals serialization 2018-02-28 15:00:38 +08:00
AlexVinS
080a81db3a Fixed summoned units not being removed after battle 2018-02-23 21:58:05 +03:00
Nikolay Shalakin
3795985de9 Eliminate warnings / errors. Pull request #388 2018-02-11 15:17:14 +03:00
Arseniy Shestakov
324717acbe Spelling fixes: privilaged -> privileged, retreive -> retrieve 2018-02-10 21:52:23 +03:00
AlexVinS
0a2b04709f Fixed https://bugs.vcmi.eu/view.php?id=2873 2018-02-09 22:12:21 +03:00
Dydzio
d4958ff5f8 update VS files to match spellrefactoring9 changes 2018-02-09 18:53:07 +01:00
AlexVinS
0b70baa95e Spells configuration version 2 (effect-based)
* Indirect spell effects loading
* Json serializer improvements
* spell->canBeCastAt do not allow useless cast for any spell
* Added proxy caster class for spell-created obstacles
* Handle damage from spell-created obstacles inside mechanics
* Experimental GameState integration/regression tests
* Ignore mod settings and load only "vcmi" mod when running tests
* fixed https://bugs.vcmi.eu/view.php?id=2765 (with tests)
* Huge improvements of BattleAI regarding spell casts
* AI can cast almost any combat spell except TELEPORT, SACRIFICE and obstacle placement spells.
* Possible fix for https://bugs.vcmi.eu/view.php?id=1811
* CStack factored out to several classes
* [Battle] Allowed RETURN_AFTER_STRIKE effect on server side to be optional
* [Battle] Allowed BattleAction have multiple destinations
* [Spells] Converted limit|immunity to target condition
* [Spells] Use partial configuration reload for backward compatibility handling
* [Tests] Started tests for CUnitState
* Partial fixes of fire shield effect
* [Battle] Do HP calculations in 64 bits
* [BattleAI] Use threading for spell cast evaluation
* [BattleAI] Made AI be able to evaluate modified turn order (on hypothetical battle state)
* Implemented https://bugs.vcmi.eu/view.php?id=2811
* plug rare freeze when hypnotized unit shots vertically
* Correctly apply ONLY_MELEE_FIGHT / ONLY_DISTANCE_FIGHT for unit damage, attack & defense
* [BattleAI] Try to not waste a cast if battle is actually won already
* Extended JsonSerializeFormat API
* fixed https://bugs.vcmi.eu/view.php?id=2847
* Any unit effect can be now chained (not only damage like Chain Lightning)
** only damage effect for now actually uses "chainFactor"
* Possible quick fix for https://bugs.vcmi.eu/view.php?id=2860
2018-02-08 11:37:21 +03:00
Dydzio
38d836d1a5 Update project files to Visual Studio 2017 2018-01-13 16:33:49 +01:00
Arseniy Shestakov
da117e9255 Code style: remove void from constructors without arguments 2018-01-13 11:51:47 +03:00
Michał Kalinowski
26a222ac62 Change JsonType to enum class (#393)
Change enum JsonType to enum class JsonType
2017-11-27 00:18:18 +03:00
AlexVinS
805b5215de Client threading tweak 2017-11-16 14:15:43 +03:00
DJWarmonger
bf20b165ec Fix. Don't skip usual condition. 2017-11-04 22:50:11 +01:00
DJWarmonger
3eb5de9534 Fixed AI trying to visit tavern over and over.
TODO: AI still can't use it, anyway.
2017-11-04 22:45:19 +01:00
DJWarmonger
edc4c01805 Fixed a case when AI could spend all money on army and not build anything in secondary towns. 2017-11-04 22:14:56 +01:00
Dydzio
ea17b0f458 Major overhaul of VS related files 2017-08-19 15:58:55 +02:00
Dydzio
e3ba491fa1 Use multi-core compile by default, fix VCMI_client path 2017-08-19 13:27:24 +02:00
Arseniy Shestakov
adbfa09e31 CMake: restore some of old MinGW code and improve ENABLE_PCH option
- MinGW: restore DLL deploy for MXE builds
- MinGW: restore linking options for: dbghelp, mswsock, iconv, etc
- MinGW: build with -Og when Debug is used to avoid crashes / freezes
- Cotire: when ENABLE_PCH is OFF we won't include Cotire at all
- FuzzyLite: enable FORCE_BUNDLED_FL by default for Linux to avoid FL5 usage
- Remove Version.cpp from lib source list so it's won't appear in projects
- Add option ENABLE_GITVERSION to disable Version.cpp usage
2017-08-16 16:12:36 +03:00
Arseniy Shestakov
2b3a467728 CMake: structure changes and other small improvements
- Now cmake_minimum_required used properly and set to 2.8.12
- cmake_modules/CMakeCPackOptions.cmake.in is removed
2017-08-16 16:10:08 +03:00
Arseniy Shestakov
40af43c46e CMake: massive rework for Mac build and other improvements
- macOS: RPATH-related code all removed or disabled
- macOS: new osx/CMakeLists.txt to run some install-code running after all subdirectories
- Assets copying into the runtime output directory implemented for Mac and Linux development
2017-08-16 16:10:07 +03:00
Arseniy Shestakov
193f492b99 CMake: cleanup, project generation and other improvements
- Use EXCLUDE_FROM_ALL for FuzzyLite and GoogleTest to avoid inclusion of unneded headers and libraries into installers.
- Set minimum CMake version only in main CMakeLists.txt
- Set project name only in main CMakeLists.txt
- Visual Studio: add assign_source_group function to generate proper filesystem tree
- Visual Studio: set PROJECT_LABEL so generated projects have same names binaries on Windows
- Visual Studio: enabled USE_FOLDERS for projects grouping. This also possibly affect other IDEs.
- Added add_subdirectory_with_folder function to make sure 3rd-party libraries are affected by USE_FOLDERS.
2017-08-16 16:10:07 +03:00
AlexVinS
43fad700b4 [C::B] updated FuzzyLite.cbp 2017-08-16 00:16:40 +03:00
Juan Rada-Vilela
7069f4b416 Upgrade to fuzzylite 6.0 as a submodule 2017-08-15 16:05:49 +03:00
AlexVinS
15138c23de Finished conversion to new logging API
* removed logger streams
* (float3|int3)::operator() -> (float3|int3)::toString(), it was too ugly and confusing.
2017-08-11 23:06:27 +03:00
AlexVinS
143ff682bc Logging cleanup 2017-08-10 21:59:55 +03:00
AlexVinS
85e952f25f Logging cleanup 3 2017-08-10 20:17:10 +03:00
AlexVinS
61e241308d Logging cleanup 2017-08-10 19:52:05 +03:00
ArseniyShestakov
9d9c026c85 Code style: serialize everything on own lines for easier debugging (#357) 2017-07-31 16:35:42 +03:00
Arseniy Shestakov
cdd9dbc7f1 Code style: avoid some ambiguous else if indentation
If some code intentionally want to break else if to achieve specific indentation there must be braces.
2017-07-19 03:42:26 +03:00
ArseniyShestakov
b2f74a93cf Code style: add empty parameter list to all lambda expressions (#345) 2017-07-17 15:35:57 +03:00
ArseniyShestakov
b52cfe5283 Code style: use parentheses for creating heap-based objects (#344) 2017-07-16 12:58:05 +03:00
ArseniyShestakov
a4c0ad94b1 Code style: remove default value hints in definitions (#342)
Some are outdated and this is something IDE are useful for.
2017-07-15 14:08:20 +03:00
Dydzio
0cb6515ae8 VCAI tweaks (#311)
* Add extra priority support for town capture evaluation
* Improve building algorithm
* GatherArmy: check free gold instead of total for when hiring heroes
2017-07-15 01:15:08 +03:00
ArseniyShestakov
ea0ceb1805 Merge pull request #323 from vcmi/CStackTweaks
CStack tweaks
2017-07-15 00:42:08 +03:00
Arseniy Shestakov
f1e5797834 Code style: move or add licensing information on top of every file 2017-07-14 01:26:03 +03:00
Arseniy Shestakov
dbcd79c48a Code cleanup: remove double and unneded semicolons 2017-07-12 22:01:10 +03:00
AlexVinS
bc626c2446 Fixed race condition 2017-07-12 18:26:20 +03:00
AlexVinS
4f14f22d3a Unified CStack ammo, casts and counterattacks
* it is possible now to add casts and shoots OTF (f.e. with spell bonus)

Centralized stack 'ammo' loading from bonus system.
* introduced small proxy class for local bonus cache
(no need to use global cache if particular selector used on node only in one place)
* handle killing resurrected creatures
* use IBonusBearer::MaxHealth() where possible
* Fixed https://bugs.vcmi.eu/view.php?id=2486
* Possible fix for 0 HP after resurrection.
* Hack-fixed https://bugs.vcmi.eu/view.php?id=2584
* Unified CStack health API
* Use CHealth for CStack count and health points
* increased SERIALIZATION_VERSION
2017-07-08 20:29:59 +03:00
Victor Luchits
30cc2f6a01 Change the output path for cmake so all files go into the same root directory 2017-07-07 13:08:53 +03:00
Victor Luchits
30643feb66 Do not treat warnings as errors for fuzzylite 2017-07-04 03:31:13 +03:00
AlexVinS
3d1a84875e Queries refactoring
* Moved SUMMON_BOAT special case to mechanics
* Partially moved Town portal logic to mechanics class
* Added generic query reply to CCallback
* Redesigned Queries so that base API do not depends on CGameHandler
* Got rid of CGameHandler::castSpellRequest
* Removed CGameHandler::castSpell
* Added new Query type for town portal dialog (not used yet)
2017-07-03 21:43:04 +03:00
AlexVinS
4f8c7bd4bb CStack refactoring
* removed all occurrences of attackerOwned
* Use BattleSide enum
* more tweaks
2017-07-01 19:17:08 +03:00
Arseniy Shestakov
fb19a3a068 CMake: update all CMakeLists to include actual sources and headers
This make it easier to use project with newer CMake and Qt Creator.
I decided against using GLOB since we don't rename files that much.
2017-06-29 02:03:37 +03:00
FeniksFire
4113bdab01 Moving some files from lib to the battle subdirectory. 2017-06-26 15:26:08 +02:00
DJWarmonger
5a31cc831d Merge branch 'develop' of https://github.com/vcmi/vcmi into develop
Trying to sort out git tree.
2017-06-16 21:49:49 +02:00
DJWarmonger
5e8fe083f2 Normalized GatherArmy evaluation. 2017-06-16 21:14:24 +02:00
AlexVinS
86f9df5f68 Made gamestate lock static 2017-06-14 07:59:41 +03:00
AlexVinS
0f5202689e Cumulative spell effects
* Added experimental support for cumulative effects for ENCHANTED bonus
* Updated and fixed SPECIAL_PECULIAR_ENCHANT processing
* Initial implementation of cumulative spell effects.
* Scheme for new spell feature - cumulative bonus.
2017-06-13 21:50:50 +03:00
DJWarmonger
9623f7caf3 - Restored MSVS project files
- Fixed VCAI bu pointed out by Tow
2017-06-11 08:01:41 +02:00
AlexVinS
195e979a18 get rid of CBattleInfoCallback::battleCanCastThisSpell 2017-06-05 23:46:55 +03:00
AlexVinS
2cfb2e6ae0 get rid of CPlayerBattleCallback::battleCanCastThisSpell 2017-06-05 22:53:42 +03:00
AlexVinS
4d430f6ad8 get rid of CPlayerBattleCallback::battleCanCastSpell 2017-06-05 22:16:12 +03:00
AlexVinS
22e1d5d3b1 [c::b] Move FuzzyLite project up one level to be prepared to submodule use 2017-05-27 02:37:35 +03:00
AlexVinS
a85b4cf2a5 * WIP on event condition format
* Hero portrait serialization
* Fix town spells serialization

* Added support for float exponential part in Json
* Added support for int64 in Json
* Added basic Hero definitions serialization
* Added rumors serialization
* Advanced player info serialization.
* Added Disposed heroes serialization, (!) not covered with tests yet
* Added Local event serialization
* Added Pandoras box serialization
* Added Seer hut reward serialization
* Added CQuest serialization
* Added API for map object instance names serialization.
* Added random dwelling options serialization
* Advanced town options serialization
* Advanced hero options serialization
* More map format tests
* A lot of fixes, cleanup and refactoring
2017-05-27 00:23:19 +03:00
Fay
b5daa24982 Android support (#299)
* AI libs registering shenanigans on android;
* Fixed resolution aspect + mouse event scaling;
* Proper server init/deinit (through android IPC);
Enabled threaded init in CMT;
* Prevented a deadlock in logger on some devices;
* Fixed frozen intro frame after interrupting the video;
Added android progressbar displaying during initial data loading;
* Hacky fix for choppy animations during heroes movement (should look better now, but it's definitely not a good solution);
* Changes/fixes for new android launcher building process;
* Fixed app hang after getting SDL_QUIT when activity was destroyed;
* Functioanal, configurable advmap swiping support;
* VCMI changes cleanup;
Added few missing VCMI_ANDROID guards on swipe mechanics;
* Removed unneeded sleep in server startup code for android;
* Removed android ioapi hack (fixed in newest ndk);
* Removed unused android's library loading logic;
* Added android's swipe option to settings schema;
* Moved NO_STD_TOSTRING to be defined in global.h instead of build files;
2017-05-25 20:57:20 +03:00
FeniksFire
3de891b4b4 Moving/dividing classes from BattleState to separate files. 2017-03-17 16:48:44 +01:00
DjWarmonger
1f08878620 Merge pull request #283 from janisozaur/override
Add `override` keyword where applicable
2017-02-19 21:42:26 +01:00
DjWarmonger
0fdee4fde2 Merge pull request #281 from janisozaur/clang4
Accepted. This should be fixed in fuzzylite first, still.
2017-02-19 21:39:01 +01:00
Dydzio
3326bfc067 Naming fix 2017-02-18 21:10:59 +01:00
dydzio
a4f375d9c0 Make AI able tobuy extra buildings. Fix bug #2640 2017-02-18 18:40:44 +01:00
Michał Janiszewski
f5ebc763b4 Add override keyword where applicable 2017-02-17 14:39:16 +01:00
Michał Janiszewski
e28f64efd2 Fix compilation with clang 4
See https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
for details
2017-02-17 10:00:26 +01:00
Michał Kalinowski
4d39f652bf Making more detailed options when choosing AI in launcher: http://
bugs.vcmi.eu/view.php?id=2369
2017-01-17 12:34:28 +01:00
DjWarmonger
6848a52ce1 Fixed heroes not unreserving Teleports, which makes them wander around it endlessly and blocking path.
TODO: properly handle all Teleports as "visited" objects
2016-12-19 21:46:01 +01:00
DjWarmonger
f18d3d9844 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2016-12-15 10:55:57 +01:00
AlexVinS
374f7780ee Fixed build. 2016-12-13 12:27:48 +03:00
DjWarmonger
01730ec98a A little TODO 2016-12-12 22:52:18 +01:00
DjWarmonger
27ff9efd4b Fixed #1713 2016-12-12 21:38:12 +01:00
DjWarmonger
80d5f7b4a4 Updated project files to MVS 2015 (in fact, it's trivial). 2016-12-12 19:14:45 +01:00
DjWarmonger
90d39ca2af Fix CID 1197519 2016-12-12 19:13:43 +01:00
AlexVinS
4288bb88ae Fixed CID 1197622.
* Coverity says that this line actually unreachable
2016-12-05 03:02:52 +03:00
DjWarmonger
eaf14f6429 Should fix #2624. 2016-11-29 22:07:35 +01:00
Arseniy Shestakov
fd3992ddc9 GatherTroops: avoid crash if nearest dwelling wasn't found. Issue 2624 2016-11-29 21:57:00 +03:00
DjWarmonger
72a36b92d6 Fixed regression. 2016-11-29 18:11:52 +01:00
DjWarmonger
67d5cee05e Fixed CID 1366402 2016-11-29 17:19:41 +01:00
DjWarmonger
81e7164ef2 Fixed CID 1366401 2016-11-29 17:12:10 +01:00
DjWarmonger
8058cb3cad Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2016-11-28 21:53:33 +01:00
DjWarmonger
ffc511054e Do not visit Eye of The Magi. 2016-11-28 21:45:41 +01:00
AlexVinS
204ee37ae4 boost/program_options has only 2 uses, and unlikely will be used more -> removed form Global.h. 2016-11-28 21:38:17 +03:00
DjWarmonger
9b5af484b7 Fixed AI getting stuck at blockVisit objects (Tavern, Borderguards/gates etc). 2016-11-28 19:29:11 +01:00
DjWarmonger
a1b7c9d8d2 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2016-11-28 12:07:30 +01:00
AlexVinS
fd9cfa406d Possible fix for http://bugs.vcmi.eu/view.php?id=2620 2016-11-28 04:43:09 +03:00
AlexVinS
c1fc39d9c1 Fixed CID 1366407 2016-11-28 03:51:32 +03:00
DjWarmonger
76c4ef32c2 Re-evaluate goal after hero move to make AI more consistent. 2016-11-27 18:10:20 +01:00
AlexVinS
c4ab962cc0 Fixed a few CWE-457 2016-11-27 17:48:18 +03:00
DjWarmonger
169334f877 VCAI: do not buy heroes with single creatures for GatherArmy 2016-11-26 18:03:09 +01:00
DjWarmonger
3c3b973597 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2016-11-26 17:41:45 +01:00
DjWarmonger
58ac31375b Fixed CID 1197636. 2016-11-26 17:41:34 +01:00
AlexVinS
86e33a4c45 [Refactoring] Unified SetResources NetPack API. 2016-11-26 15:14:43 +03:00
DjWarmonger
a86edca7d8 Fixed CID 1288882 2016-11-25 19:54:28 +01:00
DjWarmonger
092a0c305b MSVS project update. 2016-11-25 18:17:40 +01:00
AlexVinS
692d23e580 Fixed CID 1366376 2016-11-25 13:38:26 +03:00
AlexVinS
931656f24a possible fix for http://bugs.vcmi.eu/view.php?id=2612 2016-11-18 14:27:20 +03:00
AlexVinS
b7b488b445 [c::b] BattleAI project updated, fixed paths 2016-11-01 21:53:46 +03:00
ArseniyShestakov
43ebfe2aa8 Merge pull request #244 from FeniksFire/develop
0.99 released so we can now merge this one.
2016-11-01 21:43:36 +03:00
Michał Kalinowski
18f8ca3cd0 Refactoring Battle AI.
Divide BattleAI on the smaller files.
2016-10-31 14:59:56 +01:00
Ivan Savenko
5b76c3f4eb Rebase of codebase changes for refactored serializer
Some of newer fixes not yet merged there and save compatibility a bit off.
2016-10-27 18:12:20 +03:00
Arseniy Shestakov
cb3d6a24e7 Cmake: cleanup for commit hash in build version
Since it's available in lib we don't need to include it everywhere.
2016-10-27 17:01:29 +03:00
Vadim Markovtsev
da1c9cf249 Fix rebuilding everything on HEAD change 2016-10-23 16:56:53 +02:00
Vadim Markovtsev
d0beb27197 Add git commit hash into the version string 2016-10-23 15:45:47 +02:00
Vadim Markovtsev
4bcc43d3d0 Fix Mantis #2234
CPlayerInterface instances were removed from CClient::playerint with
clear() and finish() was not called on each. Added multiple insurance.
2016-10-22 16:22:00 +02:00
Vadim Markovtsev
63383502c3 Add the option to forcefully use bundled fuzzylite
cmake -DFORCE_BUNDLED_FL=TRUE ...

As requested in #231
2016-10-02 17:47:27 +02:00
Vadim Markovtsev
2c1dddde33 Fix memory problems with BonusList
Bonus * -> std::shared_ptr<Bonus>

This cures the following problems:

1) Memory corruption at exit. Some Bonus-es were deleted twice (mods?).
2) Memory leaks. Some Bonuses were not deleted.
3) Reduce the number of "Orphaned child" messages.

Valgrind reports 0 leaked memory now and no invalid reads/writes.
2016-09-29 15:08:00 +02:00