1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-05-15 22:16:37 +02:00

125 Commits

Author SHA1 Message Date
Ivan Savenko
35644da2b7 Reogranize callback-related classes on 1 file = 1 class basis 2025-05-12 22:07:09 +03:00
Ivan Savenko
829739da24 Reduce usage of implicit conversions to int 2025-04-27 14:57:31 +03:00
Ivan Savenko
0b126ebc8b Merge branch 'vcmi/master' into 'vcmi/develop' 2025-04-25 17:36:11 +03:00
Ivan Savenko
e0adbb3237 Fix calculating of total cost if hero has non-max amount of points 2025-04-23 10:49:37 +03: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
0548f325e4 Merge branch 'master' into 'develop' 2025-02-21 13:59:34 +00:00
Ivan Savenko
f7f94bb7dc Remove old code 2025-02-10 21:08:30 +00:00
Ivan Savenko
31e627f128 Remove screen2 and screenBuf global variables 2025-02-10 21:08:30 +00:00
Ivan Savenko
2468ab54ea Show total movement cost for multi-turn paths 2025-02-09 17:29:28 +00:00
Ivan Savenko
7803f7a972 Clicking on blocked tile of a visitable object now builds a path to it
Suggestion from Discord.

If player has hero selected, clicking on a blocked tile of a visitable,
reachable object will now build a path to its visitable position (or
move hero to it, in case of second click / tap).

Objects that have interaction on left click (allied town and shipyards)
are excluded from this change and work as before
2025-02-07 13:59:32 +00:00
Ivan Savenko
c5a75b20ad
Merge pull request #5352 from IvanSavenko/assets_generation
[1.6.5] In-memory assets generation
2025-02-01 14:23:06 +02:00
Ivan Savenko
cca4c0888c In-memory assets generation
All assets generation (large spellbook, terrain animations, etc) are now
done in memory and used as it, without saving to disk.

This should slightly improve load times since there is no encode png /
decode png, and should help with avoiding strange bug when vcmi fails to
load recently saved assets.

If needed, such assets can be force-dumped on disk using already
existing console command
2025-01-30 22:21:38 +00:00
Ivan Savenko
6957ac33b6 Fix excessive paths updates when using Fly/Water Walk 2025-01-30 16:43:52 +00:00
Ivan Savenko
32391dc7a9 Pathfinder cache is now stored separately per playerBlocked
- human player will now use pathfinder settings from config (as before)
- nullkiller AI will now use its own, modified settings
- added option to configure NKAI usage of monolith to config
- fixed pathfinder costs not updating on receiving levelup
2025-01-23 15:28:44 +00:00
Laserlicht
1fb5301750 remove test 2024-11-30 15:52:39 +01:00
Ivan Savenko
e93a060500 Merge branch 'vcmi/beta' into 'vcmi/develop' 2024-09-23 14:25:53 +00:00
Dydzio
c6edd615ac Block possibility to move hero if shift-clicking on path end 2024-09-17 21:49:21 +02:00
Ivan Savenko
8225eb454e Added GameSettings to gamestate, potentially allowing to define game
settings per map (or in random map template)
2024-09-05 15:16:27 +00:00
Ivan Savenko
748a3a1b64 Fixed minimap generation when upscaled mode is used 2024-08-17 15:25:26 +00:00
Ivan Savenko
79c55bc898
Merge pull request #4425 from IvanSavenko/ui_cleanup
Remove old code from UI system
2024-08-12 17:16:03 +03:00
Ivan Savenko
9fba3d97f1 Renamed & unified OBJECT_CONSTRUCTION macro set 2024-08-09 15:30:04 +00:00
Laserlicht
0e28791075 scroll only if in focus 2024-08-07 20:47:29 +02:00
Ivan Savenko
b7391f49f6 Merge branch 'vcmi/master' into 'vcmi/develop' 2024-08-05 10:36:10 +00:00
Ivan Savenko
dde5cea601 Fix activation of world view on end turn in multiplayer 2024-08-04 13:19:12 +00:00
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
0d6ec0d224 Reviewed usage of EBlitMode, now specified clearly in all cases 2024-07-19 10:08:50 +00:00
Ivan Savenko
920a39844b Unified naming of method to recolor UI element to current player scheme 2024-07-19 10:08:50 +00:00
Ivan Savenko
7328c9ffd6 Fix path and music not updating on new turn 2024-07-16 13:08:15 +00:00
Ivan Savenko
575d15c425 Fix centering on selected map object on loading save 2024-07-08 20:52:37 +00:00
Ivan Savenko
2584432b92 Fix crash on clicking on map when player is not making turn in MP 2024-07-04 08:46:39 +00:00
Ivan Savenko
fc1a20239e Swapped functions of Ctrl and Shift on adventure map 2024-06-11 17:14:06 +00:00
Ivan Savenko
56ee3713fe Pressing shift will now add tile coordinates to adventure map hover text 2024-06-04 14:11:53 +00:00
Ivan Savenko
16f963bed5 Fix zooming with keyboard shortcuts 2024-05-19 09:58:55 +00:00
Laserlicht
79206ce65b fix hotseat hide 2024-05-14 22:25:10 +02:00
Ivan Savenko
7267e02b8d Better handling of Ctrl / Cmd modifier keys on Apple systems:
- Test only for Cmd modifier key when processing mouse clicks
- Test both Ctrl and Cmd modifier key when processing keyboard input
- This logic is now used for all Apple systems - macOS and iOS
2024-05-12 17:09:31 +00:00
Ivan Savenko
49691ef743 Unblock interface during turn of another human player 2024-04-30 17:51:31 +03:00
Laserlicht
68e63630d8
Code review
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com>
2024-04-20 00:23:25 +02:00
Laserlicht
cf4384071d
use CIntObject instead of IShowActivatable 2024-04-19 23:11:24 +02:00
Laserlicht
19b75c3d88
possibility to disable dimming of small windows 2024-04-19 22:50:05 +02:00
Ivan Savenko
320469d773 Cleanup 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
Dydzio
3f94d316cb Fix cursor & add way to access danger info for HotA-like DD cursor 2024-04-01 20:18:35 +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
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