1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

934 Commits

Author SHA1 Message Date
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
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
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
166c04e2e0 Hack fixed serializer assertion by completely disabling AI goals serialization 2018-02-28 15:00:38 +08: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
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
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
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
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
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
Arseniy Shestakov
f1e5797834 Code style: move or add licensing information on top of every file 2017-07-14 01:26:03 +03:00
AlexVinS
bc626c2446 Fixed race condition 2017-07-12 18:26:20 +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
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
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
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
DJWarmonger
9623f7caf3 - Restored MSVS project files
- Fixed VCAI bu pointed out by Tow
2017-06-11 08:01:41 +02: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
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ł 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
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
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
AlexVinS
692d23e580 Fixed CID 1366376 2016-11-25 13:38:26 +03: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
Arseniy Shestakov
02a45007e7 VCAI::showGarrisonDialog: don't try to pick army from locked garrison 2016-09-19 03:30:55 +03:00
Arseniy Shestakov
84137dcaa5 Add DLL_LINKAGE to getStr and fix player id logging in VCAI 2016-09-16 05:45:00 +03:00
Arseniy Shestakov
30042cac3d VCAI::performTypicalActions: always check that hero is still available
It's weird why this only appear now so if you have ideas check issue 2479.
2016-09-16 04:52:17 +03:00
Arseniy Shestakov
ca0fe8fdc4 VCAI: do not attempt artefact and army exchange with ally hero
While visits of ally heroes supposedly occur accidentally It's still nice to handle it's gracefully.
No reason to prevent visits completely as they useful if hero have skill like Scholar.
2016-09-14 13:34:22 +03:00
Arseniy Shestakov
7ec9601acd VCAI: safety checks to avoid crashes with boat objects
Probably we should rewrite boat-related code to make AI boat handling easier.
2016-09-14 03:44:35 +03:00
Arseniy Shestakov
6dcb9a6068 VCAI: don't remove flagged objects from visitableObjs
This make my new shipyard-related changes work properly and might improve owned dwelling usage.
In case there still some code that might cause useless visits it's better just rewrite it insted of removing objects from visitableObjs.
2016-09-13 23:39:32 +03:00
Arseniy Shestakov
9296382bc6 More fixes for clang warning... 2016-09-08 19:58:01 +03:00
Arseniy Shestakov
78a560767b VCAI compareArtifacts: consider that art with highest price is best
That is suboptimal way as well, but let us avoid infinite loop there. Fix issue 2461
2016-09-08 04:29:27 +03:00
Arseniy Shestakov
8e94b1c4d2 VCAI::objectRemoved: handle hero boat removal. Fix issue 2350
Avoid situation when AI attempt to visit boat after it's killed hero who used it.
2016-09-04 15:44:42 +03:00
Alexander Shishkin
5e5ce0bb09 Merge pull request #203 from vcmi/logFormat
boost::format support for CLogger
2016-08-29 17:32:44 +04:00
Arseniy Shestakov
452e28d183 Remove some useless includes found by cppclean
This of course was tested and shouldn't break anything
2016-08-26 04:42:16 +03:00
Arseniy Shestakov
ab06cfd586 More fixes for uninitialized fields 2016-08-18 18:53:28 +03:00
AlexVinS
439aeecc8b [c::b] re-enabled PCH, tested with GCC 5.3. (Older versions may not work) 2016-08-18 13:40:35 +03:00
Arseniy Shestakov
39fe9472b6 CGameHandler::moveArtifact: check lock status by slot instead of id
This one fix issue 2455. We still need to do something with ArtifactID::ART_LOCK or ids for artifact from mods since they might conflict with each other.
2016-08-18 06:35:29 +03:00
Arseniy Shestakov
91c298bdaa VCAI::tileHidden: added clearPathsInfo
Sector map likely updated anyway after AI turn starts, but cleaning of heroesUnableToExplore when tile hidden feels reasonable.
2016-08-18 03:51:00 +03:00
Arseniy Shestakov
c931fa5081 SectorMap::exploreNewSector: only store visible visitable objects
Fix crash that I initially missed. AI unable to access information about hidden objects like events via callbacks so we shouldn't store them here too.
2016-08-18 03:33:23 +03:00
AlexVinS
f06e9c8538 VCAI convert logging 2016-08-15 08:30:06 +03:00
AlexVinS
22884d9150 AI logging convert 1 2016-08-13 17:44:37 +03:00
AlexVinS
72f79a3ad7 Draft boost::format based log proxy. 2016-08-13 16:57:09 +03:00
Arseniy Shestakov
7bdcd209e6 VCAI::wander: only use nearby objects from SectorMap when possible
Now AI only check full object list if there is no suitable objects found in current sector and sectors around it.
This optimization drastically increase wandering performance on maps with tons of objects when AI see most of it.
2016-08-12 09:08:53 +03:00
Arseniy Shestakov
aabf4808da SectorMap: remember all visitable objects in sector for wandering 2016-08-12 09:02:14 +03:00
Arseniy Shestakov
b83dea2008 VCAI::wander: map object selection refactoring
Avoid doing extra steps that's not needed. Related to issue 2454.
2016-08-11 16:53:05 +03:00
Arseniy Shestakov
8533ee3256 VCAI::validateVisitableObjs: drop unused code that
For whatever reason it's not removed at compile time and still wasting CPU.
2016-08-11 14:54:58 +03:00
Arseniy Shestakov
6433d7dd40 VCAI::getFlaggedObjects: don't use thread specific ptr within VCAI 2016-08-11 12:19:08 +03:00
Arseniy Shestakov
25fd4d85e2 VCAI::getFlaggedObjects: use visitableObjs for better performance
This change is drastically improve performance on maps with water. One part that caused issue 2454.
2016-08-11 03:58:24 +03:00
Arseniy Shestakov
10dbbead2d Fix indentation of logging code and around it
That wouldn't be as big issue if problem affected few files, but it everywhere in codebase.
Fixed it everywhere since in most files that is the only code with wrong indentation.
2016-03-12 04:46:21 +03:00
Arseniy Shestakov
5778082842 VCAI: dont visit border guard if tent not visited. Fix issue 1590
CQuest::checkQuest cant be used for border guard since CGKeys not yet work using quests.
Currently border guard have MISSION_NONE quest that always return true and make AI stuck.
2016-02-25 08:40:28 +03:00
Vadim Markovtsev
3926920103 Rename radious -> radius
There is no such English word, "radious"
Some files get new lines in the end - BSD sed bug + best practices
2016-01-31 18:01:58 +03:00
ArseniyShestakov
4e8486da7b Merge pull request #160 from vmarkovtsev/issue/2388
Fix 2388 obelisks puzzle revealing
2016-01-27 20:49:03 +03:00
AlexVinS
d7c0c3759a Merge branch 'Zyx-develop' into develop
Conflicts:
	lib/filesystem/AdapterLoaders.h
