1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-14 10:12:59 +02:00
Commit Graph

7226 Commits

Author SHA1 Message Date
Ivan Savenko
1aa391fdf8 Split CGeneralTextHandler file into 1 file per class form
All text processing code is now located in lib/texts.
No changes other than code being moved around and adjustment of includes

Moved without changes:
Languages.h           -> texts/Languages.h
MetaString.*          -> texts/MetaString.*
TextOperations.*      -> texts/TextOperations.*

Split into parts:
CGeneralTextHandler.* -> texts/CGeneralTextHandler.*
                      -> texts/CLegacyConfigParser.*
                      -> texts/TextLocalizationContainer.*
                      -> texts/TextIdentifier.h
2024-07-20 12:55:17 +00:00
Ivan Savenko
2d3734656d Fix test 2024-07-19 12:17:06 +00:00
Ivan Savenko
2020d96070
Merge pull request #4071 from IvanSavenko/fix_rng_syncronization
[1.6] Fix potential desync if client uses different stdlib with different random number generators
2024-07-19 13:08:09 +03:00
Ivan Savenko
d02251f6a8
Merge pull request #4263 from Alexander-Wilms/json-error
JsonParser::parse(): Print file name if there were errors while parsing
2024-07-18 21:28:44 +03:00
Ivan Savenko
d55c4e3973
Merge pull request #4275 from IvanSavenko/music_modding
Additional options for music modding
2024-07-18 21:28:04 +03:00
Ivan Savenko
662254155a Merge branch 'vcmi/master' into 'vcmi/develop' 2024-07-17 13:57:36 +00:00
Alexander Wilms
b605dea6db JsonNode::JsonNode(): Also use reference for fileName argument in method definition 2024-07-17 14:37:58 +02:00
Alexander Wilms
c484244ba0
JsonNode::JsonNode(): Use reference for fileName argument
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-07-17 14:01:13 +02:00
Alexander Wilms
434371195d JsonNode constructors: Take fileName as argument
* Don't print JSON in JsonParser::parse() in case of errors
2024-07-17 13:50:59 +02:00
Alexander Wilms
1ca8e9b3ae JsonParser::parse(): Print JSON if there were errors while parsing
In cases where the file name was not specified, the warning messages were not very useful.

Example:

```json
File <unknown> is not a valid JSON file!
At line 33, position 1 warning: Comma expected!

{
        "name" : "New Old Heroes",
        "description" : "New heroes based on old 3DO artwork and other game appearances. Requires Horn of the Abyss.",
        "modType" : "Heroes",
        "version" : "1.2.0",
        "author" : "Aphra",
        "contact" : "",

        "heroes" :
        [
                "config/gwenneth.json",
                "config/balindar.json",
                "config/nicolas.json",
                "config/kastore.json",
                "config/kydoimos.json",
                "config/athe.json",
                "config/miseria.json",
                "config/areshrak.json",
                "config/pactal.json",
                "config/zog.json"
        ],

        "changelog" :
    {
        "1.0.0"   : ["Initial release"],
        "1.1.0"   : ["Added Nicolas Gryphonheart and Kastore"],
        "1.1.1"   : ["Bug fixes"],
        "1.2.0"   : ["Added some HotA portrait-only campaign heroes"]
    },

        "depends" :
                [ "hota.neutralCreatures" ]
        "keepDisabled" : true
}
```
2024-07-17 13:17:43 +02:00
Ivan Savenko
1072356002
Merge pull request #4268 from IvanSavenko/pathnode_reduce
Reduce size of CGPathNode and AIPathNode
2024-07-17 13:08:05 +03:00
Ivan Savenko
34b6eaa25e Integrating changes from PR #4251 - add logging for rng 2024-07-16 15:31:58 +00: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
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
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
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
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
Ivan Savenko
0d427980bc Entities are now non-copyable 2024-05-17 14:47:09 +00:00
Ivan Savenko
69e33e406d Try to minimize dll linkage usage 2024-05-17 13:09:45 +00:00
Ivan Savenko
03054af949 Add description for serialization changes, fix CURRENT value 2024-05-17 13:09:08 +00:00
Ivan Savenko
a688bc6b69 Remove debug code 2024-05-17 13:08:41 +00:00
Ivan Savenko
7f9df2ef6f Tweaks to retaliation damage calculation:
- method now uses early returns to avoid deeply nested if's
- assume that retaliation damage is zero if target will die from attack
- account for BLOCKS_RETALIATION bonus when computing whether target
will retaliate
2024-05-17 12:23:51 +00:00
SoundSSGood
7abfa7b42a ArtifactPosition::TRANSITION_POS now is simple ArtSlotInfo 2024-05-17 14:59:51 +03:00
Ivan Savenko
eb67e04ccb Remove old and unmaintained codeblocks project 2024-05-17 10:44:57 +00:00
Ivan Savenko
3f6eb13ee0 Delete old and unmaintained msvc project files 2024-05-17 10:44:11 +00:00
Ivan Savenko
721b15d9de Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-17 08:26:37 +00:00
Ivan Savenko
07813c9a79 Removed non-functional updateEntity in VLC 2024-05-16 22:05:26 +00:00
Ivan Savenko
a0ad810033 Remove old code 2024-05-16 19:11:33 +00:00
Ivan Savenko
2ed355952c Added proper serialization for unordered_map 2024-05-16 19:03:04 +00:00
Ivan Savenko
42f7a48fa4 Simplified integer serialization code 2024-05-16 18:53:49 +00:00
Ivan Savenko
84bc6c42db Added 'Serializeable' base class for classes serializeable by pointer 2024-05-16 18:40:59 +00:00
Ivan Savenko
65f63e862c Tweaks to modding docs & error reporting based on discovered issues 2024-05-16 15:14:36 +00:00
Ivan Savenko
f309a4eb82 Exclude some AB creatures from randomization picks
This changes handling of several campaign-only creatures to be in line
with H3 - Sharpshooters, Enchanters and Azure/Rust/Faerie/Crystal
dragons.

