Hennadii Chernyshchyk
37068a75b3
Make ENABLE_NULLKILLER_AI top level option
2022-12-15 02:18:17 +02:00
Andrii Danylchenko
56bf8ec2c4
#1228 - prevent second AI activation on AI defeat due to wrong EndTurn packet
2022-12-14 22:13:26 +02:00
Hennadii Chernyshchyk
3c948b1488
Fix typo
2022-12-14 10:12:16 +02:00
Hennadii Chernyshchyk
1ccbc209a4
Add an option to disable Nullkiller AI
2022-12-13 22:16:48 +02:00
Ivan Savenko
c79634b6a7
Moved all animation ordering logic to callers
...
Previously, CBattleAnimation & inheritors were controlling animation
ordering - e.g. which animations should play after which.
Now, this is controlled by caller, e.g. BattleInterface & its
controllers.
H3 animations are fairly linear and can be split in stages which are
already somewhat implemented via waitForAnims
2022-12-13 21:31:49 +02:00
Hennadii Chernyshchyk
de33eb44f9
Port to OpenDingux handhelds
2022-12-13 03:55:54 +02:00
Andrii Danylchenko
01980f4310
Small optimization of NKAI pathfinder
2022-12-10 22:08:16 +02:00
Andrii Danylchenko
59c3962e9c
BattleAI: fix camera obscura
2022-12-10 22:08:16 +02:00
Ivan Savenko
25bceda4ea
Added convertToVisitablePos/convertFromVisitablePos to CGHeroInstance
...
This method replaces old convertPosition, but with more clear names and
without hardcoded magic constants.
2022-12-09 14:42:47 +02:00
Ivan Savenko
8dcecdc235
Fix deprecation warning
2022-12-09 14:16:23 +02:00
Ivan Savenko
db2a40600d
Fixed some of the warnings detected by CI run
2022-12-08 23:20:42 +02:00
Ivan Savenko
facf77b3ae
vstd::unique -> std::unique
2022-12-07 23:36:20 +02:00
Ivan Savenko
d85ee019ec
Removed CGHeroInstance::convertPosition method
2022-12-07 22:51:32 +02:00
Ivan Savenko
49cbd5adc9
CGHeroInstance::convertPosition is no longer static method
2022-12-07 22:34:08 +02:00
Ivan Savenko
908e6892f3
Removed CGHeroInstance::getPosition pseudo-override
...
Now access to hero visible position is always done via visitablePos
2022-12-07 22:10:08 +02:00
Ivan Savenko
2855606a88
Enabled & fixed -Woverloaded-virtual warning from gcc/cland
...
- fixed almost all instances of overloaded-virtual warning
- cleared up inheritance & method overrides in code affected by warning
2022-12-07 21:50:45 +02:00
Ivan Savenko
3219e322ae
Fixed all non-silenced gcc/clang warnings
2022-12-07 18:05:47 +02:00
nordsoft
d4c9b8f6b5
Absolute threshold for retreat decision
2022-12-06 16:11:52 +04:00
Ivan Savenko
6463e906d5
vcmi can be compiled as single app on Linux
...
TODO: check compilation on Win/Mac using Github Actions
2022-12-05 21:36:02 +02:00
SoundSSGood
909dcb82fa
use ArtifactID
2022-11-29 00:32:18 +02:00
Andrii Danylchenko
e31beafa17
#1100 - fix visiting allied dwellings
2022-11-23 02:40:56 +04:00
Andrii Danylchenko
8b964be71f
Merge pull request #1111 from GermanAizek/develop
...
Code refactor and fix condition bug
2022-11-15 09:23:16 +02:00
lainon
7fdad4e0f6
Code refactor following C++ standard and condition fixes
2022-11-15 03:20:55 +03:00
Andrii Danylchenko
3676152644
#1102 - NKAI: one more freeze - no mains with strong army
2022-11-10 21:12:08 +02:00
Andrii Danylchenko
233b850daf
NKAI: a few crash/hang fixes
2022-11-07 13:58:20 +02:00
Andrii Danylchenko
ebf4854801
Battle AI: add some comments + refactoring
2022-10-23 11:41:03 +03:00
Andrii Danylchenko
601ced3749
BattleAI: rework movement when no targtes
2022-10-23 11:41:03 +03:00
Andrii Danylchenko
033a585e4b
Battle AI 2 turns attacks recalculation
2022-10-23 11:41:03 +03:00
Andrii Danylchenko
c2cc801f60
Merge pull request #1073 from kambala-decapitator/ios-conan
...
[Conan] add iOS support, bump dependencies, improvements
2022-10-22 12:40:48 +03:00
Andrey Filipenkov
f10e5e3b99
[Conan] add iOS support
2022-10-16 13:25:38 +03:00
Andrii Danylchenko
e9c725181c
NKAI: fix retreat logic
2022-10-15 15:15:12 +03:00
Andrii Danylchenko
153cccdf46
NKAI: hire retreated hero
2022-10-14 12:00:56 +03:00
Andrii Danylchenko
82a9f82e1c
BattleAI: retreat
2022-10-14 12:00:56 +03:00
Andrii Danylchenko
eeea01d778
NKAI: namespace
2022-10-04 08:40:14 +03:00
Andrii Danylchenko
2434fe3f6f
NK: fix AI speed
2022-10-01 13:49:27 +03:00
DjWarmonger
58a3abb643
Merge pull request #963 from vcmi/terrain-rewrite
...
Terrain rewrite
2022-09-29 18:24:05 +02:00
Andrii Danylchenko
878aabd4d6
Merge pull request #981 from kambala-decapitator/fix-analyzer-warnings
...
Fix Clang Analyzer warnings
2022-09-29 19:23:24 +03:00
Tomasz Zieliński
f386f42166
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
# lib/battle/CBattleInfoEssentials.cpp
# lib/rmg/ObstaclePlacer.cpp
# lib/rmg/RiverPlacer.cpp
2022-09-27 07:50:17 +02:00
Andrey Filipenkov
802147c5b7
add some asserts that shouldn't fire
2022-09-26 14:06:55 +03:00
Andrey Filipenkov
72feb538ce
add explicit null pointer checks
2022-09-25 10:05:16 +03:00
Tomasz Zieliński
fd63cb6109
and here
2022-09-25 08:07:22 +02:00
Tomasz Zieliński
97a94ce61e
Handle Tile by reference instead of pointer
2022-09-25 08:04:15 +02:00
Andrey Filipenkov
659be89a01
remove setting values that are never read
2022-09-24 16:52:38 +03:00
Andrey Filipenkov
dab9d206f1
Revert "don't build Nullkiller for 32-bit"
...
This reverts commit 0a5c5c3e1da76f0e202c61e9abfca9603ca7af7c.
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
2a958a346e
don't build Nullkiller for 32-bit
2022-09-24 15:55:23 +03:00
Andrey Filipenkov
5e838008df
merge launcher and client
...
launcher is a static lib now
2022-09-24 15:55:22 +03:00
Andrey Filipenkov
c6e51852d0
add ability to build VCMI as single process
...
"Client process -> shared VCMI lib <- Server process" is turned into "shared Client-VCMI lib -> process <- static Server-VCMI lib"
- adds lib_client and lib_server targets that define distinct namespaces
- lib_client is a dynamic library which is shared with AI libs, lib_server is static
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
ff635edc0b
wrap all library code into namespace if VCMI_LIB_NAMESPACE is defined
...
preparation for having client and server in a single process
2022-09-24 15:55:21 +03:00
Andrey Filipenkov
3388583089
use component-based install to copy only what's needed for every app
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
8319c30695
copy external TBB dylib to app package
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
9dc5f3ed8b
improve RPATH handling, apply RPATH when installing dylibs
2022-09-24 15:55:20 +03:00
Andrey Filipenkov
cfa22c33ad
use rpath properly
2022-09-24 15:55:17 +03:00
Tomasz Zieliński
a5077245a8
Merge remote-tracking branch 'origin/develop' into terrain-rewrite
...
# Conflicts:
# lib/Terrain.cpp
# lib/Terrain.h
2022-09-23 20:01:13 +02:00
Andrii Danylchenko
b4d3445559
Merge pull request #971 from kambala-decapitator/fix-warnings
...
Fix most project warnings
2022-09-22 16:05:32 +03:00
Andrey Filipenkov
c9c79887a7
remove unused variables
2022-09-22 11:54:10 +03:00
Andrey Filipenkov
143b0983e6
fix enum value
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
1d57c40740
wrap && conditions in parentheses when near ||
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
3616827aad
use default implementation of special methods
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
aae1d4fed5
fix variable type in for-in loops
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
a1cf120ea6
add missing virtual destructors
2022-09-22 11:54:09 +03:00
Andrey Filipenkov
7e6ed0583c
disable all scripting code when configuring without scripting modules
2022-09-21 19:31:42 +03:00
Tomasz Zieliński
494b0f0226
First version that compiles
2022-09-21 11:34:23 +02:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +03:00
DjWarmonger
5e2d87abd7
Update AI/Nullkiller/Goals/ExecuteHeroChain.cpp
...
Co-authored-by: Andrey Filipenkov <decapitator@ukr.net>
2022-09-14 16:23:13 +02:00
Tomasz Zieliński
931f4af2df
typo
2022-09-14 15:24:39 +02:00
nordsoft
c24fc89fe3
Lambda decltype on compile time instead of runtime
2022-09-14 12:08:20 +03:00
Tomasz Zieliński
40585a66c0
Style, commend - requested
2022-09-11 11:31:28 +03:00
Tomasz Zieliński
1649cf2bb9
misc comments
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
6ae3b77d80
AI will not wait to conwuer fort if possible
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
f0bb97b0d2
AI will actually attack all heroes when possible - and win the game eventually :)
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
b52faad4c7
+ Stack speed is valuable
...
+ Hero movement is also very valuable
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
a83753a7d2
AI will now pick Prisons if possible
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
cbf2a1b7cc
AI will consider Pandora Box as a valuable object - good for every occasion!
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
faa6ca401e
Fixed duplicated value
2022-09-11 11:31:27 +03:00
Tomasz Zieliński
f4de5453c6
+ AI will consider free slot (or lack of it) for creature reward from a bank
...
+ AI might use banks for resources other than gold
2022-09-11 11:31:27 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Soar Qin
188607b05f
Replace cotire with CMake builtin precompiled headers support (Requires CMake version >= 3.16)
2022-06-17 17:20:08 +03:00
Soar Qin
c87df8e704
Fix warnings/errors on MSVC ( #753 )
...
* Fix warnings/errors on MSVC
1. update googletest to tag release-1.11.0 to make googletest and
googlemock compile on MSVC2022.
2. set gtest_force_shared_crt to ON in test cmake project to make tests
compile on MSVC.
3. add /wd4251 and /wd4275 to MSVC compile flags to ignore DLL related
warnings for class exports.
4. fix some other warnings and errors while compiling on MSVC2022.
2022-06-11 18:45:34 +03:00
Andrii Danylchenko
31c9d6e28d
Fix performance issue related to TurnInfo construction
2022-06-06 09:47:37 +03:00
Konstantin
8fc14369a4
CMake presets. ( #744 )
...
* CI: use single build action
* CMake: use imported targets
* CI: do not build boost for linux
* CMake: add FORCE_BUNDLED_MINIZIP option
* linux: use external minizip and fuzzylite
* CMake: add presets
* .gitignore: ignore cmake build dirs
* github: use cmake presets
2022-05-26 08:55:20 +03:00
Konstantin
c6b198ce14
Warning fix (I moved C++17 and CI to another branch) ( #739 )
...
* clang warning fixes
* use CMake 3.10 due to MXE CI does not have 3.13 yet
Co-authored-by: Konstantin <rilian@niisi.ras.ru>
2022-05-19 15:14:50 +03:00
Andrii Danylchenko
6da233c387
NullkillerAI: fix build analyser when town has no upgrade for creature
2022-05-01 10:26:07 +03:00
Andrii Danylchenko
56a1984aa8
Remove extra non-printable characters
2022-04-27 09:22:18 +03:00
val-gaav
8baa97acd3
Update VCAI.cpp
2022-04-26 15:08:02 +03:00
val-gaav
7466839182
Update AIGateway.cpp
2022-04-26 15:08:02 +03:00
Andrii Danylchenko
fa9a420f99
Fix a few crashes
2022-04-17 09:10:53 +03:00
Andrii Danylchenko
02b2f35143
Nullkiller: fix crash
2022-03-05 15:51:03 +02:00
Dmitry Orlov
ea2931c6ea
Fix: Get rid of 'Tile is not visible' error message
2022-01-30 12:31:07 +02:00
Andrii Danylchenko
84948820b2
exchange window move single stacks buttons
2022-01-03 15:13:46 +02:00
Andrey Filipenkov
af6d666778
use high_resolution_clock instead of steady_clock
2021-11-23 11:56:06 +03:00
Andrey Filipenkov
fc064b1c45
replace boost::chrono with std::chrono
2021-11-23 10:23:55 +03:00
Andrii Danylchenko
27b3a88dda
Replace App Veyor
2021-08-21 09:32:52 +03:00
Andrii Danylchenko
b00a1dee28
Fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
79d06bbaa6
Nullkiller: fix merge conflicts
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
d47564955e
Nullkiller: fix/refactor temporary bonus nodes, fix gather army quest completion
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
ae67ef027a
Nullkiller: fix old VCAI new lines
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
70ed3f55a5
Nullkiller: replace a hack with temporary bonus node concept
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3fa7e0976f
Nullkiller: update / fix build, core changes required for Nullkiller AI
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b4241670ba
Nullkiller: rename VCAI to AIGateway
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
87a8c776c9
Nullkiller: reduce memory usage for x86
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
7184364bcb
Nullkiller: disable logging and fix tbb build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
bc95e4b935
Fix tbb build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1aa81530cb
Nullkiller: cancel heavy decomposition on shipyards
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
9a203b8af9
Nullkiller: parallel object clusterization, stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
66843b22d3
Nullkiller: async hero chain calculation
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0265de77fa
Nullkiller: fix crash, refactor
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
fb3cda666f
Nullkiller: tbb and hero chain calculation optimization and parallel cpathfinder initialization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3480f17a68
Nullkiller: fix defence
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0ffc7c3b94
Nullkiller: turn limit for main heroes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1f83569868
Nullkiller: fix defence
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
b5b9619147
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
4c01a8eec4
Nullkiller: fix a few crashes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3d91f2e988
Fix defence crashes and hangs
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3dc76cfe35
Nullkiller: fix crash when buy army through pathfinder
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
45942cfbbe
Nullkiller: stabilization, fix memory leaks
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
7e88819105
Nullkiller: fix crash and freeze
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
80df879489
Nullkiller: stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f2c26d7553
Nullkiller: thread interuption point
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0d5ae20e64
Nullkiller: improved citadel priority
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3822d788e8
Nullkiller: allow buy army through pathfinder
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
673d908c40
Nullkiller: fix crash because of incorrect memory management
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
92ac78f87d
Nullkiller: fix crash when game ends
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f0ceaf5852
Nullkiller: improve perofrmance of AI pathfinding
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
cf4484e071
Nullkiller: stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e385c83a88
Nullkiller - rewrite decomposition, decomposition cache, morale management
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
35a1167f3d
Nullkiller: refactoring and stabilization of gather army & clusterization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1fdf0de75d
Nullkiller: clusterization fixes, heroes clusterization for additional mains in case of locked heroes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
645c393e25
Nullkiller: fix freeze on accessing guarded object
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
5bfe71c8f3
Nullkiller: small optimization of AIPathfinder for big maps
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
07b6b0605c
Nullkiller: blind fix for unit tests to compile
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
4f51d3c929
Nullkiller: fix android
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
3e9bf9b662
Nullkiller: try to fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
32fb465823
Nullkiller: stabilization+clasterization improvements+fuzzy fear
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
75b8ee74fa
Nullkiller: stabilisation after refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1806dd8447
Nullkiller: remove AIhelper + refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
f832a8b3cd
Nullkiller: calibration and small behavior fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
37f49f2ac5
Nullkiller: stabilization
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
dec723b4be
Nullkiller: android fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
e95ccda5de
Nullkiller: various fixes for town portal and other
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1a69a43f09
Nullkiller: fix border gate and garrison bypassing when owned
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
0705ee595a
Nullkiller: object clusterizer
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1d4a349c2c
Nullkiller: fix build
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
c7d35dcc6f
Nullkiller: disable decomosition for now. Very slow
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
cebb5b296b
Nullkiller: fix priorities after refactoring
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
1349eff201
Nullkiller: android fixes
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
33b499976a
Nullkiller: fixes for keymaster
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
8f8c5ca255
Nullkiller: initial decomposition
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
223a52b3d1
Nullkiller: Try to join behavior and goal and see what come out of it.
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
af0dcf97c4
Nullkiller: initial cleanup of unused code
2021-07-26 21:02:50 +03:00
Andrii Danylchenko
5344df51c6
Nullkiller: capture guarded artifacts and other fixes
2021-07-26 21:02:50 +03:00