Ivan Savenko
54a46b77a9
Extract library entity randomization logic to separate class
2025-05-19 18:51:42 +03:00
Ivan Savenko
e79c8b9fe1
Remove unnecessary access to gamestate
2025-05-19 17:53:15 +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
a13ab8f013
Merge pull request #5707 from IvanSavenko/dwelling_fix
...
Fixes for handling of oversized map dwellings
2025-05-14 11:52:40 +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
cb70cc48d6
Fixes for handling of oversized map dwellings
...
- Marked large version of H3 Unicorn's Glade as not usable for random
dwelling replacement
- Shifted oversized dwellings - that have at most 2x2 as blocked tile,
but have non-blocked tile column will now be placed correctly
- This fixes incorrect random dwelling replacement of the only oversized
H3 dwelling - Portal of Glory
- Game will now detect & report invalid dwelling templates from mods
- Updated docs to clarify dwellings format
2025-05-12 18:01:46 +03:00
Ivan Savenko
4d57a8ed36
Prefer to pass CGameState as reference instead of pointer
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
62cb5412ff
CGameState::map is now a private, unique_ptr with accessors
2025-03-08 14:05:14 +00:00
Ivan Savenko
645b95ba02
Renamed LibClasses * VLC
to GameLibrary * LIBRARY
2025-02-21 16:54:56 +00:00
Ivan Savenko
08fbcd5239
TerrainTile now uses identifiers instead of pointers to VLC
2024-10-30 16:22:11 +00:00
Ivan Savenko
ad7f0416a7
Added overloaded version of getObjectHandler to CGHeroInstance
2024-10-13 13:06:31 +00:00
Ivan Savenko
31095248ab
Removed typeName and subtypeName properties from CGObjectInstance
2024-10-13 13:05:50 +00:00
Ivan Savenko
d1e7cb72c2
Fix game gang on random map generation
2024-10-11 15:02:14 +00:00
Ivan Savenko
a8f8c3f4b1
Replaced most of accesses to CGObjectInstance::pos with anchorPoint()
2024-10-09 15:43:46 +00:00
Ivan Savenko
0fd9dbf240
Unified income handling, added IOwnableObject interface
2024-08-28 12:40:44 +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
63bcf7d83c
Replaced most of usages of CRandomGenerator with vstd::RNG in library
2024-07-16 13:13:07 +00:00
Ivan Savenko
5454d01316
Provide more information in thrown exceptions for unfixed crashes
2024-04-22 16:40:43 +03:00
Ivan Savenko
a15366f5a5
Make IObjectInterface::cb non-static
2024-01-19 13:55:21 +02:00
Tomasz Zieliński
6cd19b81dd
Working fir for Corpse issue:
...
- Do not place guard next to blockVis object, if possible
- Do not place two blockVis objects next to each other
2023-12-06 20:49:28 +01:00
Ivan Savenko
ed66fc2fb3
Minor optimization of map startup time
2023-11-08 21:27:05 +02:00
Ivan Savenko
6b81012f31
Use variant identifier in netpacks where applicable
2023-11-08 14:00:23 +02:00
Ivan Savenko
2b9c362d5b
Explicitly convert identifier to underlying enumeration
2023-11-03 16:03:29 +02:00
Ivan Savenko
461c481ef3
Fix game startup
2023-11-01 14:43:20 +02:00
Ivan Savenko
dcb8f4fc7b
Moved object type randomization to object class
2023-11-01 14:43:20 +02:00
Ivan Savenko
03e1169781
Reduced number of accesses to CGObjectInstance::subID
2023-11-01 14:43:20 +02:00
Ivan Savenko
b88a8da4e8
Split off some netpack structures into separate files
2023-10-23 13:59:15 +03:00
Ivan Savenko
4f47555977
Split OBJECT bonus source into OBJECT_TYPE and OBJECT_INSTANCE
2023-10-22 16:55:19 +03:00
Ivan Savenko
ac925bb786
Renamed new types for consistency with code style
2023-10-22 16:55:19 +03:00
Ivan Savenko
b394158dc9
Bonus Source ID now uses metaidentifier
2023-10-22 16:55:18 +03:00
Ivan Savenko
4c0eabf20c
Show guards preview for visited banks on right click
2023-10-19 15:41:59 +03:00
Ivan Savenko
e0f6b582f5
Display object description only on right-click
2023-10-19 14:36:11 +03:00
Ivan Savenko
927ce4e60e
Improvements to rewardable objects popups
2023-10-16 23:55:37 +03:00
Ivan Savenko
898733eed7
Added Query to track visit duration for Taverns and Markets
2023-10-04 17:47:12 +03:00
Ivan Savenko
80b80a0ae6
Minor cleanup of hero movemen code
2023-09-16 20:07:26 +03:00
Ivan Savenko
f39fbe5151
Merge pull request #2757 from IvanSavenko/filesystem_refactor
...
Filesystem refactor - part 1
2023-09-07 10:51:02 +03:00
Ivan Savenko
12c4f8d18c
Fixed serialization of PlayerColor in json
2023-09-04 22:22:24 +03:00
Ivan Savenko
8dfdfffd87
Use ResourcePath for audio files
2023-09-04 18:22:34 +03:00
Ivan Savenko
e54287ea5d
Converted remaining identifier to new system
2023-08-25 13:38:02 +03:00
Ivan Savenko
85262cf4f5
Moved CGameState files into a separate directory
2023-06-26 17:15:59 +03:00
Ivan Savenko
f7b27da00e
Implemented support for "coast visitable" objects:
...
- objects marked as coast visitable can be visited from land even when
placed in water
- added isBlockedVisitable and isCoastVisitable method to
CGObjectInstance
- implemented json config for these properties in banks
2023-06-25 17:42:33 +03:00
Ivan Savenko
8dde8018d0
Implemented support for fixed monster def's from hota
2023-06-20 19:37:27 +03:00
Ivan Savenko
2e7c382612
Moved creature upgrade logic to CGObjectInstance inheritors
2023-06-16 17:59:10 +03:00
Ivan Savenko
97b3b2e147
Fix build
2023-06-03 00:48:32 +03:00
Ivan Savenko
d6a357fd17
Split some map object files into smaller files. Reduced includes usage.
2023-06-02 21:47:37 +03:00