2016-01-27 18:53:41 +03:00
AlexVinS
bffdc2813d revert some project changes 2016-01-27 15:21:29 +03:00
ArseniyShestakov
c7ca88f84b Merge pull request #157 from vmarkovtsev/issue/2383
Issue/2383 fix invalid AI path detection
2016-01-23 22:02:10 +03:00
Vadim Markovtsev
10f888a483 Fix obelisks puzzle revealing
Teams and players were messed up in lib; hardcoded constants were refactored.
2016-01-20 10:44:13 +03:00
Vadim Markovtsev
6eefce23fe Check against nullptr in VisitHero::fulfillsMe() 2016-01-19 21:15:07 +03:00
Vadim Markovtsev
2bfc8ec8cb Fix AI hero infinite move on the same tile 2016-01-19 13:14:05 +03:00
Zyx-2000
a50a702073 switched to -std=gnu++11 2016-01-18 17:49:07 +01:00
Zyx-2000
203b2dccc3 hopefully fixed things 2016-01-09 21:23:55 +01:00
Arseniy Shestakov
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
Arseniy Shestakov
29a7934a99 Refactoring: avoid using namespace when it's not absolutely needed 2015-12-29 02:14:08 +03:00
Arseniy Shestakov
6f5c52a229 Refactoring: use cleaner CCreatureSet::stacksCount everywhere 2015-12-24 21:30:57 +03:00
DjWarmonger
a1f5a0a85c Removed unused code, which is not needed with new Pathfinder. 2015-12-24 11:28:14 +01:00
Ivan Savenko
a051a08a46 Merge remote-tracking branch 'origin/issue/2306' into develop 2015-12-18 22:21:11 +02:00
Vadim Markovtsev
0661aa0e6e Remove undefined behavior in requestActionASAP 2015-12-13 11:04:42 +03:00
ArseniyShestakov
ab92123da3 CPathfinder: improve support for visits and battles in teleports
Related movement code for client and AI is plumbed as well. Though at moment code still not finished because it's not teleport hero to the exit tile if he won battle.
2015-12-11 09:42:30 +03:00
ArseniyShestakov
975e049a3e SectorMap: disable knownSubterraneanGates support to avoid loops 2015-12-10 17:35:46 +03:00
ArseniyShestakov
5aadc1ed6f CasualtiesAfterBattle: dont remove catapult artifact. Fix 2346 issue 2015-12-10 13:31:03 +03:00
ArseniyShestakov
9e6f836b25 VCAI::pickBestArtifacts: don't try to move catapult between heroes 2015-12-09 18:49:22 +03:00
ArseniyShestakov
1c0d4e3f6f Fix filenames in file headers 2015-12-08 09:53:14 +03:00
ArseniyShestakov
07807fb044 Client: slience visibility error on shipyard in non-coastal town 2015-12-08 07:33:13 +03:00
ArseniyShestakov
cf4cb5c948 VCAI: silence callback on visibility check 2015-12-08 04:18:31 +03:00
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