Commit Graph
100 Commits
Author SHA1 Message Date
Ivan Savenko 37af8a1cbe Merge pull request #7158 from Opuszek/fixes_targeting_of_power_liches
Fixes targeting of undead units by power liches
2026-03-30 14:48:11 +03:00
Ivan Savenko b7a027b2f9 Merge pull request #7154 from IvanSavenko/vcmi_campaign_fs
[1.7.4] Fix crash on accessing VCMI campaign inside .zip archive
2026-03-30 14:47:14 +03:00
Ivan Savenko 5d6cfc366b Fix crash on accessing VCMI campaign inside .zip archive
Fixes cases where game would try to access file on real filesystem for
VCMI campaigns files that are actually located inside .zip archive.

Made search for other usages of last_write_time access, don't see any
other similar cases left
2026-03-28 20:51:27 +02:00
Ivan Savenko 826c614d77 Merge pull request #6748 from Laserlicht/api_lobby
[1.8?] API for lobby
2026-03-28 01:42:16 +02:00
Ivan Savenko e8177799f5 Merge pull request #7145 from IvanSavenko/server_update
Update docs to account for builds migration
2026-03-27 21:04:52 +02:00
Ivan Savenko f049546194 Update docs to account for builds migration 2026-03-27 20:55:55 +02:00
Ivan Savenko 051d5282c8 Merge pull request #7146 from Laserlicht/fixes
[1.7.4] Fixes
2026-03-27 19:10:01 +02:00
Ivan Savenko b03bf66b47 Merge pull request #7148 from GeorgeK1ng/tut_fix
[1.7.4] Fix tutorial import
2026-03-27 19:09:48 +02:00
Ivan Savenko c4742c1aaf Merge pull request #7144 from GeorgeK1ng/android_tv
[1.7.4] Add required files for Google TV
2026-03-27 18:33:57 +02:00
Ivan Savenko 6d2ff4923e Merge pull request #7140 from IvanSavenko/server_update
Update daily builds server configuration and maintenance docs
2026-03-26 20:11:35 +02:00
Ivan Savenko d1ec2467e6 Added documentation on server setup, upload scripts from server 2026-03-26 19:53:35 +02:00
Ivan Savenko 3542182beb Merge pull request #7136 from smanolloff/beta+mmai-moats
[1.7.4] Fix MMAI with moat
2026-03-26 05:54:12 +02:00
Ivan Savenko 4c92120d2f Merge pull request #7130 from kambala-decapitator/backport-ai-exception-crash
Backport AI exception crash fixes
2026-03-23 16:29:29 +02:00
Ivan Savenko a3e7715e06 Merge pull request #7128 from GeorgeK1ng/notr_tweak
[1.7.4] Remove translation flag from navigation buttons
2026-03-22 10:48:45 +02:00
Ivan Savenko 1cedbe4cc1 Merge pull request #7119 from Laserlicht/creature_reward
fix creature reward message
2026-03-21 15:48:06 +02:00
Ivan Savenko cfbc036564 Merge pull request #7021 from Opuszek/fix_preliminary_spell_target_choice
reworks battleAI preliminary spell target choice
2026-03-19 15:23:13 +02:00
Ivan Savenko df3b14d782 Merge pull request #7062 from Opuszek/fix_targeting_for_spell_like_attacks
fix problems with death cloud targeting
2026-03-19 15:21:03 +02:00
Ivan Savenko 96a61a0e97 Merge pull request #7113 from IvanSavenko/weblate_android
Remove duplicated Norwegian and Chinese Android translation
2026-03-19 09:54:50 +02:00
Ivan Savenko 84a8811fb5 Remove duplicated Norwegian and Chinese Android translation 2026-03-19 09:36:58 +02:00
Ivan Savenko 291c22d733 Merge pull request #7110 from IvanSavenko/fix_xml
Fix invalid translation .xml
2026-03-19 09:31:27 +02:00
Ivan Savenko 2b6351b727 Fix invalid translation .xml 2026-03-19 09:16:59 +02:00
Ivan Savenko 61762ae3ac Merge pull request #7048 from vcmi/weblate
Translations update from Hosted Weblate
2026-03-18 23:15:29 +02:00
Ivan Savenko 1a4c20d0f7 Translated using Weblate (Ukrainian)
Currently translated at 87.0% (805 of 925 strings)

Translated using Weblate (Ukrainian)

Currently translated at 83.3% (771 of 925 strings)

