diff options
author | Perttu Ahola <celeron55@gmail.com> | 2010-11-27 01:02:21 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2010-11-27 01:02:21 +0200 |
commit | 4e249fb3fbf75f0359758760d88e22aa5b14533c (patch) | |
tree | 323087d05efbd2ace27b316d4f017cf812a31992 /src/serialization.h | |
download | minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.gz minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.bz2 minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.zip |
Initial files
Diffstat (limited to 'src/serialization.h')
-rw-r--r-- | src/serialization.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/serialization.h b/src/serialization.h new file mode 100644 index 000000000..fd9b39535 --- /dev/null +++ b/src/serialization.h @@ -0,0 +1,49 @@ +/* +(c) 2010 Perttu Ahola <celeron55@gmail.com> +*/ + +#ifndef SERIALIZATION_HEADER +#define SERIALIZATION_HEADER + +#include "common_irrlicht.h" +#include "exceptions.h" +#include <iostream> +#include "utility.h" + +/* + NOTE: The goal is to increment this so that saved maps will be + loadable by any version. Other compatibility is not + maintained. + Serialization format versions: + 0: original networked test with 1-byte nodes + 1: update with 2-byte nodes + 2: lighting is transmitted in param + 3: optional fetching of far blocks + 4: block compression + 5: sector objects NOTE: block compression was left accidentally out + 6: failed attempt at switching block compression on again + 7: block compression switched on again + 8: (dev) server-initiated block transfers and all kinds of stuff + 9: (dev) block objects +*/ +// This represents an uninitialized or invalid format +#define SER_FMT_VER_INVALID 255 +// Highest supported serialization version +#define SER_FMT_VER_HIGHEST 9 +// Lowest supported serialization version +#define SER_FMT_VER_LOWEST 0 + +#define ser_ver_supported(v) (v >= SER_FMT_VER_LOWEST && v <= SER_FMT_VER_HIGHEST) + +void compress(SharedBuffer<u8> data, std::ostream &os, u8 version); +void decompress(std::istream &is, std::ostream &os, u8 version); + +/*class Serializable +{ +public: + void serialize(std::ostream &os, u8 version) = 0; + void deSerialize(std::istream &istr); +};*/ + +#endif + |