Ivan Savenko
bd4d2788ed
Split pathfinder into multiple smaller files
2023-06-21 13:46:09 +03:00
Ivan Savenko
87fcfa4add
Removed excessive pathfinder includes
2023-06-21 12:00:44 +03:00
Ivan Savenko
d51fe62804
Win/loss condition texts use MetaString
2023-06-20 19:37:27 +03:00
Ivan Savenko
6f743916db
Moved CGCreature to a new file
2023-06-20 19:37:27 +03:00
Ivan Savenko
6aedb99117
Cleaned up IShipyard interface
2023-06-16 17:59:10 +03:00
Ivan Savenko
5cfbdd2967
Partially split CommonConstructors.cpp into few separate files
2023-06-16 17:59:10 +03:00
Evgeniy Meshcheryakov
6591508618
Fix crash in VCAI
2023-06-15 14:22:33 +03:00
Ivan Savenko
97b3b2e147
Fix build
2023-06-03 00:48:32 +03:00
Ivan Savenko
d6a357fd17
Split some map object files into smaller files. Reduced includes usage.
2023-06-02 21:47:37 +03:00
Ivan Savenko
acac42291e
Remove excessive CMap.h includes
2023-05-31 23:18:38 +03:00
Konstantin
05eccbc2bb
vcmi: split bonus to enumerator and HeroBonus.h
2023-05-03 18:01:06 +03:00
Konstantin
fbc05c70ac
vcmi: camelCase methods of new classes
...
Also use EGameSettings for clamping morale and luck
2023-05-02 12:09:13 +03:00
Konstantin
1d34c73c2d
vcmi: split CBonusSystemNode, BonusParams and prop
...
More splitting of HeroBonus.h
2023-05-02 00:54:53 +03:00
Konstantin
713e3004df
vcmi: rename updater and limiter files
2023-05-02 00:53:51 +03:00
Konstantin
e37f798a68
vcmi: split bonus updaters
2023-05-02 00:53:50 +03:00
Konstantin
416faf521e
vcmi: move limiters outside of HeroBonus.cpp
...
This will help for recompilation.
2023-05-02 00:53:50 +03:00
Nordsoft91
c9b59735cf
Merge pull request #2101 from Nordsoft91/rewardable-expand
...
Part 2: refactoring for rewardable object
2023-05-02 01:19:57 +04:00
Ivan Savenko
916b41d9a7
Merge pull request #2078 from IvanSavenko/shortcuts
...
Basic shortcuts system
2023-05-01 21:45:52 +03:00
nordsoft
97a1758e8e
Merge remote-tracking branch 'upstream/develop' into rewardable-expand
2023-05-01 21:51:10 +04:00
nordsoft
eb577a03b5
Deprecating enum constants
2023-05-01 21:49:37 +04:00
nordsoft
4b1b58b617
Change Callback to abstract
2023-05-01 21:49:37 +04:00
nordsoft
59bc9326e9
Remove excess pointer from market interface
2023-05-01 21:49:37 +04:00
Ivan Savenko
a654cc2391
Removed vstd::advance. Added vstd::next to handle similar cases.
2023-05-01 17:58:18 +03:00
nordsoft
203d0a4f91
Merge remote-tracking branch 'upstream/develop' into rewardable-expand
...
# Conflicts:
# lib/JsonRandom.cpp
2023-05-01 02:07:20 +04:00
nordsoft
1b4d117790
deeper decoupling
2023-04-30 17:13:07 +04:00
Konstantin
86f5d6de69
vcmi: modernize headers
2023-04-30 13:35:54 +03:00
nordsoft
e47bb3f1f9
Separate configuration and object
2023-04-30 00:59:02 +04:00
Ivan Savenko
7db67a3101
int3 now has proper hasher function
2023-04-20 22:04:24 +03:00
Ivan Savenko
4bb4d7e7a5
Merge pull request #1989 from SoundSSGood/refactoring-arts-p1
...
Artifact related code refactoring part1 (initial)
2023-04-19 15:31:11 +03:00
Konstantin
54eb550eb9
vcmi: remove unused functions now
2023-04-17 00:43:13 +03:00
Konstantin
7a5775a9f9
vcmi: use std::optional
2023-04-17 00:43:13 +03:00
SoundSSGood
9a838598a6
arts refactoring part1
2023-04-15 00:10:39 +03:00
Ivan Savenko
644f0f4b32
Removed ARRAY_COUNT in favor of std::size
2023-04-12 01:04:26 +03:00
nordsoft
8e77b833d9
Merge remote-tracking branch 'upstream/develop' into battle-dialog
2023-04-11 15:54:08 +04:00
nordsoft
bfc75ccd39
Merge remote-tracking branch 'upstream/develop' into battle-dialog
2023-04-11 02:22:42 +04:00
Konstantin
fedf7d377c
vcmi: remove TFaction
...
This is a huge change and will break save compatibility
2023-04-10 19:28:16 +03:00
nordsoft
ce3028bd73
Intermediate commit
2023-04-06 19:34:07 +04:00
Konstantin
11b237a23c
vcmi: massive refactoring v1
2023-04-05 22:33:12 +03:00
Ivan Savenko
c661419897
Merge pull request #1700 from rilian-la-te/resource-array
...
Modernize resourceSet.
2023-04-02 20:12:45 +03:00
Ivan Savenko
06b35ce533
Merge pull request #1595 from vcmi/vkai-hack-to-workaround-freezes
...
VCAI: hard limit on iterations per turn
2023-03-31 18:15:58 +03:00
Andrey Filipenkov
3602645a30
improve iterating over EPathfindingLayer
2023-03-20 11:35:19 +03:00
Konstantin
bbbbfe00f0
Modernize resourceSet
2023-03-17 02:26:54 +03:00
Ivan Savenko
a0e9e01b48
Renamed & reorganized all game mechanics settings names
2023-03-16 18:11:35 +02:00
Ivan Savenko
383387ef29
Integrated defaultMods into mod system
2023-03-16 17:55:09 +02:00
Konstantin
4617ce10e5
vcmi: allow showing more than one components in infobar
...
Up to 8, AFAIK. So, we can show multi-reward in infobox now.
One issue remain - cannot dynamically choose components size
based on text size.
2023-03-11 21:41:57 +03:00
Konstantin
5366f9190e
vcmi: reduce boost::lexical_cast usage
2023-03-09 16:36:46 +03:00
Ivan Savenko
11e4d84749
Implemented View Earth / View Air spells
2023-03-05 17:48:02 +02:00
Andrey Filipenkov
71d51beab2
change static AI approach to use static libvcmi
...
- now links to static AI lib targets
- solves uncaught boost exception on closing server
2023-03-02 12:09:48 +03:00
Andrey Filipenkov
4c19d8794d
add option to compile AI code into libvcmi directly
...
- used on Android by default
- AI sources and libs are propagated to upper level with set(... PARENT_SCOPE)
2023-03-02 12:09:48 +03:00
Andrii Danylchenko
2630fb2330
VCAI: hard limit on iterations per turn
2023-02-18 22:08:08 +02:00
Ivan Savenko
6c472339ce
Refactoring of ObjectClassesHandler
2023-01-26 23:26:49 +02:00
Ivan Savenko
f8f6df02f3
Removed remaining hardcoded objects
2023-01-23 15:27:27 +02:00
Ivan Savenko
62e127fb59
Bonusing objects are now configured in json
2023-01-23 01:05:10 +02:00
Ivan Savenko
bfd6c40f25
Moved all once-per-hero visitable (sans Tree) to config
2023-01-22 22:58:53 +02:00
Ivan Savenko
47c1803c42
Finalization of refactoring:
...
- Entity interface now has getNameTranslated & getNameTextID methods
- Entity interface no longer has getName method
- removed (most) usages of normalizeIndentifier workaround method
- all moddable objects have identifier in form of mod:name
- all moddable object register strings in form of mod.type.name
2023-01-20 15:18:36 +02:00
Ivan Savenko
05a1d7c6e3
All text for factions/towns/building are passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
388ed88b5d
All artifact strings now pass through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
fa6f7513e8
All heroes-related strings are passed through translator
2023-01-20 15:18:36 +02:00
Ivan Savenko
33a9aa8ee5
Reduced log to console
2023-01-01 20:55:26 +02:00
Ivan Savenko
370e92a90a
Added workaround for no longer accessible hero in MoveHero
2022-12-25 16:12:26 +02:00
Ivan Savenko
405b2976d5
Renamed getUpgradeInfo -> fillUpgradeInfo
2022-12-25 14:03:43 +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
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
SoundSSGood
909dcb82fa
use ArtifactID
2022-11-29 00:32:18 +02: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
Tomasz Zieliński
97a94ce61e
Handle Tile by reference instead of pointer
2022-09-25 08:04:15 +02: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
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
Andrey Filipenkov
c9c79887a7
remove unused variables
2022-09-22 11:54:10 +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
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
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
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
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
Dmitry Orlov
ea2931c6ea
Fix: Get rid of 'Tile is not visible' error message
2022-01-30 12:31:07 +02:00
Andrii Danylchenko
ae67ef027a
Nullkiller: fix old VCAI new lines
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
9c8d776398
Merge branch 'develop' into handlersAbstraction
...
# Conflicts:
# CI/linux/before_install.sh
# CI/mac/before_install.sh
# CI/mxe/before_install.sh
# lib/CModHandler.cpp
# lib/mapObjects/CObjectClassesHandler.cpp
# lib/mapObjects/CObjectClassesHandler.h
# lib/mapObjects/CommonConstructors.cpp
# server/CGameHandler.cpp
# test/CMakeLists.txt
# test/spells/effects/TeleportTest.cpp
2021-07-16 00:32:13 +03:00
Dmitry Orlov
0e5d427dc9
Fix: VCAI should not attempt to move Spellbook
2021-04-29 00:04:22 +03:00
AlexVinS
ecaa9f5d0b
Entities redesign and a few ERM features
...
* Made most Handlers derived from CHandlerBase and moved service API there.
* Declared existing Entity APIs.
* Added basic script context caching
* Started Lua script module
* Started Lua spell effect API
* Started script state persistence
* Started battle info callback binding
* CommitPackage removed
* Extracted spells::Caster to own header; Expanded Spell API.
* implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C
* !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented
* Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key)
* Re-enabled VERM macros.
* !?GM0 added
* !?TM implemented
* Added !!MF:N
* Started !?OB, !!BM, !!HE, !!OW, !!UN
* Added basic support of w-variables
* Added support for ERM indirect variables
* Made !?FU regular trigger
* !!re (ERA loop receiver) implemented
* Fixed ERM receivers with zero args.
2021-02-14 19:05:43 +03:00
Dmitry Orlov
39de2f6435
Fix: Morale bonus should be shown correctly
2020-11-11 22:43:40 +03:00
John Bolton
c61bae4060
Fixed RETURN_IF_BATTLE(). Undid disabled warnings. Fixed indentation.
2020-10-05 16:28:28 -07:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
Dmitry Orlov
5e0023704b
Fix PQ issues while calculating paths
2020-09-22 00:19:40 +03:00
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
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
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