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
Ivan Savenko
a43c3fcb31
Restore save compatibility with 1.6
2025-04-27 14:57:31 +03:00
Ivan Savenko
586620a290
Basic code review, remove unused code from serializers
2025-04-27 14:57:31 +03:00
Ivan Savenko
331debaa3f
Removed pointers from PlayerState
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
9e2646898b
Add pre-computed vectors of owned objects for faster access
2024-12-21 14:43:09 +00:00
Ivan Savenko
679181c103
Implemented serialization of local player state in json form
2024-10-08 20:04:32 +00:00
Ivan Savenko
31dff8f8da
Add coastVisitable property to rewardables, update schemas
2024-09-12 12:11:18 +00:00
Ivan Savenko
cb5df096c1
Added per-team tracking of scouted state of an object
2024-09-12 12:11:17 +00:00
Ivan Savenko
8cfc1c4ee1
Merge pull request #4535 from IvanSavenko/savecompat_bump
...
Removed save compatibility with 1.4
2024-08-31 13:51:10 +03:00
Ivan Savenko
01697e4387
Fix player not being marked as defeated on losing all heroes and towns
2024-08-30 12:25:34 +00: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
e5f1d60298
Add save compatibility
2024-08-28 13:03:44 +00:00
Ivan Savenko
d49a61645c
All objects that can be owned by player now implement IOwnableObject
2024-08-28 12:51:28 +00:00
Ivan Savenko
a481f07daf
PlayerState now stores all objects owned by player
2024-08-28 12:51:27 +00:00
godric3
c34956e912
introduce getModScope method toEntity class and subclasses
2024-08-10 16:08:04 +02:00
Ivan Savenko
b8beb4fb13
Fixes for various minor issues detected by Sonar Cloud
2024-06-01 11:48:30 +00:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Ivan Savenko
151075f088
Fix save compatibility with 1.4 that was broken by artifact costumes
2024-04-28 20:54:33 +03:00
SoundSSGood
0ac7108293
Update lib/CPlayerState.h
...
Co-authored-by: Ivan Savenko <saven.ivan@gmail.com >
2024-04-28 13:02:27 +02:00
SoundSSGood
25dea7e364
Saving costume
2024-04-27 21:35:37 +03: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
2c4cad7d9c
Slight simplification of bonus system node class
2024-01-19 13:54:49 +02:00
Ivan Savenko
c872f8418f
Implemented serialization of MapObjectSubID, refactoring of related code
2023-11-17 21:18:34 +02:00
Ivan Savenko
20ef3a69e7
Fix most of memleaks discovered by valgrind
2023-11-13 16:27:15 +02:00
Laserlicht
f3e1943aaf
Merge branch 'develop' into highscore_menu
2023-09-23 21:38:17 +02:00
Laserlicht
6f8b62d77d
codereview
2023-09-23 20:41:30 +02:00
nordsoft
0de912e67b
Add basic system to add more advantages for ai player
2023-09-20 03:50:35 +02:00
Ivan Savenko
e54287ea5d
Converted remaining identifier to new system
2023-08-25 13:38:02 +03:00
Ivan Savenko
62cd8b12d4
Converted several namespace enums to enum class
2023-08-25 13:38:02 +03:00
nordsoft
3c9c302fd2
TurnTimerInfo
2023-08-14 02:16:25 +04:00
nordsoft
4b1224ec8c
Implement turn timer feature
2023-08-13 14:07:48 +04:00
Ivan Savenko
19ace6a849
Moved hero pool logic to the separate files
2023-07-15 19:55:29 +03:00
Ivan Savenko
3d66455cd1
Fix build
2023-06-26 19:44:38 +03:00
Konstantin
a6de9097be
vcmi: rename HeroBonus.h to Bonus.h
2023-05-02 11:20:58 +03:00
Konstantin
1d34c73c2d
vcmi: split CBonusSystemNode, BonusParams and prop
...
More splitting of HeroBonus.h
2023-05-02 00:54:53 +03:00
Konstantin
6fa1b2b19f
vcmi: move bonuses to its own folder
2023-05-02 00:53:50 +03:00
Konstantin
7a5775a9f9
vcmi: use std::optional
2023-04-17 00:43:13 +03:00
Konstantin
11b237a23c
vcmi: massive refactoring v1
2023-04-05 22:33:12 +03:00
Konstantin
ee489f18d2
vcmi: PlayerState is now an Entity
...
This will reduce code duplication a little bit.
2023-04-05 01:22:04 +03:00
Konstantin
4c4498b22a
vcmi: modernize rest of lib
2023-03-16 17:55:20 +03:00
Andrey Filipenkov
ff635edc0b
wrap all library code into namespace if VCMI_LIB_NAMESPACE is defined
...
preparation for having client and server in a single process
2022-09-24 15:55:21 +03:00
DjWarmonger
7ba271edf1
Rotation rebase2 ( #912 )
...
* Instead of [x][y][z] coordinates, map will be stored as [z][x][y].
* Nullkiller AI can get it too.
* Use boost::multi_array instead of nested vectors
* In MapHandler too
* Rotate foreach algorithms, too
* VCAI gets rotated, too
2022-09-18 17:39:10 +03:00
Nordsoft91
aaa07e4d2e
New terrain support - part 1 ( #755 )
...
Initial support of new terrains
2022-09-11 11:31:26 +03:00
Soar Qin
c87df8e704
Fix warnings/errors on MSVC ( #753 )
...
* Fix warnings/errors on MSVC
1. update googletest to tag release-1.11.0 to make googletest and
googlemock compile on MSVC2022.
2. set gtest_force_shared_crt to ON in test cmake project to make tests
compile on MSVC.
3. add /wd4251 and /wd4275 to MSVC compile flags to ignore DLL related
warnings for class exports.
4. fix some other warnings and errors while compiling on MSVC2022.
2022-06-11 18:45:34 +03:00
Dmitry Orlov
ea2931c6ea
Fix: Get rid of 'Tile is not visible' error message
2022-01-30 12:31:07 +02:00