Translated using Weblate (Ukrainian)

Currently translated at 76.2% (705 of 925 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (414 of 414 strings)

Translated using Weblate (Ukrainian)

Currently translated at 59.3% (549 of 925 strings)

Translated using Weblate (Spanish)

Currently translated at 28.3% (311 of 1096 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (1096 of 1096 strings)

Translated using Weblate (Ukrainian)

Currently translated at 46.3% (429 of 925 strings)

Translated using Weblate (English)

Currently translated at 100.0% (1096 of 1096 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (414 of 414 strings)

Translated using Weblate (Dutch)

Currently translated at 94.0% (1031 of 1096 strings)

Translated using Weblate (Romanian)

Currently translated at 89.2% (978 of 1096 strings)

Translated using Weblate (Portuguese)

Currently translated at 59.1% (648 of 1096 strings)

Translated using Weblate (Serbian)

Currently translated at 94.0% (1031 of 1096 strings)

Translated using Weblate (Italian)

Currently translated at 54.7% (600 of 1096 strings)

Translated using Weblate (Ukrainian)

Currently translated at 86.3% (946 of 1096 strings)

Translated using Weblate (Russian)

Currently translated at 94.0% (1031 of 1096 strings)

Translated using Weblate (Latvian)

Currently translated at 94.6% (1037 of 1096 strings)

Translated using Weblate (Czech)

Currently translated at 98.6% (1081 of 1096 strings)

Translated using Weblate (Vietnamese)

Currently translated at 93.3% (1023 of 1096 strings)

Translated using Weblate (Hungarian)

Currently translated at 54.5% (598 of 1096 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 95.0% (1042 of 1096 strings)

Translated using Weblate (Filipino)

Currently translated at 94.0% (1031 of 1096 strings)

Translated using Weblate (English)

Currently translated at 100.0% (1096 of 1096 strings)

Translated using Weblate (Ukrainian)

Currently translated at 82.0% (899 of 1096 strings)

Translated using Weblate (Ukrainian)

Currently translated at 99.2% (411 of 414 strings)

Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/cs/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/en/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/es/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/fil/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/hu/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/it/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/lv/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/nl/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/pt/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/ro/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/ru/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/sr/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/uk/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/vi/
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/vcmi/editor/uk/
Translate-URL: https://hosted.weblate.org/projects/vcmi/launcher/uk/
Translation: VCMI/Game client
Translation: VCMI/Launcher
Translation: VCMI/Map Editor
2026-03-18 23:10:15 +02:00
Ivan Savenko dc4c46a99a Merge pull request #7081 from IvanSavenko/more_translations
Weblate export support for Linux appstream and desktop files
2026-03-18 23:05:26 +02:00
Ivan Savenko 6ed9425eff Remove translator comment from linguist files
Mostly due to it not being editable by actual translator on Weblate. And
Weblate correctly marks this strings as unfinished, so human translator
will still see these strings & review
2026-03-18 22:45:26 +02:00
Ivan Savenko 88352fe82a Remove unused file 2026-03-15 17:42:25 +02:00
Ivan Savenko cbf2c86143 Add dummy Android translations 2026-03-15 17:20:28 +02:00
Ivan Savenko c6785db42c Remove comments - strings reviewed on Weblate 2026-03-15 17:08:10 +02:00
Ivan Savenko 501509a2ec Fix typos and missing full stops in Launcher 2026-03-15 17:03:32 +02:00
Ivan Savenko 3257cce80c Weblate export support for Linux appstream and desktop files 2026-03-15 16:39:35 +02:00
Ivan Savenko 93846ab7e4 Merge pull request #7088 from Laserlicht/discord_support
[1.7.4] add discord support for all missing systems
2026-03-15 16:04:18 +02:00
Ivan Savenko 90639b3876 Merge pull request #7077 from kambala-decapitator/ios-ccache
[CI] use `ccache` for iOS from Homebrew again
2026-03-15 08:26:02 +02:00
Ivan Savenko c3fb7f65bf Merge pull request #7087 from vcmi/fix_discovery
[1.7.4] fix crash when multiple processes are in lobby
2026-03-15 08:19:28 +02:00
Ivan Savenko 07f99e8839 Merge pull request #7059 from Laserlicht/linux_conan
[1.7.4] appimage with conan
2026-03-14 20:19:59 +02:00
Ivan Savenko 5866d39e40 Merge pull request #7065 from IvanSavenko/lobby_fix
Fix compilation of lobby package
2026-03-12 20:52:19 +02:00
Ivan Savenko e0c13bfb1d Fix compilation of lobby package
Fixes compilation when vcmilobby is enabled alongside with minimal
library. Added cmake preset & CI job to prevent breakage in future
2026-03-11 12:21:32 +02:00
Ivan Savenko 41207f47b5 Merge pull request #7068 from Karyoplasma/fix-object-messages
Fix rallyFlag and oasis messages
2026-03-11 12:20:49 +02:00
Ivan Savenko 583dc441d5 Merge pull request #7036 from Laserlicht/invite
[1.7.4] use CObjectListWindow for hero invite
2026-03-07 10:08:21 +02:00
Ivan Savenko a1b1b11116 Merge pull request #6916 from MichalZr6/random_art_properties
[Mapeditor] Fix crash when clicking on random artifacts
2026-03-06 18:41:10 +02:00
Ivan Savenko 54f227575e Merge pull request #7045 from Opuszek/fix_canCastOnlyOnSelf
Fixes canCastOnlyOnSelf not applying on dead stacks
2026-03-06 12:23:40 +02:00
Ivan Savenko c8df84d8ac Merge pull request #6810 from Opuszek/fix_until_attack_spell_duration
[1.7.4] Remove bonuses with "UNTILL_BEING_ATTACKED" bonus after counterattack.
2026-03-05 23:31:02 +02:00
Ivan Savenko b512c7c028 Merge pull request #6939 from Laserlicht/configurable_days
[1.7.4] Configurable days
2026-03-05 23:28:59 +02:00
Ivan Savenko 3f60173574 Merge pull request #6969 from GeorgeK1ng/fullextraction
[1.7.4] Support for optional full mod extraction
2026-03-05 23:28:42 +02:00
Ivan Savenko 5f46f0ffc7 Merge pull request #7028 from IvanSavenko/fix_compat
Use local mod information to decide on mod compatibility
2026-03-05 23:18:51 +02:00
Ivan Savenko a21b94fed2 Merge pull request #7042 from vcmi/weblate
Translations update from Hosted Weblate
2026-03-05 18:11:45 +02:00
Ivan Savenko 2cd9c4b610 Translated using Weblate (Ukrainian)
Currently translated at 78.1% (857 of 1096 strings)

Translation: VCMI/Game client
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/uk/
2026-03-05 16:58:51 +01:00
Ivan Savenko 9fa5e95234 Translated using Weblate (Ukrainian)
Currently translated at 74.2% (814 of 1096 strings)

Translation: VCMI/Game client
Translate-URL: https://hosted.weblate.org/projects/vcmi/client/uk/
2026-03-05 16:37:42 +01:00
Ivan Savenko 677f55ea7a Translated using Weblate (Ukrainian)
Currently translated at 33.8% (313 of 925 strings)

Translation: VCMI/Map Editor
Translate-URL: https://hosted.weblate.org/projects/vcmi/editor/uk/
2026-03-05 16:37:41 +01:00
Ivan Savenko 2fd5f4cb8e Merge pull request #7041 from IvanSavenko/fix_translation
Fix json formatting in translations
2026-03-05 17:21:44 +02:00
Ivan Savenko 50d3ea867d Fix json formatting 2026-03-05 16:51:49 +02:00
Ivan Savenko 5355ad426b Merge pull request #7040 from vcmi/weblate
[1.7] Integration of translations via Weblate
2026-03-05 16:47:27 +02:00
Ivan Savenko 3363fd529b Do not require 'name' field for translation sections in mods, fix format 2026-03-05 16:13:19 +02:00
Ivan Savenko ecf93a3206 Update docs, fix built-in mod 2026-03-05 15:42:25 +02:00
Ivan Savenko f8b7e4e8b6 Remove dummy translations to English to resolve Weblate warnings 2026-03-05 15:20:20 +02:00
Ivan Savenko a5d1b25c6e Reorganize translation for use with weblate 2026-03-05 15:19:59 +02:00
Ivan Savenko 089ec88037 Use local mod information to decide on mod compatibility 2026-03-03 21:40:00 +02:00
Ivan Savenko 20d4101b98 Merge pull request #7019 from kdmcser/game_statistics_crash_fix
fix crash when victor is not valid player
2026-03-03 12:27:03 +02:00
Ivan Savenko f176c6d700 Merge pull request #7007 from IvanSavenko/hotfix
[1.7.3] Fix crash on ending combat in draw
2026-02-28 21:09:06 +02:00
Ivan Savenko be96b3fad5 Fix crash on ending combat in draw 2026-02-28 19:18:33 +02:00
Ivan Savenko 1d1a511da1 Merge pull request #7000 from Laserlicht/valid
[1.7.3 Hotfix] add missing valid check
2026-02-28 15:26:15 +02:00
Ivan Savenko 701031bed6 Merge pull request #6948 from IvanSavenko/release_173
Preparation for 1.7.3 release
2026-02-26 18:21:27 +02:00
Ivan Savenko 930780604b Merge pull request #6977 from kambala-decapitator/msvc-check-cxx23
[cmake][msvc] fix checking for C++23 availability
2026-02-26 17:44:02 +02:00
Ivan Savenko 4bf730a60c Changelog for 1.7.3 2026-02-26 17:40:14 +02:00
Ivan Savenko b1d4873052 Set release date for 1.7.3 for February, 27 2026-02-26 17:40:14 +02:00
Ivan Savenko c9f601fe26 Merge pull request #6984 from GeorgeK1ng/lang_update
[1.7.3] Regenerate translations
2026-02-26 16:04:02 +02:00
Ivan Savenko a0e54e8a60 Merge pull request #6987 from Karyoplasma/german-update
German update
2026-02-26 16:03:13 +02:00
Ivan Savenko d1591a5148 Merge pull request #6981 from Laserlicht/fix_resize
[1.7.3] Fix window resize
2026-02-25 22:47:48 +02:00
Ivan Savenko 2db7abd898 Merge pull request #6971 from IvanSavenko/bugfixing
[1.7.3] Fixes for reported crashes
2026-02-25 21:14:53 +02:00
Ivan Savenko aaff09046d Merge pull request #6949 from Laserlicht/player_accu
[1.7.3] Fix player accumulation crash
2026-02-25 21:14:29 +02:00
Ivan Savenko 7d14f8f6f0 Merge pull request #6978 from Karyoplasma/wyvern-monarch-poison
Bug fix Wyvern Monarch Poison chance
2026-02-25 21:12:23 +02:00
Ivan Savenko a01bfb4c1e Add hardcoded fallback to BattleAI to MMAI 2026-02-23 23:33:19 +02:00
Ivan Savenko a427c4af86 Fix crash on closing game window during commander levelup 2026-02-23 23:33:04 +02:00
Ivan Savenko 2c15faeca0 Merge pull request #6967 from Karyoplasma/firewall-spec-tooltip
Luna Fire Wall tooltip damage display
2026-02-23 22:49:33 +02:00
Ivan Savenko 63df18c2ea Merge pull request #6941 from GeorgeK1ng/image_viewer
[1.7.3] New image viewer
2026-02-23 22:29:32 +02:00
Ivan Savenko 4823755a87 Merge pull request #6960 from GeorgeK1ng/launcher_immmersive_fullscreen
[1.7.3] Add immmersive fullscreen for Launcher
2026-02-23 22:28:57 +02:00
Ivan Savenko f6e7960a3c Fix possible crash on shutdown 2026-02-22 14:50:01 +02:00
Ivan Savenko dcdcfde0a2 Merge pull request #6945 from IvanSavenko/ai_freeze_investigation
[1.7.3] Fix deadlock on AI turn on systems with low CPU core count
2026-02-22 12:57:53 +02:00
Ivan Savenko f81f4a511c Merge pull request #6919 from GeorgeK1ng/ui_freeze_fix
[1.7.3] Fix frozen UI on Android after unlocking device
2026-02-22 12:28:46 +02:00
Ivan Savenko e9119d8e96 Merge pull request #6940 from Laserlicht/fast_buy
[1.7.3] fast buy (hd mod)
2026-02-22 10:43:24 +02:00
Ivan Savenko 99c075afb7 Fix deadlock on AI turn on systems with low CPU core count 2026-02-22 10:40:26 +02:00
Ivan Savenko 4b569525d9 Merge pull request #6938 from Laserlicht/fix_artifact_panning
[1.7.3] fix backpack panning
2026-02-21 13:01:47 +02:00
Ivan Savenko c09996f4ef Merge pull request #6937 from IvanSavenko/spellcaster_fix
Fix SPELLCASTER bonus regressions
2026-02-20 20:56:33 +02:00
Ivan Savenko 2b2d522d72 Merge pull request #6934 from IvanSavenko/ai_freeze_fix
Try to fix possible freezes on AI actions
2026-02-20 20:56:22 +02:00
Ivan Savenko a3a0134d4e Merge pull request #6932 from IvanSavenko/crashfix
[1.7.3] Crashfixes
2026-02-20 19:50:18 +02:00
Ivan Savenko 6d1b263c17 Merge pull request #6917 from GeorgeK1ng/uninstall_confirm
[1.7.3] Add mod uninstall confirmation
2026-02-20 18:42:22 +02:00
Ivan Savenko 8aa835d48b Merge pull request #6910 from vcmi/kambala-decapitator-patch-1
[cmake][client][discord] don't search for libs in system locations when using Conan
2026-02-20 18:41:29 +02:00
Ivan Savenko 8ef5809408 Merge pull request #6900 from kambala-decapitator/macos-fix-adhoc-signing
[macOS] revert to old params for adhoc codesigning
2026-02-20 18:41:12 +02:00
Ivan Savenko efc049a89e Merge pull request #6832 from kambala-decapitator/chronicles-error-gui-thread
show Chronicles install error on GUI (main) thread
2026-02-20 18:39:59 +02:00
Ivan Savenko 78f34c5a1d Fix SPELLCASTER bonus regressions
Fixed 1.7.2 regression of spellcaster logic when casting non-random
spells.

Slight refactoring of AI code to simplify logic related to SPELLCASTER.
As a side effect - AI should now be better at selecting spells if unit
has multiple spells to cast.
2026-02-20 17:40:27 +02:00
Ivan Savenko af801c1824 Try to fix possible freezes on AI actions
While I am not 100% sure about the cause, it seems that following
scenarios might happen right now:

- Network thread is shut down due to catching
TerminationRequestedException that was intended to only terminate AI
turn
- throwing an exception in AI thread may lead to a freeze (and not to a
crash) since TBB catches all crashes to later re-throw them in caller
thread (which does not happens in VCMI due to way AI logic is set up)
- Also, AI makeTurn thread right now has catch-all block in it, meaning
that any bugs caused by unexpected exception throw are silenced

List of changes

- functions that are passed to TBB in AI are now marked as `noexcept`.
So any exception not caught and not processed by our code will cause
std::terminate and not be lost inside TBB
- separate TerminationRequestedException which now only requests app
termination, and InterruptionRequestedException that requests AI to
terminate its turn

Expected results:
- Network thread should no longer unexpectedly terminate due to AI
logic. Instead it might result in a crash, but with correct call stack
- Any exception thrown by AI should now result in a clean crash and not
in AI freeze

Sure, this means introduction of potential crashes, but tracking them
down should be easier since they are now detected in place, not at some
point later. iOS/macOS crash reports and Google Play reports should help
with tracking them down (if any such crashes do appear)
2026-02-20 14:16:43 +02:00
Ivan Savenko 73fa2fd557 Fix regression 2026-02-20 14:02:12 +02:00
Ivan Savenko 59079ed640 Merge pull request #6929 from Karyoplasma/cursed_ground_morale
Fix negative morale on Cursed Ground
2026-02-20 13:07:31 +02:00
Ivan Savenko 576173f65b Merge pull request #6915 from GeorgeK1ng/small_tweaks
[1.7.3] Search button hover and dialog tip
2026-02-20 13:04:40 +02:00
Ivan Savenko e700f48ab3 Fix crash on starting HotA campaign scenario with invalid header data 2026-02-20 12:57:29 +02:00
Ivan Savenko 6443ac4e69 Hide boat of heroes that start in water in line with other such logic 2026-02-20 12:56:35 +02:00
Ivan Savenko 47cdcb6f28 Restore save compatibility with 1.6 saves that have quests 2026-02-20 12:55:52 +02:00
Ivan Savenko f24fdb6779 Added mutex to prevent thread races on filesystem update 2026-02-20 12:54:40 +02:00
Ivan Savenko 10e9d8e3ef Fix loading of spell mastery for combat trigger bonus 2026-02-20 12:53:58 +02:00
Ivan Savenko 9ca62a10ea Merge pull request #6914 from IvanSavenko/bugfixing
[1.7.3] Fixes for crashes in 1.7.2
2026-02-17 15:28:27 +02:00
Ivan Savenko 2a9d46bd8c Fix loading of hordes as starting bonus in campaigns 2026-02-17 13:48:04 +02:00