Now these creatures will not be picked for
- random creatures in Refugee Camp
- as replacement for Random Monster object from map editor

Random map generator is not affected and can still pick this creatures
(confirmed to be same in H3)
2024-05-16 09:53:37 +00:00
Ivan Savenko
f963b827e9 Add more descriptive error messages 2024-05-16 08:03:06 +00:00
Ivan Savenko
cce3f1cb2d Implemented compact serialization of integer numbers 2024-05-15 19:50:01 +00:00
Ivan Savenko
87eac164e6 Implemented string deduplication for serializer
Every unique string will now be serialized only once.
Reduces save size by ~20%
2024-05-15 19:49:59 +00:00
Ivan Savenko
5b182c31df Add 'hasFeature' method for convenience 2024-05-15 19:49:34 +00:00
Ivan Savenko
7ad64207ed Prefer high-quality bik's to smk's 2024-05-15 17:05:17 +00:00
Ivan Savenko
1b1f724de1
Merge pull request #3970 from Laserlicht/extra
ExtraOptions improvements
2024-05-15 15:20:59 +03:00
Ivan Savenko
35954dc41b Simple workaround to fix vcmiserver shutdown procedure
At the moment, vcmilobby *requires* async writes in order to handle
multiple connections with different speeds and at optimal performance,
without hanging if one player is too slow and can't eat all data server
sent to him at once.

