1
0
mirror of https://github.com/vcmi/vcmi.git synced 2026-04-28 20:04:33 +02:00

978 Commits

Author SHA1 Message Date
Ivan Savenko a267952e42 Fixes for support of Runes skill
- Fixed typo in HAS_ANOTHER_BONUS limiter
- Creature window now displays all bonuses and not only permanent ones.
Not yet sure about side effects.
2026-02-08 01:03:00 +02:00
Ivan Savenko b9368f8406 Merge branch 'beta' into fix_levelup_queries2 2026-01-27 20:09:04 +02:00
Ivan Savenko 228d1398b0 Merge pull request #6785 from Laserlicht/col_befor_first_turn
[1.7.2] fixed invalid color before first turn
2026-01-27 17:13:05 +02:00
Laserlicht 7e7ced8ec1 save successful 2026-01-25 15:27:54 +01:00
Laserlicht c788f54d81 fixed invalid color before first turn 2026-01-25 14:40:09 +01:00
Michał Zaremba 24b987174a Fix level up dialogs (queries) on the very first turn 2026-01-24 13:18:00 +01:00
Laserlicht f471365528 unify access for both overloads (CObjectListWindow) 2026-01-11 14:31:07 +01:00
Ivan Savenko 4c66867702 Fix reset of AI settings on Launcher start. Rename config keys to reset
settings for players
2025-12-29 22:08:00 +02:00
Laserlicht e567537e78 replace replaceTextID with replaceRawString 2025-12-27 20:15:39 +01:00
Simeon Manolov 9d6ec17f48 MMAI: an ML-powered combat AI 2025-12-15 02:50:32 +02:00
Andrej Dudenhefner 737352b31b fix crash on hotseat new game 2025-12-09 16:38:10 +01:00
Laserlicht 78e683aed4 reset hasQuickSave on error & add error to trace 2025-12-06 12:43:56 +01:00
Laserlicht 7cb577ae5e all player visible strings should translated... 2025-12-06 01:18:43 +01:00
Laserlicht 27f040af5c enable/disable quickload button 2025-12-06 01:10:19 +01:00
Andrej Dudenhefner 8bddd8f4e3 add quick save (F8) / quick load (F9) functionality for single player and hotseat games on adventure map and in combat
- add LobbyQuickLoad pack
- add hotkeys F8, F9 to adventure map and battle
- check whether quick save matches current settings
- ask before quick load
- notify about quick save
- use CResourceHandler for file existence test
- update localization
- externalize buttons to vcmi-extras
2025-12-04 09:16:35 +01:00
Laserlicht afb045ef14 show statistics ingame 2025-11-22 16:46:10 +01:00
Laserlicht 134017a7cd basic multiplayer support 2025-10-25 17:55:25 +02:00
Laserlicht 4d37fe631b battle only basic implementation 2025-10-24 00:54:22 +02:00
Ivan Savenko 241da5937d First semi-working version of antilag for hero movement 2025-07-19 18:04:20 +03:00
Ivan Savenko a0a99d7311 Fix build, fix sonar 2025-07-13 23:03:45 +03:00
Ivan Savenko 55bd4bc8bf Support for custom cursors for adventure map spells 2025-07-11 16:06:21 +03:00
Ivan Savenko 2ad186130f Split MapDefines file on .h per class basis 2025-07-07 18:16:42 +03:00
Laserlicht 2690440901 Update client/CPlayerInterface.cpp
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2025-06-30 15:50:23 +02:00
Laserlicht 17def4d853 fix path not updated after cheat 2025-06-25 02:38:50 +02:00
Ivan Savenko 298ec472bf Split BattleInterfaceClasses into smaller files 2025-06-18 17:29:20 +03:00
Ivan Savenko ae22de3ccf Implemented configurable FEAR ability 2025-06-15 14:36:29 +03:00
Ivan Savenko 139f41c9b2 Implement STACK_EXPERIENCE_GAIN_PERCENT bonus
Suggested on Discord

- implements STACK_EXPERIENCE_GAIN_PERCENT that modifies stack
experience received by units after combat
- removed "EXPERIENCE" primary skill. Changes to experience are now
applied through separate netpack
2025-06-02 21:21:20 +03:00
Laserlicht 263ba46da6 Merge branch 'develop' into cheats 2025-05-22 21:33:29 +02:00
Ivan Savenko e90d8c318d Configurable multi-hex attacks
- Added bonus type MULTIHEX_UNIT_ATTACK - configurable version of Dragon
Breath.
- Added bonus type MULTIHEX_ENEMY_ATTACK - configurable version of
Cerberi multi-headed attack that only hits enemies
- Added bonus type MULTIHEX_ANIMATION - optional bonus that does not
affects gameplay, but allows to define in which cases game should use
alternative attack animation.
- All existing multi-hex attack bonuses other than ATTACKS_ALL_ADJACENT
are presumable deprecated, but will be supported for now.
- It is now possible to precisely configure which hexes are targeted by
MULTIHEX_XXX bonuses. See docs for details.
- Unified logic of all multi-hex attacks, all existing bonuses are now
implemented as specific case of MULTIHEX_XXX bonus
- Added tests to cover Cerberi attack logic, and fixed incorrect edge
case of Dragon Breath
2025-05-20 15:08:59 +03:00
Laserlicht d102f660a0 color filter cheats 2025-05-19 02:48:13 +02:00
Ivan Savenko 2c17c2d5b7 Rework CCallback <-> CClient interaction
- callback is now part of lib instead of weird class that is shared by
client and AI while being part of client
- callback interacts with client class via minimal interface class
- removed no longer used unlockGsWhileWaiting field
2025-05-12 22:07:10 +03:00
Ivan Savenko 35644da2b7 Reogranize callback-related classes on 1 file = 1 class basis 2025-05-12 22:07:09 +03:00
Ivan Savenko 4d57a8ed36 Prefer to pass CGameState as reference instead of pointer 2025-04-27 14:57:31 +03:00
Ivan Savenko 417ea6451a Remove ConstTransitivePtr from hero and town instances 2025-04-27 14:57:30 +03:00
SoundSSGood f0a9c95075 ArtInfoWindow on client. Client side 2025-04-06 13:47:32 +02:00
Ivan Savenko 7a3e1409d0 Remove old boost includes and defines 2025-03-19 08:03:56 +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 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 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
Laserlicht 7dfb499edf replace boost locks with std 2025-02-28 15:25:58 +01: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 811df5f8c1 Update status window on receiving secondary skill to update hero stats 2025-02-19 17:36:02 +00:00
Laserlicht 54606fbe95 fix #5427 2025-02-14 21:49:43 +01:00
Ivan Savenko cf44186a11 Fix crash on accepting turn in MP with settings window open 2025-02-01 12:23:22 +00:00
Ivan Savenko d54d498d5f Don't play new building sound twice on auto-built buildings 2025-01-26 15:50:26 +00:00