Jacob Lundgren
cfe33e6b6e
3117: Fix crash after AI revisits teleporter
...
** Behavioral change: Fix AI heroes sometimes attempting to probe
teleport exits using data from a previously processed hero, causing
nullptr dereferences.
VCAI::moveHeroToTile has special case logic for revisiting tiles. This
logic could cause teleport exits to be stored in
teleportChannelProbingList, without the list subsequently being
cleared. If the processing of that hero ended immediately after that,
the next hero would believe that the list is accurate for them and
attempt to teleport while not standing on a teleporter.
2020-05-01 06:33:06 +03:00
Toney Sui
dca5d86e7a
Fix bug: LandMine is not exploding to enemies. ( #630 )
...
* The reason is,
the mine has attribute hidden=true;
when enemy unit moves, the code in BattleInfo.cpp MoveUnit() (line 817) will update the revealed to true;
then in the CGameHandler.cpp handleDamageFromObstacle() (line 4846) is checking , and the condition battleIsObstacleVisibleForSide() will return true, so the effect will not be triggerred.
Resolution:
1. Remove the "revealed=true" in moveUnit(), and in handleDamageFromObstacle, remove the "const" restrict for obstacle, and then update revealed to true;
2. After the takeDamage function, add a pack "BattleObstaclesChanged" to update the obstacle to be "revealed=true".
2020-02-12 20:12:12 +03:00
Andrii Danylchenko
bdec7db528
[3085] - MapObjectEvaluator crashes on custom monolith
2019-09-13 10:33:06 +03:00
Dydzio
54550b50de
Update VS files to 2019, partially fix test project
2019-06-09 17:28:55 +02:00
Dydzio
4be4e10fe9
Fix wrong AI prison value handling
2019-06-05 23:07:22 +02:00
Alexander Shishkin
b16af04a09
Merge pull request #597 from dydzio0614/AiInterruptFix
...
Ensure no freeze on AI interruption
2019-06-03 16:53:35 +03:00
AlexVinS
1f2ee843aa
[C::B] Switched to boost shared linkage
2019-05-30 20:55:40 +03:00
Andrii Danylchenko
11af1431fb
Fix code style
...
Co-Authored-By: Alexander Shishkin <alexvins@users.noreply.github.com>
2019-05-29 22:07:10 +03:00
Andrii Danylchenko
0bd5782470
AI: blind fix for 3062
2019-05-28 09:04:31 +03:00
Dydzio
545b07b8b8
Thread interruption fixes
2019-05-26 17:55:22 +02:00
AlexVinS
cffd763bb5
[C::B] Updated projects.
2019-05-04 10:45:00 +03:00
Dydzio
e50efdc279
Creature spellcast refactor ( #569 )
...
* Move some logic to lib
* Mouse action priority queue enhancement
* Get rid of siegehandler dependency
* Improve AI offensive spellcasting
* CBattleInterface cleanup
2019-05-04 06:42:55 +03:00
Alexander Shishkin
bd11e87f6a
Merge pull request #572 from dydzio0614/FuzzyHelperCrash
...
Fix crash caused by FuzzyLite destructor
2019-04-21 22:06:53 +03:00
Andrii Danylchenko
4153ebac58
ai fixes for android
2019-04-11 14:54:48 +03:00
Michał Kalinowski
ac6b477aa2
Simplify statements
...
-Simplify return statements across the code
2019-03-31 09:43:14 +03:00
Dydzio
55b000fb64
Fix crash caused by FuzzyLite destructor
2019-03-30 19:19:36 +01:00
Michał Kalinowski
ec536e613c
CMake more transitive
...
-Moving AIs cmake to target focusing code
-Beign explicit when link libraries
2019-03-28 16:56:51 +03:00
Dydzio
94040ea8af
Update VS files (add AI armymanager)
2019-03-25 02:20:24 +03:00
Andrii Danylchenko
75ed6210c6
try fix build
2019-03-23 14:11:57 +02:00
Andrii Danylchenko
ffdf5ad180
AI: fix hero exchange logic, allow splitting weakest-fastest creature, refactoring
2019-03-17 11:54:02 +02:00
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