However server (and potentially - client) can not handle this mode and
may shutdown either socket or entire asio service too early, before all
writes are performed, leading to weird freeze on ending scenario where
client would not receive notifications about end of game.
2024-05-14 19:40:20 +00:00
Ivan Savenko
da9d82b697
Merge pull request #3973 from vcmi/master
Merge master -> beta
2024-05-14 16:59:10 +03:00
Ivan Savenko
00728ded88 Report more information on exception 2024-05-14 12:48:19 +00:00
Ivan Savenko
c92a5bbbab Attempt to track crashes with unclear cause 2024-05-14 09:44:40 +00:00
Ivan Savenko
bb5627e98c
Merge pull request #3954 from IvanSavenko/fix_compile
Fix compilation issues
2024-05-14 12:16:27 +03:00
Laserlicht
941c1576c5
improve extraoptions 2024-05-14 00:33:30 +02:00
Ivan Savenko
c786354af3 Add better crash message for zero-length battlefield list 2024-05-13 21:03:06 +00:00
Ivan Savenko
62b564650d Fix possibly hanging pointer to deleted CGObjectInstance
Was stored by CRemoveObjectOperation and accessed on destruction even
though it has been removed by the game
2024-05-13 16:19:14 +00:00
Ivan Savenko
93da58beed Do not use locks on single-threaded server.
Especially since this lock is global and is shared between client and
server for no reason
2024-05-13 15:42:33 +00:00
Ivan Savenko
95d761bbb8 Handle corrupted H3 data - show message box instead of silent crash 2024-05-13 15:41:47 +00:00
Ivan Savenko
93038b791e Fix connection termination handling 2024-05-13 14:09:59 +00:00
Ivan Savenko
58d1c93c1b
Merge pull request #3931 from IvanSavenko/retaliation_preview
[1.5.1] Retaliation preview
2024-05-13 14:40:00 +03:00
Ivan Savenko
6d08ec6323 More robust handling of connection errors
Fixes potentially hanging by heartbeat sockets
2024-05-12 19:13:17 +00:00
Ivan Savenko
62c2be160a Added changing thread name for FreeBSD 2024-05-12 15:10:29 +00:00
Ivan Savenko
06aab2ccbb
Merge pull request #3924 from vcmi/fix_road_routing
Route roads away from zone borders
2024-05-12 16:02:38 +03:00
Ivan Savenko
33fd18e828
Merge pull request #3938 from IvanSavenko/lobby_fixes
[1.5.1] Fixes for issues with lobby server
2024-05-12 10:13:00 +03:00
Ivan Savenko
9049fb738a
Merge pull request #3946 from dydzio0614/mana-vortex-hero-order
Fix "bonusing" town building visiting hero order
2024-05-11 21:58:23 +03:00
Ivan Savenko
0ce78cae06
Merge pull request #3926 from IvanSavenko/optimize_map_list_load
[1.5.1] Improve performance of parsing of map headers for map list
2024-05-11 21:56:58 +03:00
Dydzio
f20ef4f1b3 Fix hero order for giving bonuses in town to match H3. 2024-05-11 20:21:02 +02:00
Ivan Savenko
dae3569077 Fix build 2024-05-11 16:18:21 +00:00
Ivan Savenko
0403626c93 Fix excessive calls of steady_timer::async_wait 2024-05-11 16:10:07 +00:00
Ivan Savenko
67604e1e01 Reapply "Simple implementation of heartbeat package"
This reverts commit ede92c1a9c.
2024-05-11 16:10:08 +00:00
Ivan Savenko
4c3aac8f19 Use async_write to prevent locks if receiver is too slow 2024-05-11 16:09:03 +00:00
Ivan Savenko
147db10a28 Avoid crash if configs file is missing, e.g. broken version of mod 2024-05-11 13:19:07 +00:00
Ivan Savenko
1bc7c29111 Add workaround for visiting Altar of Sacrifice on 1.4 saves 2024-05-11 13:19:07 +00:00
Ivan Savenko
16f43254b5 Use async_resolve to avoid crash on resolve error 2024-05-11 13:19:07 +00:00
Ivan Savenko
31401e219f Fix possible crash on nullptr dereference 2024-05-11 13:19:07 +00:00
Ivan Savenko
ac4204f660 Fixed calculation of retaliation damage 2024-05-10 19:40:14 +00:00
Tomasz Zieliński
5a979e42e2 Satisfy SonarCloud 2024-05-10 21:14:15 +02:00
Tomasz Zieliński
ee27a79aa1 Sonarcloud issues 2024-05-10 17:07:09 +02:00
Ivan Savenko
3acc1f1845 Improve performance of parsing of map headers for map list 2024-05-10 14:30:39 +00:00
Tomasz Zieliński
21bb61fc4d Unused variable 2024-05-10 15:56:49 +02:00
Tomasz Zieliński
7cb17afe7a Fix diagonal paths if we need to use them 2024-05-10 15:53:54 +02:00
Ivan Savenko
2521557f68 Fixed some newly reported issues from SonarCloud 2024-05-10 13:40:24 +00:00
Tomasz Zieliński
a6fa6855dc Route roads away from zone borders 2024-05-10 15:35:33 +02:00
Ivan Savenko
2ddb41e654 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-05-10 08:09:51 +00:00
Ivan Savenko
b4af84a3ce
Merge pull request #3911 from vcmi/penrose_cleanup
Clean up excessive operations and logs
2024-05-08 22:43:28 +03:00
Tomasz Zieliński
2297e09fcb Clean up excessive operations and logs 2024-05-08 15:51:42 +02:00
Ivan Savenko
718d42f0d6
Merge pull request #3910 from vcmi/center_penrose
Shift center of tiling to center of the map
2024-05-08 16:40:00 +03:00
Ivan Savenko
72703f89fe
Merge pull request #3909 from IvanSavenko/clean_rmg_crash
Disable 'catch everything' block in RMG in favor of clean crash
2024-05-08 16:39:52 +03:00
Tomasz Zieliński
37d062f1eb Fix incorrect comparison operator 2024-05-08 15:09:11 +02:00
Tomasz Zieliński
eece03d24f Fix for centering the tiles, extra logs 2024-05-08 13:16:26 +02:00
Tomasz Zieliński
ec20e9e907 Shift center of tiling to center of the map 2024-05-08 12:16:42 +02:00
Ivan Savenko
f5824ccea4 Re-throw exception on RMG failure to prevent weird crashes later 2024-05-08 09:55:34 +00:00
Ivan Savenko
8b861fc58f Do not check for guards when teleporting using means other than DD 2024-05-07 20:05:23 +00:00
Ivan Savenko
4769c86c82
Merge pull request #3902 from vcmi/underground_biomes
Option to define surface or underground level for obstacle set
2024-05-07 16:42:33 +03:00
Ivan Savenko
10a91cb1d8
Merge pull request #3901 from IvanSavenko/sonar_fix
[1.6] Fix some new issues reported by Sonar Cloud
2024-05-07 11:59:17 +03:00
Ivan Savenko
66e2e13ba1 Add few more safety checks to network connection logic 2024-05-07 08:34:47 +00:00
Ivan Savenko
ede92c1a9c Revert "Simple implementation of heartbeat package"
This reverts commit 5f344e410a.
2024-05-07 08:31:08 +00:00
Tomasz Zieliński
9763ea2ecb Style 2024-05-07 09:14:16 +02:00
DjWarmonger
4949b98ed3
Merge pull request #3759 from Laserlicht/bio
Let's try this
2024-05-07 09:05:14 +02:00
Tomasz Zieliński
dd55188b77 Option to define surface or underground level for obstacle set 2024-05-07 07:15:00 +02:00
Ivan Savenko
66f1f48d4c
Merge pull request #3867 from IvanSavenko/heartbeat
Simple implementation of heartbeat package
2024-05-06 22:35:58 +03:00
Ivan Savenko
30e0a16ee9 Fix some 'new' issues reported by Sonar Cloud 2024-05-06 15:33:30 +00:00
Andrii Danylchenko
157443c1df #3876 - allow to embark after battle for AI pathfinder 2024-05-05 13:52:57 +03:00
Ivan Savenko
6ac67775f5
Merge pull request #3861 from Laserlicht/pvp_options
Pvp options
2024-05-03 10:38:42 +03:00
Laserlicht
1f209fd94a use MetaString 2024-05-02 21:03:23 +02:00
Ivan Savenko
47c3e6f4b6 Simplified code 2024-05-02 17:53:36 +03:00
Ivan Savenko
08ce3a8338 Clarified code 2024-05-02 17:32:38 +03:00
Ivan Savenko
f6e5f09d50 Fix possible uninitialized variables 2024-05-02 17:32:27 +03:00
Laserlicht
812e96ebb1 Guest can also use & renaming 2024-05-01 15:58:22 +02:00
Tomasz Zieliński
20176521eb Actually revert this change, it's not better. 2024-05-01 15:27:19 +02:00
Tomasz Zieliński
4d13c3b94f Final fixes and tweaks 2024-05-01 13:58:24 +02:00
Tomasz Zieliński
186b6629c7 Do not hide roads behind objects 2024-05-01 12:15:07 +02:00
Tomasz Zieliński
d5b6e31223 Fix guard check 2024-05-01 11:38:44 +02:00
Tomasz Zieliński
5315beec8c Fixes for guard condition 2024-05-01 11:34:34 +02:00
Tomasz Zieliński
acab1d38cf Build fix 2024-05-01 10:45:01 +02:00
Tomasz Zieliński
7f3cf607a7 Allow guards not stronger than 1/3 max value next to roads 2024-05-01 10:24:21 +02:00
Tomasz Zieliński
67447acd0e First implementation that works 2024-05-01 09:16:10 +02:00
Tomasz Zieliński
4d948e8c6d Also, this 2024-05-01 07:58:47 +02:00
Tomasz Zieliński
9301bb9af5 Do not place guardes treasure on roads. Do not place guards next to roads. 2024-05-01 07:58:17 +02:00
Laserlicht
e505aab29a scrolling works 2024-05-01 00:49:33 +02:00
Ivan Savenko
5f344e410a Simple implementation of heartbeat package 2024-04-30 22:44:31 +03:00
Laserlicht
0565c062e5 Server functionality 2024-04-30 01:52:49 +02:00
Ivan Savenko
151075f088 Fix save compatibility with 1.4 that was broken by artifact costumes 2024-04-28 20:54:33 +03:00
Ivan Savenko
c74d728f5a
Merge pull request #3833 from SoundSSGood/artifacts-costumes
Artifacts costumes
2024-04-28 16:10:24 +03:00
SoundSSGood
0ac7108293
Update lib/CPlayerState.h
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-04-28 13:02:27 +02:00
Ivan Savenko
b0effdbbf4
Merge pull request #3836 from vcmi/unpropagate_bonus
Fixes issue of bonuses not correctly removed
2024-04-28 13:10:23 +03:00
SoundSSGood
ce68b3f45d class CArtifactsOfHeroMain : public CKeyShortcut 2024-04-27 21:35:38 +03:00
SoundSSGood
ce9d2d8ab8 Switching costume 2024-04-27 21:35:37 +03:00
SoundSSGood
25dea7e364 Saving costume 2024-04-27 21:35:37 +03:00
Laserlicht
ab50bf9198
biography to description 2024-04-27 18:41:21 +02:00
Andrii Danylchenko
39e19f79f4 Fix #3754, #2316 2024-04-27 13:57:50 +03:00
Tomasz Zieliński
914cea5877 Tweaks 2024-04-26 19:33:26 +02:00
Tomasz Zieliński
04691c851f Fixes issue of bonuses not correctly removed 2024-04-26 19:22:20 +02:00
Ivan Savenko
5010344df0 Added serialization of turn timer handler 2024-04-26 13:16:02 +03:00
Ivan Savenko
75aae66858 Fix off-by-one error - turnLimit 1 should work after 1st turn, not 2nd 2024-04-26 12:44:42 +03:00
Ivan Savenko
01c2814d35
Merge pull request #3821 from SoundSSGood/CWindowWithArtifacts-refactoring
CWindowWithArtifacts refactoring
2024-04-26 11:58:38 +03:00
Ivan Savenko
6413747fff
Merge pull request #3828 from IvanSavenko/fix_rewardable
Fix crash on visiting misconfigured rewardable object
2024-04-26 11:58:27 +03:00
Ivan Savenko
1dc962804e Fixed possible crash on having selectable reward with no visual image 2024-04-25 14:04:45 +03:00
Ivan Savenko
428c88d8c1
Merge pull request #3776 from IvanSavenko/lobby_room_compatibility_check
Check for game version and mods compatibility in lobby
2024-04-25 11:46:40 +03:00
Ivan Savenko
7f732b6d0a Fix thrown exception on random monster initialization 2024-04-24 22:57:13 +03:00
SoundSSGood
20471c9c2f virtual CWindowObject 2024-04-23 18:58:41 +03:00
Ivan Savenko
3e23a55c66 Fix build 2024-04-23 17:15:59 +03:00
Ivan Savenko
526ac9807b Enabled 'keepalive' option to detect dead connections 2024-04-23 17:15:59 +03:00
Ivan Savenko
1840666327 Implemented join room dialog 2024-04-23 17:15:59 +03:00
Ivan Savenko
e5f8cefa7f Store and send mod list and game version for game rooms 2024-04-23 17:15:59 +03:00
Ivan Savenko
6ba6e0d55b Moved serialization of ModCompatibilityInfo from MapFormat 2024-04-23 17:15:59 +03:00
Ivan Savenko
62d15ed23c
Merge pull request #3820 from IvanSavenko/bugfixing
Bugfixing
2024-04-23 13:03:36 +03:00
Ivan Savenko
5454d01316 Provide more information in thrown exceptions for unfixed crashes 2024-04-22 16:40:43 +03:00
Ivan Savenko
a6dead7725 Fixed loading of text strings for hota quests 2024-04-22 13:49:17 +03:00
Ivan Savenko
ffec4b9154 Explicitly ban 'large' dwellings from random selection
Old code was relying on specific sorting order leading to easy to break
logic
2024-04-22 12:35:55 +03:00
Ivan Savenko
438ec08d72 AI will only ignore garrisons in 'Steadwick Fall' mission (H3 logic) 2024-04-22 11:14:58 +03:00
Ivan Savenko
21dff9413e
Merge pull request #3786 from IvanSavenko/instant_movement
Instant movement
2024-04-22 11:08:00 +03:00
Ivan Savenko
55756dbc43
Merge pull request #3785 from dydzio0614/bank-revisit-fix
Empty treasure bank does not ask for enter anymore
2024-04-22 11:06:58 +03:00
Ivan Savenko
1b469036a3
Merge pull request #3784 from dydzio0614/quick-dwellings-visit
Add handling for yes/no dialogs that can be safely skipped by player
2024-04-22 11:06:40 +03:00
Andrii Danylchenko
ae69311023 #3788 - fix passing wirlpool with only commander alive 2024-04-20 15:28:57 +03:00
Ivan Savenko
d5a2ad1be8 Allow sending requests to move across multiple tiles at once 2024-04-20 12:28:50 +03:00
Ivan Savenko
9353e24fa5
Merge pull request #3792 from IvanSavenko/bugfixing
Fixes for minor issues
2024-04-19 12:35:25 +03:00
Ivan Savenko
d8baa3c145
Merge pull request #3789 from dydzio0614/fix-sounds
Fix some missing/redundant sounds to match H3
2024-04-18 21:34:53 +03:00
Ivan Savenko
16b73bccba
Merge pull request #3787 from kdmcser/damage_crash_fix
Fix creature min damage greater than max will cause game crash. #3780
2024-04-18 21:34:12 +03:00
Ivan Savenko
c87e60740b Fixes hota prisons replacing every h3 prison on h3m maps 2024-04-18 19:13:32 +03:00
Ivan Savenko
6af2609e0f Do not write mods that do not affect gameplay to saved games 2024-04-18 19:13:02 +03:00
Ivan Savenko
ecc88fabc1 Disable translation validation due to too many false positives 2024-04-18 19:12:39 +03:00
Ivan Savenko
8b18074e7b
Merge pull request #3773 from dydzio0614/mine-bug-fix
Remove redundant double sound play on mine capture
2024-04-18 15:09:43 +03:00
Ivan Savenko
9023af4426
Merge pull request #3772 from dydzio0614/resources-bonus
Add some utility bonuses for player resources boosting
2024-04-18 15:09:34 +03:00
kdmcser
c2d76ab95d
accept log text suggestion
Co-authored-by: Alexander Wilms <Alexander-Wilms@users.noreply.github.com>
2024-04-18 08:40:25 +08:00
Dydzio
98375cc627 Limit showing empty message instantly to creature banks and dragon utopia 2024-04-17 22:08:17 +02:00
Dydzio
1401211145 Fix missing/redundant sounds to match H3 2024-04-17 21:02:43 +02:00
kdmcser
b61011e8b4
accept get creature name suggestion
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-04-18 00:48:51 +08:00
kdmcser
1c6dfb5cc5 Fix creature min damage greater than max will cause game crash. #3780 2024-04-17 23:24:13 +08:00
Dydzio
20eaf17a18 Empty treasure bank does not ask for enter anymore 2024-04-17 01:25:58 +02:00
Dydzio
19453aab41 Add handling for yes/no dialogs that can be safely skipped by player 2024-04-17 01:08:27 +02:00
Ivan Savenko
ea48976fba Disable failing assertion 2024-04-16 18:54:25 +03:00
Dydzio
f7dd80c732 Remove redundant double sound play on mine capture 2024-04-16 00:01:37 +02:00
Dydzio
b351946afd Add some utility bonuses for player resources boosting 2024-04-15 21:18:45 +02:00
Ivan Savenko
9390825ee7
Merge pull request #3763 from IvanSavenko/fix_tp
Fix regressions
2024-04-14 14:14:23 +03:00
Tomasz Zieliński
d22f42d58a Tweak numbers to ensure tiling covers entire map 2024-04-14 07:25:52 +02:00
DjWarmonger
0808a8b36f
Merge pull request #3714 from vcmi/biome_system
Biome system implementation
2024-04-13 21:32:13 +02:00
Tomasz Zieliński
9305f360d1 Actually, lava will only have 3 obstacle sets without mods 2024-04-13 20:56:05 +02:00
Tomasz Zieliński
50ae067a60 Build fix 2024-04-13 19:33:47 +02:00
Tomasz Zieliński
f491f10d81 Final tweaks 2024-04-13 19:21:01 +02:00
Ivan Savenko
d70914a147 Fixes regression - blocked TP when casting spell on land 2024-04-13 16:56:48 +03:00
Tomasz Zieliński
e28fd869aa Remove empty obstacle sets, just in case. 2024-04-13 14:53:00 +02:00
Laserlicht
e4b60baa3b
creature/town biography/description 2024-04-12 23:35:39 +02:00
Ivan Savenko
3e0eb3ac02
Merge pull request #3752 from IvanSavenko/fix_spell_reward
Do not give spells as reward if hero can't learn them
2024-04-12 16:52:23 +03:00
Tomasz Zieliński
a7d0f0626a Docs & final touches 2024-04-12 14:53:07 +02:00
Ivan Savenko
e1581087c3
Merge pull request #3750 from IvanSavenko/fix_quest_crash
Fix crash on accessing nullptr quest
2024-04-12 15:25:33 +03:00
Tomasz Zieliński
be9813b4fb Remove temporary workaround 2024-04-12 11:51:15 +02:00
Ivan Savenko
0bd1c3c95d
Merge pull request #3746 from IvanSavenko/fix_undefined_behavior
Fix discovered undefined behavior cases
2024-04-12 11:51:13 +03:00
Ivan Savenko
6e9f15c8e6
Merge pull request #3743 from dydzio0614/special-factions
Allow factions to be special
2024-04-12 11:49:58 +03:00
Tomasz Zieliński
4fa7f0e93d Also allow filtering biomes by faction(s) 2024-04-12 10:25:13 +02:00
Ivan Savenko
a7d47cd3d2
Merge pull request #3742 from IvanSavenko/adventure_map_spellcast_fixes
Adventure map spellcasting fixes
2024-04-12 11:17:19 +03:00
Ivan Savenko
622e4b059b
Update lib/CTownHandler.cpp 2024-04-12 11:14:35 +03:00
Tomasz Zieliński
6899acc1d7 Fix alignments check 2024-04-12 09:38:45 +02:00
Tomasz Zieliński
1f81ddbac4 Fixes in object loading 2024-04-12 06:29:01 +02:00
Ivan Savenko
9e81c53547 Do not give spells as reward if hero can't learn them 2024-04-12 00:25:02 +03:00
Ivan Savenko
9cf3db4eb5 Completely remove dead quest instead of leaving nullptr
All code that uses this container assumes non-null content
2024-04-11 23:56:29 +03:00
Tomasz Zieliński
68bb36f7c7 Compile fixes 2024-04-11 18:38:50 +02:00
Ivan Savenko
53fcd3ad26
Merge pull request #3739 from SoundSSGood/fixes
Fixes for found regressions
2024-04-11 19:30:55 +03:00
Tomasz Zieliński
a356fdaf2a Allow filtering obstacles by faction aligmnment 2024-04-11 18:10:14 +02:00
Ivan Savenko
edcf12a80c (untested) Attempt to fix crash on moving artifact on Android 2024-04-11 16:21:44 +03:00
Ivan Savenko
c99d4b959e Fix potentially uninintialized variables 2024-04-11 13:25:54 +03:00
SoundSSGood
738a89bb99 Market fix 2024-04-10 23:30:31 +03:00
SoundSSGood
e8a6308a15 Artifacts swap check 2024-04-10 23:30:31 +03:00
Dydzio
00ebbad622 Ability to make faction not pickable on typical maps 2024-04-10 21:22:29 +02:00
Ivan Savenko
320469d773 Cleanup 2024-04-10 20:04:08 +03:00
Ivan Savenko
3fc4383153 Show popup dialog instead of server error when using TP from water 2024-04-10 20:04:08 +03:00
Ivan Savenko
6c45353aa7 Casting DD or TP will now spend mana before hero movement (and any side
effects such as visiting objects)
2024-04-10 20:04:08 +03:00
Ivan Savenko
8353bca34f Small refactoring of adventure map spell casting:
- Removed duplicated checks for DD possibility
- Moved most of spell-specific code from AdventureMapInterface to library
code
- AdventureSpellMechanics class now provides methods to check whether
spellcast is possible, similarly to battle spells
- If it is not possible to cast adventure map spell (e.g. no mana or no
move points) game will show infowindow immediately on clicking spellbook
instead of on cast attempt
- If hero does not have movement points for a DD, game will show correct
error message
- Added game settings 'dimensionDoorFailureSpendsPoints' due to
discovered H3 logic
2024-04-10 20:04:08 +03:00
Ivan Savenko
bcd4a8c961
Merge pull request #3736 from IvanSavenko/fix_server_translations
Do not translate strings on server side
2024-04-10 19:12:34 +03:00
Ivan Savenko
5b43720dda
Merge pull request #3686 from dydzio0614/dimension-door-changes
Dimension door changes
2024-04-10 11:47:36 +03:00
Tomasz Zieliński
6c9d18a85c Allow multiple terrains per biome 2024-04-10 09:40:12 +02:00
Tomasz Zieliński
5c4d1703ca Fix for loading templates from other mods 2024-04-09 22:09:03 +02:00
Dydzio
637270ee36 Minor fixes 2024-04-09 19:59:27 +02:00
Ivan Savenko
510e1023da
Merge pull request #3730 from IvanSavenko/localization_export
Better export command for translations
2024-04-09 19:11:10 +03:00
Ivan Savenko
8aaa9e63dd Fix build 2024-04-09 18:56:28 +03:00
Tomasz Zieliński
8d9489c368 Fix conflicts with templates loaded from mods 2024-04-09 17:29:33 +02:00
Ivan Savenko
50e8d1fd82 Add save compatibility check 2024-04-09 16:42:20 +03:00
Ivan Savenko
42616cf4e8 Fix text formatting, fix todo's 2024-04-09 16:13:30 +03:00
Ivan Savenko
18ece6dcf6 Remove some usages of server-side translations 2024-04-09 16:13:30 +03:00
Ivan Savenko
7a42e21e4d Fix formatting of luck/morale bonuses 2024-04-09 16:13:30 +03:00
Ivan Savenko
9e49587749 Replace bonus string description with metastring that can properly
handle translations
2024-04-09 16:13:30 +03:00
Tomasz Zieliński
bf2c9237b2 Register templates for new objects from mods 2024-04-08 16:39:41 +02:00
Tomasz Zieliński
c7149103ce Compile fix 2024-04-08 15:24:52 +02:00
Tomasz Zieliński
d9a598ad9c Merge remote-tracking branch 'origin/develop' into biome_system 2024-04-08 15:01:17 +02:00
Tomasz Zieliński
224e971c4b Unused variable 2024-04-08 14:56:21 +02:00
Tomasz Zieliński
3e3959d360 Move all OH3 objects and obstacle sets to a mod 2024-04-08 12:50:41 +02:00
Ivan Savenko
050157db9d Register vcmi-only strings as part of 'vcmi' mod instead of 'core' 2024-04-08 13:16:54 +03:00
Ivan Savenko
4947baebee Fix crash on loading vmap's 2024-04-08 13:16:34 +03:00
Ivan Savenko
8582bd7d66 Replaced 'convert txt' command with more convenient 'translate' and
'translate maps' commands.
2024-04-08 13:16:23 +03:00
Ivan Savenko
5dcef193a3 Block spellcasting if 0 creatures will be raised 2024-04-07 18:50:37 +03:00
Tomasz Zieliński
86cffb3a77 Removed unused variable 2024-04-06 18:12:44 +02:00
Tomasz Zieliński
73ec53a9e0 Fix build 2024-04-06 15:29:15 +02:00
Tomasz Zieliński
b0cff23c37 Cleanup 2024-04-06 15:06:08 +02:00
Ivan Savenko
907438c6f5 Fix crash on attempt to compute movement range for siege tower 2024-04-06 15:59:08 +03:00
Ivan Savenko
1a6aae9363 Fix crash on selecting scenario with "start with strongest hero from
scenario X" starting bonus
2024-04-06 15:59:08 +03:00
Andrii Danylchenko
8efceb110b #3691 - boat attached to hero should not block tiles on its own 2024-04-06 12:30:19 +03:00
Tomasz Zieliński
305e2bdf2f Load obstacle sets from json in mods 2024-04-05 08:31:05 +02:00
Tomasz Zieliński
b1a5693612 Proof of concept with OH3 obstacles 2024-04-04 21:39:01 +02:00
Tomasz Zieliński
8ed940d538 cleanup 2024-04-03 22:24:19 +02:00
Tomasz Zieliński
9f048888dd Restore previous removeObject 2024-04-03 22:17:36 +02:00
Tomasz Zieliński
12da0196a0 Restrict reindexing to random maps 2024-04-03 20:05:35 +02:00
Tomasz Zieliński
2a213f2276 Reindex objects to show interactive objects on top 2024-04-03 14:48:04 +02:00
Dydzio
ecb2bcb2db Fix TODO comments 2024-04-01 21:58:17 +02:00
Dydzio
e5e14adb51 Add setting for HD mod tournament rules dimension door limit 2024-04-01 21:52:11 +02:00
Dydzio
3f94d316cb Fix cursor & add way to access danger info for HotA-like DD cursor 2024-04-01 20:18:35 +02:00
Dydzio
f51e1a0ba6 Working version of dimension door triggering guards 2024-04-01 19:00:24 +02:00
Dydzio
3bb66de551 Serverside validation, setting for terrain compatibility before cast etc 2024-04-01 18:12:38 +02:00
Dydzio
e69c096f94 Move dimension door FoW limit check to lib 2024-04-01 15:13:18 +02:00
Dydzio
70b86e5a87 Merge remote-tracking branch 'origin/develop' into dimension-door-changes 2024-03-30 10:45:00 +01:00
Ivan Savenko
64ff0e0486 Fix handling of 'developmentMode' for lobby-only builds 2024-03-30 10:24:54 +02:00
Ivan Savenko
acd2352653
Merge pull request #3699 from IvanSavenko/lobby_tweaks
Minor tweaks for most noticeable issues with new lobby
2024-03-30 00:13:14 +02:00
Andrii Danylchenko
ca7c91e766
Merge pull request #3677 from vcmi/object-graph
Object graph
2024-03-29 20:39:56 +02:00
Ivan Savenko
64a5a355e5
Merge pull request #3698 from 678098/fix_include_guards
Fix: include guards, licenses, StdInc
2024-03-29 17:30:38 +02:00
Ivan Savenko
675e7c3110 Move files that are not needed for lobby to main part of vcmi_lib 2024-03-29 15:02:14 +02:00
Evgeny Malygin
ee42527ee1
Fixes 2024-03-29 12:28:14 +02:00
Ivan Savenko
19860de137
Merge pull request #3693 from IvanSavenko/lobby_deploy
Preparation for lobby server deployment
2024-03-29 11:33:46 +02:00
Evgeny Malygin
25125f96da
Fix: licenses, pragma guards, StdInc 2024-03-29 07:48:52 +02:00
Dydzio
fe42fab2d6 Merge remote-tracking branch 'origin/develop' into dimension-door-changes 2024-03-28 18:26:21 +01:00
Ivan Savenko
08db09eaff
Merge pull request #3692 from RoboSchmied/RoboSchmied-AGfixT86
Fix: 9 typos in serializer and docs
2024-03-28 13:18:12 +02:00
Ivan Savenko
1f487dab49
Merge pull request #3685 from dydzio0614/small-fixes
Small fixes
2024-03-28 13:17:57 +02:00
Ivan Savenko
1ef8452370
Merge pull request #3679 from godric3/map-editor-customize-hero-spells
map editor: Allow to customize hero spells
2024-03-28 13:17:27 +02:00
DjWarmonger
16bcbc843a
Merge pull request #3689 from vcmi/fix_rmg_race_conditions
Fix rmg race conditions
2024-03-28 11:48:04 +01:00
Ivan Savenko
5a54cfbc80
Merge pull request #3687 from Kris-Ja/develop
Fix BonusLimitEffect
2024-03-28 12:38:55 +02:00
DjWarmonger
148cfc6cbc
Merge pull request #3674 from 678098/patch-2
Fix(minizip/mztools.c): prevent file descriptor leak
2024-03-28 11:33:54 +01:00
DjWarmonger
7d94b5db9f
Merge pull request #3675 from 678098/develop
Fix(minizip/minizip.c): fix possibly uninitialized variable usage
2024-03-28 11:33:44 +01:00
Ivan Savenko
39da7b3e32 Added option to build minimal vcmi library as needed by lobby 2024-03-28 12:07:49 +02:00
Ivan Savenko
dd785d71c9 Fix linking when using static libraries without client 2024-03-28 12:07:49 +02:00
RoboSchmied
9c334f54fe Fix: 9 typos
Signed-off-by: RoboSchmied <github@roboschmie.de>
2024-03-28 03:03:44 +01:00
Dydzio
25f9e6a3e9 Add setting to allow previous VCMI mechanics of dimension door 2024-03-27 23:39:08 +01:00
Dydzio
048fb1867d Merge remote-tracking branch 'origin/develop' into dimension-door-changes 2024-03-27 23:03:33 +01:00