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

942 Commits

Author SHA1 Message Date
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
Ivan Savenko
ca3e88ea30 Fix crash on loading saved game 2025-01-26 11:16:53 +00:00
Ivan Savenko
722d68643f
Merge pull request #5306 from IvanSavenko/xbrz_foreground
[1.6.4?] Move xbrz upscaling from foreground thread to background
2025-01-25 17:23:46 +02:00
Ivan Savenko
5ea4014589
Merge pull request #5304 from IvanSavenko/oneway_ai
Enable one-way monoliths for AI
2025-01-25 13:42:31 +02: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
Ivan Savenko
668bf63fc0 Remove access to internal surface of Canvas 2025-01-21 21:15:21 +00:00
Ivan Savenko
82b81a7853 Added better error reporting for unclear crashes 2025-01-19 12:39:22 +00:00
MichalZr6
ac8104d56d SonarCloud recomendations.
Code review follow-up:
- Replace std::vector with boost::small_vector
- Rename function merge to insert
2025-01-06 23:28:45 +01:00
MichalZr6
a99274d72e BattleHexArray - new container for BattleHexes 2025-01-06 23:18:18 +01:00
Dydzio
e9be46af98 Merge branch 'develop' into timed_events_objects_removal 2024-12-03 17:27:24 +01:00
Laserlicht
452762cd78 change datetime format 2024-10-30 23:23:56 +01:00
Laserlicht
a54f4e1bd1 change autosave folder name; align autosave folder 2024-10-30 21:18:55 +01:00
Ivan Savenko
10ad0fc760 Split CHeroHandler.cpp/.h into 1 file per class
All parts of CHeroHandler.cpp are now in lib/entities/hero
Adjusted includes to use new paths
No functionality changes
2024-10-13 14:01:09 +00:00
Ivan Savenko
3dd4fa2528 Reduce usage of pointers to VLC entities
Final goal (of multiple PR's) is to remove all remaining pointers from
serializeable game state, and replace them with either identifiers or
with shared/unique pointers.

CGTownInstance::town and CGHeroInstance::type members have been removed.
Now this data is computed dynamically using subID member.

VLC entity of a town can now be accessed via following methods:
- getFactionID() returns ID of a faction
- getFaction() returns pointer to a faction
- getTown() returns pointer to a town

VLC entity of a hero can now be accessed via following methods:
- getHeroTypeID() returns ID of a hero
- getHeroClassID() returns ID of a hero class
- getHeroType() returns pointer to a hero
- getHeroClass() returns pointer to a hero class
2024-10-10 12:28:08 +00:00
Ivan Savenko
679181c103 Implemented serialization of local player state in json form 2024-10-08 20:04:32 +00:00
Ivan Savenko
654f5a9100
Merge pull request #4691 from PolishUser/hero-recruitment-sound
Add 'newBuilding' sound upon hero recruitment in towns
2024-10-01 15:28:33 +03:00
PolishUser
c2ddf8e06a Add 'newBuilding' sound upon hero recruitment in towns 2024-09-28 23:54:51 +02:00
Dydzio
3bff68958e Change deleted objects format to use ObjectInstanceID 2024-09-28 22:58:05 +02:00
Dydzio
230893f423 Merge branch 'develop' into any-hex-shooting 2024-09-23 16:57:27 +02:00
Ivan Savenko
e93a060500 Merge branch 'vcmi/beta' into 'vcmi/develop' 2024-09-23 14:25:53 +00:00
Dydzio
bb69ab1a1a Fix assert and condition for counting spell hexes 2024-09-22 18:25:18 +02:00
Ivan Savenko
3e1968c201 Wait for inactive player in hotseat to answer dialog before starting
battle
2024-09-19 15:30:51 +00:00
Dydzio
e843af24bf Fix broken popping of top interfaces when town was opened during multiplayer game 2024-09-11 23:00:06 +02:00
Ivan Savenko
ee64928454
Merge pull request #4448 from smanolloff/split-client+develop
Split vcmiclient in two
2024-09-02 15:34:05 +03:00
Ivan Savenko
82c37573fa Removed save compatibility with 1.4
All save compatibility checks targeting 1.4 saves have now been removed.
Saves from 1.5 can still be loaded in 1.6

Implemeted few TODO's in serialization that were postponed to avoid
breaking save compatibility in MP for 1.5.X releases.

Fixed missed case for loading black market object from 1.5 saves
2024-08-29 18:51:53 +00:00
Ivan Savenko
408a632002 Deprecate artifact-related building types 2024-08-28 13:50:08 +00:00
Simeon Manolov
e9131538dd
Merge branch 'develop' into split-client+develop 2024-08-27 03:05:07 +03:00
Ivan Savenko
01396b62b7 Extracted handling of type ID's from serializer into a separate class 2024-08-26 19:48:46 +00:00
Ivan Savenko
b84af1a6de Significantly simplify packs applying
Apparently our logic for packs applying with types registration is
overcomplicated and by now completely unnecessary - it became redundant
after introduction of visitor pattern.
2024-08-26 19:48:46 +00:00
Ivan Savenko
11e8b04ac5
Merge pull request #4463 from SoundSSGood/IMarket-refactoring
IMarket refactoring
2024-08-26 22:48:23 +03:00
Ivan Savenko
3d39963a1c Merge branch 'master' into 'develop' 2024-08-26 14:01:00 +00:00
MichalZr6
2a6525c5ef Check battleInt->curInt instead of battleInt 2024-08-25 19:43:21 +00:00
MichalZr6
619b35ab33 Allow dialogs when in battle interface
But also it is not our turn
2024-08-25 19:43:14 +00:00
MichalZr6
9daabd0710 Check battleInt->curInt instead of battleInt 2024-08-23 23:30:50 +02:00
MichalZr6
d0e0ab767c Allow dialogs when in battle interface
But also it is not our turn
2024-08-23 18:03:58 +02:00
Ivan Savenko
b6cc409772 Fix excessive removal of dialogs, e.g. new week or timed events 2024-08-22 16:39:30 +00:00
Simeon Manolov
d05adfc5d5
Merge branch 'develop' into split-client+develop 2024-08-21 17:40:37 +03:00