Ivan Savenko
2ad186130f
Split MapDefines file on .h per class basis
2025-07-07 18:16:42 +03:00
Ivan Savenko
0979f409c7
Fix build
2025-06-15 14:36:29 +03:00
Ivan Savenko
f71db8af07
Configurable Conflux University
2025-06-15 14:36:29 +03:00
Ivan Savenko
ff0f5290f7
CClient no longer inherits from CGameInfoCallback
2025-05-23 14:17:43 +03:00
Ivan Savenko
af20b39fe6
Reduce non-const access to gamestate on server
2025-05-23 14:17:25 +03:00
Ivan Savenko
4d4da0454f
map objects hierarchy now uses IGameInfoCallback
2025-05-14 18:33:20 +03:00
Ivan Savenko
6f20235d07
Merge CPrivilegedInfoCallback into CGameInfoCallback
2025-05-14 13:42:20 +03:00
Ivan Savenko
716da918f8
Completely remove IGameCallback class
...
- CClient now inherits directly from CPrivilegedInfoCallback, like
IGameCallback did before. However CClient no longer needs dummy
implementation of IGameEventCallback
- CGObjectInstance hierarchy now uses CPrivilegedInfoCallback for
callback. Actual events can only be emitted in calls that receive
IGameEventCallback pointer, e.g. heroVisit
- CGameHandler now inherits directly from both CPrivilegedInfoCallback
and IGameEventCallback as it did before via IGameCallback
2025-05-14 13:39:41 +03:00
Ivan Savenko
35644da2b7
Reogranize callback-related classes on 1 file = 1 class basis
2025-05-12 22:07:09 +03:00
kdmcser
7cb922dd8a
fix old vcmi format map loading crash
2025-05-06 01:53:25 +08:00
kdmcser
26f3d95b47
pass compile
2025-05-06 01:22:29 +08:00
kdmcser
69b58f1846
serialize uidCounter in CMap
2025-05-05 23:16:14 +08:00
kdmcser
82870e82c9
initialize uidCounter when loading game
2025-05-05 01:19:29 +08:00
Ivan Savenko
4e8e85e3e4
Fix issues reported by Sonar, review fixes
2025-04-27 14:57:31 +03:00
Ivan Savenko
f3a57f754c
Fix loading of SoD & later maps
2025-04-27 14:57:31 +03:00
Ivan Savenko
4d57a8ed36
Prefer to pass CGameState as reference instead of pointer
2025-04-27 14:57:31 +03:00
Ivan Savenko
a43c3fcb31
Restore save compatibility with 1.6
2025-04-27 14:57:31 +03:00
Ivan Savenko
f025a3a932
Review & cleanup hiding / displaying map objects
2025-04-27 14:57:31 +03:00
Ivan Savenko
e6a8e5d4bd
Correctly restore bonus system on deserialization
2025-04-27 14:57:31 +03:00
Ivan Savenko
d1d2cf4189
Fix crashes on game start, gamestate now derives from GameCallbackHolder
2025-04-27 14:57:31 +03:00
Ivan Savenko
ab11d2b075
Remove quests from CMap, now solely owned by quest objects
2025-04-27 14:57:30 +03:00
Ivan Savenko
71bc1054d0
BattleStart pack now uses unique_ptr
2025-04-27 14:57:30 +03:00
Ivan Savenko
bdae7285ae
Objects list is now private member of CMap
2025-04-27 14:57:30 +03:00
Ivan Savenko
745040def3
Access to heroes storage in CMap is now done via public methods
2025-04-27 14:57:30 +03:00
Ivan Savenko
1f502c0548
CMap towns and heroes on map fields are now private
2025-04-27 14:57:30 +03:00
Ivan Savenko
0ada2a5ebd
Map objects now use shared_ptr (game)
2025-04-27 14:57:30 +03:00
Ivan Savenko
2ca1748e96
Artifact instances are now owned solely by CMap
2025-04-27 14:57:30 +03:00
Ivan Savenko
797646cc05
Quests in map now use shared_ptr instead of const ptr
2025-04-27 14:57:30 +03:00
Ivan Savenko
eb3b51a6cf
Remove save compatibility with 1.5.X
2025-03-18 11:35:15 +00:00
Ivan Savenko
4b824d05e2
Do not allow heroes banned for player as starting heroes
...
- `disposedHeroes` is now in map header, for use in map selection
- heroes that are marked as unavailable for player will now be hidden
from starting hero selection
2025-02-14 10:43:55 +00:00
Ivan Savenko
e4505f20b9
Remove no longer used map checksum computation
2025-01-24 19:26:40 +00:00
Ivan Savenko
dfe8a95f8c
Fix build
2025-01-04 15:09:50 +00:00
Ivan Savenko
ea368c5176
Inlined methods commonly used by pathfinder for better optimization
2025-01-04 15:09:50 +00:00
Ivan Savenko
c3c5f73a63
Restore save compatibility with 1.5
2024-11-07 12:08:08 +00:00
Ivan Savenko
01d787fb5a
Removed remaining cases of serialization of VLC entities
2024-10-30 16:48:18 +00:00
SoundSSGood
b9ae7f1138
CMap put move and remove artifact method
2024-09-23 23:30:38 +03:00
Ivan Savenko
ff8d36c350
It is now possible to define game settings in rmg template
2024-09-05 15:16:28 +00: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
SoundSSGood
b06426ac43
CMap removed from CArtifactSet level
2024-09-04 15:12:40 +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
K
18a69dfeb5
move CMap::isInTheMap to the header file and make it inline
2024-08-22 14:27:01 +02:00
Ivan Savenko
26fdaacbe5
Map and town events are now processed on start of player turn instead of
...
on start of new day, in line with H3
2024-08-14 14:13:50 +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
Tomasz Zieliński
2a213f2276
Reindex objects to show interactive objects on top
2024-04-03 14:48:04 +02:00
Ivan Savenko
2e4895766a
Implemented tracking of objects destroyed by players
2024-01-31 01:37:33 +02:00
Ivan Savenko
0c07384293
Refactoring of serialization versioning handling
...
- Removed 'version' field from serialize() method
- Handler classes - Binary(De)Serializer now have 'version' field
- Serialization versioning now uses named enum
Save compatibility with 1.4.X saves should be intact
2024-01-20 20:34:51 +02:00
Ivan Savenko
e67e4430ba
Removed most of non-const static fields in lib. Reduced header includes.
2024-01-19 13:55:22 +02:00
Ivan Savenko
a15366f5a5
Make IObjectInterface::cb non-static
2024-01-19 13:55:21 +02:00
Tomasz Zieliński
ebf2055afc
- Unban hero if related Prison is destroyed during map generation
...
- Move prison counter to PrisonHeroPlacer
2023-12-24 09:36:26 +01:00
Ivan Savenko
c872f8418f
Implemented serialization of MapObjectSubID, refactoring of related code
2023-11-17 21:18:34 +02:00