Xilmi
b0f37748d6
Merge remote-tracking branch 'upstream/develop' into develop
2024-07-16 15:47:59 +02:00
Andrii Danylchenko
d243a2fc12
Merge pull request #4259 from vcmi/fix-4203
...
BattleAI: fix moving to unreachable in case of back-to-back 2-hex
2024-07-16 16:41:50 +03:00
Ivan Savenko
1c63fefe02
Moved banks randomization to server-side with client netpack
2024-07-16 13:13:39 +00:00
Ivan Savenko
b07408e984
New objects are now created and initialized on server and sent to client
2024-07-16 13:13:39 +00:00
Ivan Savenko
d2839c8e52
Rewardable object randomization is now always server-sided
2024-07-16 13:13:39 +00:00
Ivan Savenko
388d65d6b2
Fix merge
2024-07-16 13:13:39 +00:00
Ivan Savenko
c4b8778e8b
Remove unused code
2024-07-16 13:13:39 +00:00
Ivan Savenko
5178e4842e
Moved generation of new rumors to server
2024-07-16 13:13:39 +00:00
Ivan Savenko
55bf75c43e
Remove no longer used random seeds from StartInfo
2024-07-16 13:13:39 +00:00
Ivan Savenko
0d66ddbeec
GameState now uses random generator from server. Blocked access to rmg
...
on client
2024-07-16 13:13:38 +00:00
Ivan Savenko
63bcf7d83c
Replaced most of usages of CRandomGenerator with vstd::RNG in library
2024-07-16 13:13:07 +00:00
Ivan Savenko
60a51e98de
Remove usage of std::function from CRandomGenerator
2024-07-16 13:13:07 +00:00
Ivan Savenko
30569a112c
Fix crash on attempt to transfer component of a combined artifact
2024-07-16 13:08:15 +00:00
Ivan Savenko
ad9750ed3e
Merge pull request #4186 from SoundSSGood/end-of-battle-artifacts-transfer
...
End of battle artifacts transfer
2024-07-16 12:45:13 +03:00
Ivan Savenko
696cce7f7f
Merge pull request #4253 from smanolloff/random-port
...
Bind VCMI server to a random TCP port
2024-07-16 12:25:29 +03:00
Ivan Savenko
fd04320815
Merge pull request #4267 from IvanSavenko/sonar_fix
...
Fixed new issues detected by SonarCloud
2024-07-16 12:23:08 +03:00
Ivan Savenko
8e8d640923
Merge pull request #4276 from Alexander-Wilms/jsonparser-err-newline
...
JsonParser::error(): Don't add trailing newline
2024-07-16 12:21:23 +03:00
Ivan Savenko
3134d8383c
Merge pull request #4207 from Laserlicht/map_format_additional
...
[1.6] Map format additional infos
2024-07-16 12:15:58 +03:00
Alexander Wilms
f22a3d6168
JsonParser::error(): Use empty()
...
Co-authored-by: Andrey Filipenkov <kambaladecapitator@gmail.com>
2024-07-16 10:30:00 +02:00
Alexander Wilms
466318b77b
JsonParser::error(): Don't add trailing newline
2024-07-15 23:58:56 +02:00
Ivan Savenko
d59744f26f
It is now possible to define multiple music themes for terrains
2024-07-15 21:46:41 +00:00
Ivan Savenko
9c5d5d7c5a
It is now possible to define custom battle opening sound and custom music
...
for a battlefield
2024-07-15 21:46:23 +00:00
Ivan Savenko
358008fca9
It is now possible to define multiple town themes
2024-07-15 21:45:51 +00:00
Xilmi
fbe1e171fe
Merge remote-tracking branch 'upstream/develop' into develop
2024-07-15 18:36:19 +02:00
Xilmi
f8f10adb2e
Take magic-capability into account for overall strength-estimation of hero-lead-armies
...
The magic-strength of a hero now checks if the hero has a spellbook and at least one combat-spell.
The impact of knowledge and spellpower to the hero's magic-strength is now also depending on it's current and max mana-pool-size as an empty mana-pool does not exactly contribute well to fights.
Replaced every call of getFightingStrength() with getHeroStrength() which uses both the fightingStrength and the (reworked) magicStrength to guess how much stronger a hero-lead army is.
2024-07-15 17:42:02 +02:00
Ivan Savenko
04a81fee87
Reduce size of CGPathNode and AIPathNode
2024-07-15 07:49:04 +00:00
Ivan Savenko
c00a1e1b0c
Fixed new issues detected by SonarCloud
2024-07-15 07:46:40 +00:00
Dydzio
3836f132d3
Fix alternative actions to support more than 2 actions + simplify logic
2024-07-15 00:41:05 +02:00
Andrii Danylchenko
a4b6fc75dd
BattleAI: fix moving to unreachable in case of back-to-back 2-hex
2024-07-14 11:46:45 +03:00
Andrii Danylchenko
6f5710e809
Merge pull request #4110 from vcmi/rewardables
...
NKAI: rewardables
2024-07-14 09:02:37 +03:00
Xilmi
a821978d4e
Merge remote-tracking branch 'upstream/develop' into develop
2024-07-12 17:43:04 +02:00
Simeon Manolov
5b6bc10131
Code review
2024-07-12 14:54:28 +03:00
Ivan Savenko
74723bf77e
Merge pull request #4254 from smanolloff/fix-battle-queue
...
Fix battle turn order for current turn
2024-07-12 14:45:15 +03:00
Simeon Manolov
941cd6768f
Fix battle turn order for current turn
2024-07-12 11:39:57 +03:00
Simeon Manolov
9d73b50979
Bind server to a randomly assigned port
2024-07-12 01:06:36 +03:00
Ivan Savenko
6b8f94e6e7
Merge remote-tracking branch 'vcmi/master' into develop
2024-07-11 17:43:44 +00:00
Ivan Savenko
fd297f08e2
Add quick workaround for loading identifiers from difficulty bonuses
2024-07-10 22:33:09 +00:00
Ivan Savenko
dbc227da04
Fix incorrect tooltip when right-clicking Witch Hut if selected hero
...
already has this skill
2024-07-10 14:36:24 +00:00
Ivan Savenko
22870c4764
Fix potential crash on right-clicking object that gives secondary skills
...
such as Witch Hut when town is selected
2024-07-10 14:36:24 +00:00
Xilmi
3367298a2a
Merge remote-tracking branch 'upstream/develop' into develop
2024-07-09 16:25:27 +02:00
Ivan Savenko
e42285c2f1
Merge pull request #4240 from IvanSavenko/bugfixing
...
[1.5.4] Bugfixing
2024-07-09 14:32:24 +03:00
SoundSSGood
b42c6dbf44
fixed regressions
2024-07-09 14:27:05 +03:00
SoundSSGood
ef1fbffad4
ArtifactsUIController class
2024-07-09 14:27:05 +03:00
SoundSSGood
6dd76908bc
MoveArtifact struct not used now
2024-07-09 14:27:04 +03:00
SoundSSGood
5dbe88d9a4
End of battle BulkMoveArtifacts
2024-07-09 14:27:04 +03:00
Tomasz Zieliński
bfa93be765
Limit predicted damage / loses to actual stack health
2024-07-09 06:39:41 +02:00
Ivan Savenko
a19b3b61ad
Fixed missing addInfo when owner updater is used
2024-07-08 20:57:14 +00:00
Ivan Savenko
c64e7ee14c
Fix possible crash on Faerie Dragon killing themselves with Frost Ring
2024-07-08 20:56:43 +00:00
Xilmi
aa891cb8b1
Armycost
...
Added new method to retrieve the cost of an army to be used for AI-decision-making.
2024-07-07 22:38:37 +02:00
Andrii Danylchenko
1be36e1ad4
NKAI: rewardables
2024-07-07 21:58:39 +03:00
K
d3c198678c
reorder fields to shrink struct TerrainTile from 96 to 80 bytes
...
When I was playing a very large map, computer's turn took up to 2 minutes and that give me time to fire up perf and profile the code while waiting.
I noticed that 1.7% of time was spent in function CPathfinderHelper::getNeighbors and half of that on a single load from an array backing multi_array of TerrainTiles. That signals the CMap::terrain is too big to fit in CPU caches.
This patch reorders fields in TerrainTile struct, shrinking it from 96 bytes to 80 bytes and hopefully helping to keep more tiles in the cache and speeding things up a little bit.
2024-07-07 12:53:29 +00:00
Ivan Savenko
11a3da3f4f
Merge pull request #4220 from IvanSavenko/ai_optimize
...
[1.5.4] AI optimizations
2024-07-05 15:45:49 +03:00
Ivan Savenko
ad972eb7e2
Optimize BonusList::totalValue
2024-07-04 19:55:09 +00:00
Tomasz Zieliński
5b99974d31
Route roads even further away from zone boundary
2024-07-04 14:22:22 +02:00
Ivan Savenko
41ed7e2e10
Added TODO's for potential optimizations that I've discovered
2024-07-04 07:59:50 +00:00
Ivan Savenko
b0ff97675e
Remove mutex from access to constant value
2024-07-03 21:16:25 +00:00
Ivan Savenko
1468abb8a0
Remove excessive copies of large objects
2024-07-03 21:14:22 +00:00
Ivan Savenko
40f17d654d
Use containers with pre-allocations to improve pathfinding speed
2024-07-03 18:06:56 +00:00
Ivan Savenko
005c8e9e4d
Merge pull request #4197 from IvanSavenko/json_bonus_validation
...
Better validation of bonus json
2024-07-03 13:28:38 +03:00
Laserlicht
018127b236
set values for map editor and rmg
2024-06-29 14:01:25 +02:00
Laserlicht
02bd52041b
extend map format
2024-06-29 13:13:59 +02:00
Ivan Savenko
235fa871dd
Better validation of bonus json
...
- Json validator will now list all possible enum values on enum
validation failure
- Added validation of bonus string values using json valudation
- Deprecated bonus values (e.g. UNITL_BEING_ATTACKED) are now reported
via json validation
- Removed array version of "propagator" key since code only loads it as
a single string
2024-06-27 10:54:23 +00:00
Ivan Savenko
77e827c51e
Fix leveling up secondary skills via Scholar (map object) visit
2024-06-27 09:58:53 +00:00
Ivan Savenko
5bc103f50e
Show message to player instead of crashing silently on extraction error
2024-06-27 09:58:53 +00:00
Alexander Wilms
31e1d39f92
Fix issues introduced by fixing typos
2024-06-27 08:38:04 +00:00
Tomasz Zieliński
d7a4ea9f32
Draw random artifact as an atomic operation
2024-06-24 20:06:50 +02:00
Alexander Wilms
02e429e973
Fix typos using https://github.com/crate-ci/typos
...
Changes were reviewed manually
2024-06-24 03:47:19 +02:00
Ivan Savenko
3bea383b59
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-21 12:58:36 +00:00
Ivan Savenko
4e9feca8d4
Validate mod.json as json5 instead of strict json since Android launcher
...
no longer exists
2024-06-19 19:59:06 +00:00
Ivan Savenko
2b7131cfea
Show error message if vcmi unable to access data directory instead of
...
silent crash
2024-06-19 19:59:06 +00:00
Ivan Savenko
85d170af70
Merge pull request #4163 from godric3/fix-serialization-of-subtype-to-include-mod-id
...
fix CGObjectInstance `subTypeName` to include mod id
2024-06-19 21:29:06 +03:00
godric3
ddfc212a03
fix CGObjectInstance subTypeName
to include mod id
2024-06-18 21:42:22 +02:00
Ivan Savenko
af5572db15
Merge pull request #4157 from IvanSavenko/bugfixing
...
[1.5.3] Bugfixing
2024-06-18 12:14:43 +03:00
Ivan Savenko
0ca41127a6
Merge pull request #4152 from IvanSavenko/rmg_fix
...
[1.5.3] Fix rmg generation if player list is not continuous
2024-06-18 12:06:40 +03:00
Ivan Savenko
76bb32536f
Correctly iterate over allowed spells set (was vector originally)
2024-06-17 20:58:04 +00:00
Ivan Savenko
38bee87cf4
Do not activate mana vortex if hero already has double mana
2024-06-17 20:22:36 +00:00
Ivan Savenko
4e7809d934
Take resources on quest completion instead of giving them
2024-06-17 20:18:34 +00:00
Ivan Savenko
c68f2da977
Fix initialization of gold pile from random resource with fixed amount
2024-06-17 20:08:07 +00:00
Tomasz Zieliński
6d9f83a376
Protect lakes accessed from both zones with lock
2024-06-17 19:00:37 +02:00
Ivan Savenko
f2d870e651
Merge pull request #4130 from IvanSavenko/races_fixes
...
Fixes for discovered uninitialized memory access and thread data races
2024-06-17 17:26:16 +03:00
Ivan Savenko
2d0bd94135
Fix rmg generation if player list is not continuous
2024-06-17 13:35:58 +00:00
Andrey Filipenkov
bf832d4b13
fix building editor with Apple Clang 15
2024-06-13 06:38:15 +03:00
Ivan Savenko
e5dba942ac
Clear buffer (if any). Avoids false-positives with memcheck if buffer
...
contains old data
2024-06-12 18:13:21 +00:00
Ivan Savenko
1ac98e305f
Fix potential data race if two threads attempt to select bonuses with
...
different durations
2024-06-12 18:11:22 +00:00
Ivan Savenko
e32b6bd807
Fix potentially uninitialized members
2024-06-12 18:10:38 +00:00
Ivan Savenko
3a602bd3d4
Merge pull request #4040 from MichalZr6/develop
...
Add amount of resurrected Vampires to the battle log
2024-06-12 17:35:39 +03:00
Ivan Savenko
b4c6906471
Merge branch 'vcmi/beta' into 'vcmi/develop'
2024-06-11 19:22:23 +00:00
MichalZr6
15f86c0284
Fixed issues from review
2024-06-11 16:47:23 +02:00
Ivan Savenko
9c05e80315
Fix Admiral's Hat whirlpool immunity. Reduce usage of
...
convertFromVisitablePos
2024-06-11 14:31:11 +00:00
Ivan Savenko
55efa3c719
Merge remote-tracking branch 'vcmi/beta' into bugfixing
2024-06-11 14:10:17 +00:00
MichalZr6
65d22f17ae
proper logging of drained life and resurrected count
...
new struct for keeping track of healed HP (also drained life) and resurrected count
2024-06-09 23:54:20 +02:00
Ivan Savenko
9de6023224
Removed no longer needed pseudo-languages
2024-06-08 15:31:40 +00:00
Ivan Savenko
cffdf1081c
Merge pull request #4105 from IvanSavenko/limiter_fix
...
Fix CreatureTerrainLimiter
2024-06-08 13:47:03 +03:00
Ivan Savenko
308b403a55
Merge pull request #4096 from IvanSavenko/handle_terminate
...
Create crashdump on uncaught c++ exception
2024-06-08 13:46:24 +03:00
Andrey Filipenkov
5a58edde22
use 32-bit minizip file funcs on old Android
2024-06-08 00:09:03 +03:00
Ivan Savenko
1057fa4ef9
Re-enable code that was not restored after terrain rework
2024-06-07 12:24:36 +00:00
Ivan Savenko
22e58387f9
Also check for json when checking for battle animation existance
2024-06-07 11:57:46 +00:00
Ivan Savenko
79d568b17b
Try to handle uncaught c++ exception on Windows and create crashdump
2024-06-06 20:08:48 +00:00
Ivan Savenko
a8dcbd8ff9
Merge pull request #4061 from Laserlicht/hota_buildings
...
Support HotA thives guild
2024-06-05 12:41:35 +03:00
Ivan Savenko
615361a4d2
Remove excessive casts to void
2024-06-01 12:18:23 +00:00
Ivan Savenko
b50d350747
Show error message on load if mod has broken creature instead of
...
crashing on creature window screen
2024-06-01 11:49:51 +00:00
Ivan Savenko
b8beb4fb13
Fixes for various minor issues detected by Sonar Cloud
2024-06-01 11:48:30 +00:00
Ivan Savenko
b638b0b679
Fixed possible crash if hero class has no valid commander ID
2024-06-01 07:40:48 +00:00
Ivan Savenko
7e9c486a7a
"Transport Artifact" victory condition will no longer trigger if another
...
player completed it
2024-06-01 07:40:13 +00:00
Ivan Savenko
df83fa33a1
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-31 09:34:21 +00:00
Ivan Savenko
adc3441bda
Merge pull request #3998 from IvanSavenko/refactor_sdl_media
...
[1.6] Reorganize SDL sound/music/video handling
2024-05-31 12:02:55 +03:00
Laserlicht
9c1ce214fc
thievesGuild support
2024-05-30 21:58:35 +02:00
Laserlicht
3f9e53acc8
fix typo
2024-05-30 21:57:58 +02:00
Ivan Savenko
37e196c565
Automatically select preferred audio stream when playing video
2024-05-30 18:02:50 +00:00
Ivan Savenko
5d6470e527
Merge pull request #4025 from IvanSavenko/shared_ptr_lib
...
[1.6] Use shared_ptr for library entities
2024-05-30 19:14:06 +03:00
Ivan Savenko
5ecb527252
Merge pull request #3997 from IvanSavenko/serialization_refactor
...
[1.6] Serialization refactor
2024-05-30 19:13:21 +03:00
Ivan Savenko
9e0bae96cc
Merge pull request #3895 from SoundSSGood/CWindowWithArtifacts-refactoring2
...
CWindowWithArtifacts refactoring part2
2024-05-30 19:12:39 +03:00
Ivan Savenko
888149c6f6
Implemented simple versioning system for multiplayer
2024-05-29 20:08:32 +00:00
Ivan Savenko
5c2ca380ab
Merge pull request #4052 from vcmi/bank_battle
...
Config option for regular unit placement in Black Tower
2024-05-29 22:55:22 +03:00
Tomasz Zieliński
098c88eff4
Update serialization version
2024-05-29 20:52:59 +02:00
Tomasz Zieliński
3ac603767d
Basic config for regular unit placement in Black Tower
2024-05-29 20:20:33 +02:00
Ivan Savenko
dd2d0e285d
Merge pull request #4038 from IvanSavenko/pathfinder_fixes
...
[1.5.2] Pathfinder fixes
2024-05-29 18:15:51 +03:00
Ivan Savenko
df81c1d61a
Merge pull request #4050 from IvanSavenko/bonus_fix
...
[1.5.2] Bonus updaters fix
2024-05-29 18:14:14 +03:00
Ivan Savenko
2fcbfd978a
Merge pull request #4049 from IvanSavenko/campaign_fix
...
[1.5.2] Campaign fixes
2024-05-29 18:14:04 +03:00
Ivan Savenko
2ff28f6957
Merge pull request #4018 from IvanSavenko/voting
...
[1.5.2?] Multiplayer voting
2024-05-29 18:13:42 +03:00
Ivan Savenko
49138e3de9
Fixes Adrienne starting without Inferno spell in campaign
2024-05-29 14:28:36 +00:00
Ivan Savenko
d8f48f2c59
Merge pull request #4035 from IvanSavenko/stabilization
...
[1.5.2] Fixes for crashes in 1.5.1
2024-05-28 22:59:55 +03:00
Ivan Savenko
58b1e74342
Workaround - check also for valueType when updating bonuses
...
We should not assume that spells always have a single bonus with same
type/subtype
2024-05-28 17:01:30 +00:00
Ivan Savenko
28081085a8
Create separate instance of updater for every bonus
2024-05-28 16:43:28 +00:00
Ivan Savenko
520f690d35
Fix transfer of non-first artifacts in backpack if hero does not
...
transfers as well
2024-05-28 14:21:29 +00:00
Ivan Savenko
3847e3e2b4
Better comments, remove dead code
2024-05-28 13:43:16 +00:00
SoundSSGood
07239dcfb5
artifact parts calc
2024-05-24 21:22:08 +02:00
Ivan Savenko
f7989f6dcb
Allow landing on guarded tiles when flying in from guarded tile
2024-05-23 19:01:30 +00:00
Ivan Savenko
ac047d0d6d
Fixed handling of original game rules pathfinding
2024-05-23 19:01:30 +00:00
Ivan Savenko
0a3cfea017
Simplify code
2024-05-23 19:01:30 +00:00
Ivan Savenko
d7f5d24b99
If original movement rules are on, it is not possible to attack guards
...
from visitable object directly
2024-05-23 19:01:30 +00:00
Ivan Savenko
ef29c47408
Added GUARDED state to distinguish from blocked visitable
2024-05-23 19:01:30 +00:00
Ivan Savenko
c27dd04a1e
Abort game loading if corrupted mod is found and show explanation
2024-05-23 12:46:28 +00:00
Ivan Savenko
45bb6ada3d
Add compatibility for 64-bit 1.5.1 vs any 1.5.2 MP game
2024-05-23 12:46:28 +00:00
Ivan Savenko
f8a206b0c6
Fix serialization of size_t breaking 32<->64 bit compatibility
2024-05-23 12:46:28 +00:00
Ivan Savenko
c85ea98519
Merge pull request #4019 from IvanSavenko/simturn_tweaks
...
[1.5.2] Simturn tweaks
2024-05-21 14:18:42 +03:00
Ivan Savenko
ffe14fc1fc
Merge pull request #4022 from vcmi/master
...
Merge master -> beta
2024-05-20 18:09:51 +03:00
Ivan Savenko
52840afb24
Try to detect corrupted mod earlier
2024-05-20 11:00:35 +00:00
Ivan Savenko
215b279ea8
Contact between allies will no longer break simturns
2024-05-19 20:18:14 +00:00
Ivan Savenko
10b50cd905
It is now possible to vote for simturns and turn timer changes
2024-05-19 18:31:32 +00:00
Ivan Savenko
6f6555d19c
Downgrade fatal exception to disconnection message
2024-05-19 12:54:51 +00:00
Ivan Savenko
8931121d2e
Merge pull request #3995 from IvanSavenko/old_projects_remove
...
[1.6] Remove old project files
2024-05-19 15:44:32 +03:00
Ivan Savenko
d5f32c27b0
Merge pull request #3996 from IvanSavenko/retaliation_tweaks
...
[1.5.2] Retaliation preview tweaks
2024-05-19 15:44:16 +03:00
Ivan Savenko
692cbfb7e2
Merge pull request #3992 from IvanSavenko/mod_validation_fix
...
Tweaks to modding docs
2024-05-19 15:43:16 +03:00
Ivan Savenko
9bfe000724
Added semi-workaround method for network thread shutdown:
...
Currently closing game while network thread is waiting for something is
very bug-prone, since network thread may resume during shutdown and
access partially destroyed client state.
Now if exit has been requested, the very first step would be semi-
graceful shutdown of network thread (via exception throwing). This may
in theory skip some cleanup in non-RAII code, but since game is shutting
down this does not matters much.
This logic applies to:
- shutting down while network thread is waiting for dialogs
- shuttind down while network thread waiting for animations in combat
2024-05-18 11:04:10 +00:00
Ivan Savenko
0dfa781655
Add mutex as a quick fix for concurrent access to text handler by client
...
and server
2024-05-18 09:02:21 +00:00
Ivan Savenko
8754e0ebb3
Code formatting and cleanup
2024-05-17 17:10:29 +00:00
Ivan Savenko
f3de2cfe1c
Removed broken & unused serialization of player interface and AI
2024-05-17 16:35:53 +00:00
Ivan Savenko
31349f3052
Fix handling of missing video files
2024-05-17 15:43:21 +00:00
Ivan Savenko
7461df161c
lib now uses shared_ptr for entities. Removed manual memory management.
2024-05-17 15:04:05 +00:00