mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Network: Fix serialization version checks (#15477)
This fixes some incorrect assumptions that the read and write version ranges are identical - whereas they're in fact not.
This commit is contained in:
parent
6c324cb871
commit
c175046d30
11 changed files with 46 additions and 49 deletions
|
@ -50,23 +50,30 @@
|
|||
28: Added "private" flag to NodeMetadata
|
||||
29: Switched compression to zstd, a bit of reorganization
|
||||
*/
|
||||
|
||||
// This represents an uninitialized or invalid format
|
||||
#define SER_FMT_VER_INVALID 255
|
||||
constexpr u8 SER_FMT_VER_INVALID = 255;
|
||||
// Highest supported serialization version
|
||||
#define SER_FMT_VER_HIGHEST_READ 29
|
||||
constexpr u8 SER_FMT_VER_HIGHEST_READ = 29;
|
||||
// Saved on disk version
|
||||
#define SER_FMT_VER_HIGHEST_WRITE 29
|
||||
constexpr u8 SER_FMT_VER_HIGHEST_WRITE = 29;
|
||||
// Lowest supported serialization version
|
||||
#define SER_FMT_VER_LOWEST_READ 0
|
||||
constexpr u8 SER_FMT_VER_LOWEST_READ = 0;
|
||||
// Lowest serialization version for writing
|
||||
// Can't do < 24 anymore; we have 16-bit dynamically allocated node IDs
|
||||
// in memory; conversion just won't work in this direction.
|
||||
#define SER_FMT_VER_LOWEST_WRITE 24
|
||||
constexpr u8 SER_FMT_VER_LOWEST_WRITE = 24;
|
||||
|
||||
inline bool ser_ver_supported(s32 v) {
|
||||
inline bool ser_ver_supported_read(s32 v)
|
||||
{
|
||||
return v >= SER_FMT_VER_LOWEST_READ && v <= SER_FMT_VER_HIGHEST_READ;
|
||||
}
|
||||
|
||||
inline bool ser_ver_supported_write(s32 v)
|
||||
{
|
||||
return v >= SER_FMT_VER_LOWEST_WRITE && v <= SER_FMT_VER_HIGHEST_WRITE;
|
||||
}
|
||||
|
||||
/*
|
||||
Compression functions
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue