Commit Graph
100 Commits
Author SHA1 Message Date
Ivan Savenko 5f052165fe Fix missing names for some threads 2025-03-02 14:33:11 +00:00
Ivan Savenko dda48b3693 Fix build 2025-03-02 14:33:11 +00:00
Ivan Savenko 64ac14fa06 Remove boost::thread from cmakelists 2025-03-02 14:33:11 +00:00
Ivan Savenko 948abfb04c AI now uses std::thread, added custom thread interruption logic 2025-03-02 14:33:11 +00:00
Ivan Savenko 844dfb1604 Removed usage of boost::thread from vcmi, except for AI 2025-03-02 14:33:11 +00:00
Ivan Savenko 3d205e0291 Remove CThreadHelper class, final usage replaced with tbb 2025-03-02 14:33:11 +00:00
Ivan Savenko 0536c55b9d Merge pull request #5494 from IvanSavenko/cpp_compat
Fix potential compatibility with C++20 / C++23 mode
2025-03-02 16:32:43 +02:00
Ivan Savenko a8a6be7ac1 Fix potential compatibility with C++20 / C++23 mode
This fixes several issues with compatibility with C++20. C++23 was also
tested, but apparently it does not have any additional breaking changes
compared to C++20 (or we don't have those).

VCMI still uses C++17 as before - goal is only to make potential
transition easier.

There were 2 cases that are deprecated in C++20 that we use:
- Floating point operations on enums are deprecated
- `this` can no longer be captured when using default capture by value
`[=]`

Both of those should now be replaced with code that works fine in both C+
+17 and in C++20 mode
2025-03-02 14:11:48 +00:00
Ivan Savenko f348e20a63 Merge pull request #5487 from IvanSavenko/game_engine_2
Reduce number of global variables
2025-03-02 12:43:16 +02:00
Ivan Savenko 272943f38a Merge pull request #5491 from IvanSavenko/threading
Use tbb thread pool instead of custom one for RMG
2025-03-02 12:42:54 +02:00
Ivan Savenko 06be6b909c Fix build, reduce includes of CConsoleHandler 2025-03-01 21:16:41 +00:00
Ivan Savenko dd1b877449 Replace several more globals with locals 2025-03-01 21:16:41 +00:00
Ivan Savenko 782362e5ce Remove console global 2025-03-01 21:16:41 +00:00
Ivan Savenko e5a095a237 Remove main menu global. Now accessed via GameInstance 2025-03-01 21:16:41 +00:00
Ivan Savenko d3de0d525f Removed GameEngine::curInt member
- event processing is now initiated by GameEngine instead of weird chain
engine -> player interface -> engine
- introduced GameEngineUser interface (implemented by GameInstance) to
remove mutual depedency between GameEngine and GameInstance (some
technically still remains for now, in form of some free functions)
2025-03-01 21:16:40 +00:00
Ivan Savenko a4587c0e65 Add basic docs on vcmi threads 2025-03-01 21:16:03 +00:00
Ivan Savenko 33468f21ff Remove custom implementation of threadpool from rmg in favor of TBB 2025-03-01 21:16:03 +00:00
Ivan Savenko f06e707108 Merge pull request #5488 from Laserlicht/boost
replace some boost functions with std
2025-03-01 23:15:01 +02:00
Ivan Savenko b0de99fe89 Merge pull request #5478 from heroesiiifan/translation
develop - add greek, japanese, norwegian; harmonize
2025-03-01 23:14:28 +02:00
Ivan Savenko 0d4d004516 Merge pull request #5489 from IvanSavenko/changelog_february
Initial changelog for 1.7.0
2025-03-01 23:13:51 +02:00
Ivan Savenko 924c1cb3f5 Initial changelog for 1.7.0 2025-02-28 16:31:20 +00:00
Ivan Savenko 1097a80c1e Merge pull request #5414 from IvanSavenko/bonus_icons
[1.7] Configurable icons for bonuses
2025-02-28 17:58:02 +02:00
Ivan Savenko a3dbb5748c Fix build 2025-02-28 14:59:00 +00:00
Ivan Savenko 35fc7f7f03 Use new URL for 1.7 mods 2025-02-28 14:51:33 +00:00
Ivan Savenko 07a46ed03b Configurable icons for bonuses
It is now possible for mods (e.g. vcmi extras) to provide custom icons
for bonuses subtypes or for custom bonuses values without requiring
hardcoded check in vcmi.

All existing hardcoded checks have been removed.

Bonuses config json from mods is now actually loaded.
2025-02-28 14:51:32 +00:00
Ivan Savenko 8f074490a7 Merge branch 'master' into 'develop' 2025-02-27 21:15:42 +00:00
Ivan Savenko dfda6d2626 Merge pull request #5484 from vcmi/beta
Merge beta -> master
2025-02-27 16:08:20 +02:00
Ivan Savenko a8d8b64882 Merge pull request #5483 from IvanSavenko/release_167
Preparation for release 1.6.7
2025-02-27 15:11:14 +02:00
Ivan Savenko da0943db99 Download counter for 1.6.7 2025-02-27 10:15:23 +00:00
Ivan Savenko cad6ea5402 Update Ukrainian translation 2025-02-27 10:15:23 +00:00
Ivan Savenko f04cac4101 Fix format string 2025-02-27 10:15:23 +00:00
Ivan Savenko c60954932d Fix build on newest MSVC 2025-02-27 10:15:23 +00:00
Ivan Savenko 0e4a4ae5aa Merge pull request #5482 from IvanSavenko/changelog_167
Changelog for 1.6.7
2025-02-27 12:14:34 +02:00
Ivan Savenko 5a59789371 Changelog for 1.6.7 2025-02-27 09:50:40 +00:00
Ivan Savenko 398c0e318c Merge pull request #5480 from GeorgeK1ng/czech-update
[1.6.7] Czech update + English formatting
2025-02-27 11:39:12 +02:00
Ivan Savenko 5a5ec55dac Merge pull request #5481 from IvanSavenko/ai_crash_fix
[1.6.7] Invalidate pathfinder cache on dismissing a hero
2025-02-27 11:36:53 +02:00
Ivan Savenko a075ac1ad1 Merge pull request #5468 from Laserlicht/lobby_aspect_ratio
[1.6.7] make lobby 4:3 aspect ratio & fixes
2025-02-26 17:20:53 +02:00
Ivan Savenko f4f89d1536 Invalidate pathfinder cache on dismissing a hero 2025-02-26 14:47:00 +00:00
Ivan Savenko 1e020a3b56 Merge pull request #5476 from IvanSavenko/hotfix
[1.6.7] Fixes for reported issues
2025-02-25 19:38:16 +02:00
Ivan Savenko 5a813feaa6 Merge pull request #5475 from IvanSavenko/lobby_fix_2
[1.6.7] Better fix for lobby room crash
2025-02-25 18:56:50 +02:00
Ivan Savenko b67096db82 Merge pull request #5477 from IvanSavenko/version_bump_167
Bump version to 1.6.7
2025-02-25 18:56:15 +02:00
Ivan Savenko e7fbe2d387 Fix build 2025-02-25 16:55:58 +00:00
Ivan Savenko d1b13a0fe4 Add check for mod compatibilty 2025-02-25 16:19:15 +00:00
Ivan Savenko 3d69a35dcb Bump version to 1.6.7 2025-02-25 15:34:22 +00:00
Ivan Savenko 420f358599 Avoid crash on having unsupported campaigns in map list 2025-02-25 15:29:09 +00:00
Ivan Savenko e4a719fb7e Fix corrupted pixels on town building animations in mods 2025-02-25 15:28:45 +00:00
Ivan Savenko e720d06e79 Add logging for failure to extract file from .zip, with check for Windows
260 path length limit
2025-02-25 15:28:07 +00:00
Ivan Savenko b372cc84e9 Avoid crash if object has same name as on provided in compatiblity
identifiers field
2025-02-25 15:26:16 +00:00
Ivan Savenko e2e83b392b Merge pull request #5467 from IvanSavenko/brotherhood_fix
[1.6.7] Fix Brotherhood displaying Thieves Guild UI on click instead of Tavern
2025-02-25 16:50:18 +02:00
Ivan Savenko b304788722 Merge pull request #5464 from Laserlicht/statistic_fixes
[1.6.7?] Statistic window fixes
2025-02-25 16:50:09 +02:00
Ivan Savenko d772521d59 Merge pull request #5460 from Laserlicht/setting
[1.6.7?] Add settings
2025-02-25 16:49:48 +02:00
Ivan Savenko 2a9cd0c0d6 Merge pull request #5470 from kambala-decapitator/fix-android-conan
[conan] fix building libiconv for Android
2025-02-25 16:49:39 +02:00
Ivan Savenko 42878af3a6 Better fix for lobby room crash
Always use TCP connection when connecting to self-hosted lobby room.
Effectively reverts 1.6.6 change for lobby connections. Single-player
connections still use intra-process pseudo connection

Main problem is various side effects caused by changing order of
operations. For example, client may inform lobby about joining the room
before server finishes startup, which was not possible before.
2025-02-25 14:05:56 +00:00
Ivan Savenko a6a929eb95 Revert "Fix crash on attempting to connect newly created lobby room"
This reverts commit f42d4dc758.
2025-02-25 14:01:49 +00:00
Ivan Savenko b6dd4460de Fix Brotherhood displaying Thieves Guild UI on click instead of Tavern 2025-02-23 14:46:04 +00:00
Ivan Savenko bc90f4f4aa Merge pull request #5461 from Laserlicht/touch_improve
[1.6.7?] Improve touch motion
2025-02-22 20:58:28 +02:00
Ivan Savenko 0d6f6a20f0 Merge pull request #5466 from IvanSavenko/sdl_crash_fix
[1.6.7] Possible fix for crash on attempt to free sdl surface in worked thread
2025-02-22 20:57:30 +02:00
Ivan Savenko ebb294e9dd Merge pull request #5465 from IvanSavenko/lobby_connect_fix
[1.6.7] Fix crash on attempting to connect newly created lobby room
2025-02-22 20:51:15 +02:00
Ivan Savenko 10871308cb Merge pull request #5459 from XCOM-HUB/patch-2
Update swedish.ts (beta)
2025-02-22 20:49:56 +02:00
Ivan Savenko 1bc7c13204 Possible fix for crash on attempt to free sdl surface in worked thread 2025-02-22 17:16:18 +00:00
Ivan Savenko f42d4dc758 Fix crash on attempting to connect newly created lobby room 2025-02-22 14:20:45 +00:00
Ivan Savenko 319d90cbb4 Merge pull request #5419 from IvanSavenko/game_engine
[1.7] Rename and reorganize global variables in client
2025-02-21 22:41:54 +02:00
Ivan Savenko cbcd48aabb Fix build 2025-02-21 18:51:27 +00:00
Ivan Savenko 645b95ba02 Renamed LibClasses * VLC to GameLibrary * LIBRARY 2025-02-21 16:54:56 +00:00
Ivan Savenko 156de5b17e Added GameInstance class
- available as global GAME
- integrates LOCPLINT (CPlayerInterface)
- integrates CGI->mh (CMapHandler)
- integrates CSH (CServerHandler)
2025-02-21 16:54:06 +00:00
Ivan Savenko ffd37a8fa8 Removed CGI in favor of VLC. Map handle is for now global variable 2025-02-21 16:53:14 +00:00
Ivan Savenko f657e85305 Integrated CClientState into GameEngine class 2025-02-21 16:53:14 +00:00
Ivan Savenko cacceda950 Renamed CGuiHandler to GameEngine
- class CGuiHandler is now called GameEngine to better describe its
functionality
- renamed global GH to more clear ENGINE
- GH/ENGINE is now unique_ptr to make construction / deconstruction
order more clear and to allow interface / implementation split
- CGuiHandler.cpp/h is now called GameEngine.cpp/h and located in root
directory of client dir
2025-02-21 16:53:13 +00:00
Ivan Savenko 0c5a560c80 Merge pull request #5456 from IvanSavenko/sonar_fix
[1.7] Fixes for multiple new issues from Sonar
2025-02-21 18:52:23 +02:00
Ivan Savenko 2362c6da21 Fixes for multiple new issues from Sonar 2025-02-21 15:57:39 +00:00
Ivan Savenko 0548f325e4 Merge branch 'master' into 'develop' 2025-02-21 13:59:34 +00:00
Ivan Savenko c687ab17fb Merge pull request #5453 from altiereslima/develop
Update Portuguese Translation
2025-02-20 16:33:55 +02:00
Ivan Savenko df7507912f Merge pull request #5455 from vcmi/beta
Merge beta -> master
2025-02-20 16:33:40 +02:00
Ivan Savenko 81424ceadc Merge pull request #5443 from XCOM-HUB/patch-2
Update swedish.json (develop)
2025-02-20 16:33:15 +02:00
Ivan Savenko b2642bb7d7 Merge pull request #5422 from IvanSavenko/disposed_heroes_fix
[1.7] Do not allow heroes banned for player as starting heroes
2025-02-20 16:33:04 +02:00
Ivan Savenko 57f16be9a6 Merge pull request #5417 from IvanSavenko/hota_h3m
[1.7] Support for loading HotA 1.7.X maps and campaigns
2025-02-20 16:32:49 +02:00
Ivan Savenko 9c6be97445 Merge pull request #5411 from IvanSavenko/hw_accel_prep
[1.7] SDL access cleanup and encapsulation
2025-02-20 16:32:39 +02:00
Ivan Savenko d4cdf7ed7b Merge pull request #5146 from GeorgeK1ng/beta
[1.7] Added Inno Setup Installer files
2025-02-20 16:31:52 +02:00
Ivan Savenko ad68773f81 Merge pull request #5451 from IvanSavenko/changelog_166
Changelog for 1.6.6
2025-02-20 15:54:56 +02:00
Ivan Savenko 9e3921be5e Merge pull request #5452 from IvanSavenko/release_166
Preparation for 1.6.6 release
2025-02-20 15:49:08 +02:00
Ivan Savenko ca8ae56965 Merge pull request #5454 from IvanSavenko/university_fix
Fix corrupted image of university
2025-02-20 15:43:58 +02:00
Ivan Savenko 2c351f1b1b Changelog for 1.6.6 2025-02-20 13:39:15 +00:00
Ivan Savenko bf0fbeca54 Merge pull request #5444 from IvanSavenko/launcher_import
[1.6.6] Attempt to fix one more possible import failure on Android
2025-02-20 15:10:53 +02:00
Ivan Savenko 00767b51c7 Merge pull request #5450 from IvanSavenko/secskill_update
[1.6.6] Update status window on receiving secondary skill
2025-02-20 15:10:31 +02:00
Ivan Savenko 05e8542a79 Fix corrupted image of university 2025-02-20 13:09:38 +00:00
Ivan Savenko b2ea076a42 Preparation for 1.6.6 release 2025-02-19 18:00:08 +00:00
Ivan Savenko 6256e65dd4 Merge pull request #5449 from dydzio0614/polish-translation-fix
[1.6.6] Update polish translation
2025-02-19 19:38:14 +02:00
Ivan Savenko 28e80cb437 Merge pull request #5448 from GeorgeK1ng/czech_update
[1.6.6] Updated Czech translation
2025-02-19 19:38:04 +02:00
Ivan Savenko f419a1ba2c Merge pull request #5447 from IvanSavenko/ukrainian
[1.6.6] Update Ukrainian translation
2025-02-19 19:37:43 +02:00
Ivan Savenko 3c88d8a2c3 Merge pull request #5446 from IvanSavenko/stable_fix
[1.6.6] Fix visiting of Stables in Castle after visiting adventure map stables on the same week
2025-02-19 19:37:29 +02:00
Ivan Savenko e51ff53ee1 Merge pull request #5445 from IvanSavenko/event_fix
[1.6.6] Hide events from Alt overlay
2025-02-19 19:37:18 +02:00
Ivan Savenko 811df5f8c1 Update status window on receiving secondary skill to update hero stats 2025-02-19 17:36:02 +00:00
Ivan Savenko c59f6ca309 Update Ukrainian translation 2025-02-18 17:09:27 +00:00
Ivan Savenko 0ed42f8946 Merge pull request #5438 from Laserlicht/portmaster-build
[1.6.6] portmaster support
2025-02-18 16:42:27 +02:00
Ivan Savenko fb0cd28482 Merge pull request #5440 from XCOM-HUB/patch-1
Update swedish.json (beta)
2025-02-18 16:40:34 +02:00
Ivan Savenko 085409bea9 Stables in Castle will now check for and give same bonuses as map stable 2025-02-18 14:35:52 +00:00
Ivan Savenko e5332fb61a Hide events from Alt overlay 2025-02-18 14:34:14 +00:00
Ivan Savenko 5eaa12d902 Perform check for magic header only after copying to internal dir 2025-02-18 14:33:23 +00:00
Ivan Savenko 2030ae0803 Merge pull request #5441 from Laserlicht/ger
[1.6.6] update german
2025-02-17 23:25:23 +02:00
Ivan Savenko aef04236b9 Merge pull request #5430 from Laserlicht/context
[1.6.6] Context menu for modlist
2025-02-17 12:38:09 +02:00