Ivan Savenko
48c92711f2
Fixed deserialization of new artifacts (and possibly some other objects)
...
Was broken in my previous PR, since pointer graph serialization was
enabled by default, leading to deserializationFix triggering on netpack
apply.
Cleaned up / clarified code
2024-07-29 18:19:15 +00:00
Ivan Savenko
31738e8f90
Always track already serialized pointers to avoid infinite recursion on
...
sending complex objects
2024-07-20 18:29:41 +00:00
Ivan Savenko
615361a4d2
Remove excessive casts to void
2024-06-01 12:18:23 +00:00
Ivan Savenko
df83fa33a1
Merge branch 'vcmi/master' into 'vcmi/develop'
2024-05-31 09:34:21 +00:00
Ivan Savenko
888149c6f6
Implemented simple versioning system for multiplayer
2024-05-29 20:08:32 +00:00
Ivan Savenko
8754e0ebb3
Code formatting and cleanup
2024-05-17 17:10:29 +00:00
Ivan Savenko
69e33e406d
Try to minimize dll linkage usage
2024-05-17 13:09:45 +00:00
Ivan Savenko
2ed355952c
Added proper serialization for unordered_map
2024-05-16 19:03:04 +00:00
Ivan Savenko
42f7a48fa4
Simplified integer serialization code
2024-05-16 18:53:49 +00:00
Ivan Savenko
84bc6c42db
Added 'Serializeable' base class for classes serializeable by pointer
2024-05-16 18:40:59 +00:00
Ivan Savenko
cce3f1cb2d
Implemented compact serialization of integer numbers
2024-05-15 19:50:01 +00:00
Ivan Savenko
87eac164e6
Implemented string deduplication for serializer
...
Every unique string will now be serialized only once.
Reduces save size by ~20%
2024-05-15 19:49:59 +00:00
Ivan Savenko
5b182c31df
Add 'hasFeature' method for convenience
2024-05-15 19:49:34 +00:00
SoundSSGood
d143f53d7e
using deque for hero's backpack storage
2024-03-07 18:16:21 +02:00
Alexander Wilms
ea48257100
Fix SonarCloud issues
...
Replace the use of "::value" with "std::is_abstract_v" and similar issues
2024-03-02 14:08:03 +01:00
Ivan Savenko
03fcfe3392
Use std::byte in serializer
2024-02-02 13:09:12 +02:00
Ivan Savenko
9f3655c41b
Minor code cleanup
2024-01-20 23:26:04 +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
Alexander Wilms
f3277b7953
Define each identifier in a dedicated statement
2024-01-10 00:22:23 +00:00
Ivan Savenko
0842f5afee
Removed remaining usages of std::vector<bool>
2023-11-15 15:55:18 +02:00
Ivan Savenko
5c810df36f
Reorganized types registration code
2023-11-11 00:39:08 +02:00
Ivan Savenko
4a7fa9bf8c
Simplified CTypeList class
2023-11-08 22:05:36 +02:00
Ivan Savenko
4e654a7e6e
Better names
2023-11-08 21:27:05 +02:00
Ivan Savenko
2cc8b5baeb
Fix map startup
2023-11-08 21:27:05 +02:00
Ivan Savenko
c7676bde53
Serialize Enitity classes by their ID
2023-11-08 21:27:05 +02:00
Ivan Savenko
b2c336de0d
JsonNode now uses std::variant internally. Fixes crash on deserialize
2023-10-21 20:41:58 +03:00
Ivan Savenko
4d08a131d3
Reorganization of boost filesystem usage
...
- Removed (most of) boost filesystem namespace usings
- Replaced boost::filesystem::fstream with std::fstream and different
constructor that should be available on any plaftorm
2023-07-28 19:12:04 +03:00
Ivan Savenko
21a39f0b01
Removed boost::iostreams in favor of std::stream / boost::filesystem
2023-07-28 19:12:04 +03:00
Konstantin P
e9a90a8cbf
Serializer: serialize small bitsets (32 bits)
2023-05-05 21:30:45 +03:00
Konstantin
86f5d6de69
vcmi: modernize headers
2023-04-30 13:35:54 +03:00
Konstantin
54eb550eb9
vcmi: remove unused functions now
2023-04-17 00:43:13 +03:00
Konstantin
7a5775a9f9
vcmi: use std::optional
2023-04-17 00:43:13 +03:00
Konstantin
0d35606a44
vcmi: use std::variant
2023-04-17 00:43:13 +03:00
Ivan Savenko
644f0f4b32
Removed ARRAY_COUNT in favor of std::size
2023-04-12 01:04:26 +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
DjWarmonger
3d2dc2335b
Switch ObjectTemplate to shared_ptr<const> ( #870 )
2022-09-11 16:13:53 +03:00
John Bolton
a05ae78e67
Fixed lots of warnings.
...
Disabled the following (for MSVC only) that couldn't (or shouldn't) be fixed.
4003: not enough actual parameters for macro 'identifier'
4250: 'class1' : inherits 'class2::member' via dominance
4251: 'type' : class 'type1' needs to have dll-interface to be used by clients of class 'type2'
4275: non dll-interface class 'type1' used as base for dll-interface class 'type2'
2020-10-04 02:20:18 -07:00
AlexVinS
15138c23de
Finished conversion to new logging API
...
* removed logger streams
* (float3|int3)::operator() -> (float3|int3)::toString(), it was too ugly and confusing.
2017-08-11 23:06:27 +03:00
Arseniy Shestakov
f1e5797834
Code style: move or add licensing information on top of every file
2017-07-14 01:26:03 +03:00
Ivan Savenko
a1cca251ec
Possible fix for selection of incorrect method for serialization of vector<bool>
2016-10-30 11:42:53 +02:00
Ivan Savenko
256f43f467
Fixes zero-initialized fileVersion member in deserializer
2016-10-29 19:52:19 +03:00
Ivan Savenko
3d1b1f4ba8
Add files for rebased serializer refactoring done by Ivan
2016-10-27 17:26:22 +03:00