summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-06-08 14:57:02 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-06-08 14:57:02 +0300
commite74668ef7f68156ef9c24ecc97d130ca53f8c624 (patch)
tree37531521aaba4122e4a89af98466ce1451117154
parent22502f80db7236680e2ce18ee8a4fc59f4c9c8e7 (diff)
downloadminetest-e74668ef7f68156ef9c24ecc97d130ca53f8c624.tar.gz
minetest-e74668ef7f68156ef9c24ecc97d130ca53f8c624.tar.bz2
minetest-e74668ef7f68156ef9c24ecc97d130ca53f8c624.zip
Update and fix doc/mapformat.txt; make current format more solid in mapblock.cpp
-rw-r--r--doc/mapformat.txt26
-rw-r--r--src/mapblock.cpp18
2 files changed, 26 insertions, 18 deletions
diff --git a/doc/mapformat.txt b/doc/mapformat.txt
index a7380b35e..ce00d276e 100644
--- a/doc/mapformat.txt
+++ b/doc/mapformat.txt
@@ -1,13 +1,13 @@
-=================================================
-Minetest World Format used as of 0.4.dev-20120322
-=================================================
+=============================
+Minetest World Format 22...23
+=============================
-This applies to a world format carrying the block serialization version 22
-which is used at least in version 0.4.dev-20120322.
+This applies to a world format carrying the block serialization version
+22...23, used at least in 0.4.dev-20120322 ... 0.4.dev-20120606.
-The block serialization version used is 22. It does not fully specify every
-aspect of this format; if compliance with this format is to be checked, it
-needs to be done by detecting if the files and data indeed follows it.
+The block serialization version does not fully specify every aspect of this
+format; if compliance with this format is to be checked, it needs to be
+done by detecting if the files and data indeed follows it.
Legacy stuff
=============
@@ -20,8 +20,8 @@ Files
Everything is contained in a directory, the name of which is freeform, but
often serves as the name of the world.
-Currently the authentication and ban data is stored on a per-world basis. It
-can be copied over from an old world to a newly created world.
+Currently the authentication and ban data is stored on a per-world basis.
+It can be copied over from an old world to a newly created world.
World
|-- auth.txt ----- Authentication data
@@ -283,9 +283,9 @@ zlib-compressed node metadata list
u16 content_size
u8[content_size] (content of metadata)
-u16 mapblockobject_count
-- Always 0
-- Should be removed in version 23 (TODO)
+- unused node timers (version will be 24 when they are actually used):
+if version == 23:
+ u8 unused version (always 0)
u8 static object version:
- Always 0
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 70a0f6ed0..c4d3c422e 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -616,9 +616,13 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk)
*/
if(disk)
{
- // Node timers
- if(version >= 23)
- m_node_timers.serialize(os);
+ // Version 23 doesn't actually contain node timers
+ // (this field should have not been added)
+ if(version == 23)
+ writeU8(os, 0);
+ // Node timers (uncomment when node timers are taken into use)
+ /*if(version >= 24)
+ m_node_timers.serialize(os);*/
// Static objects
m_static_objects.serialize(os);
@@ -698,11 +702,15 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk)
if(disk)
{
// Node timers
- if(version >= 23){
+ if(version == 23)
+ // Read unused zero
+ readU8(is);
+ // Uncomment when node timers are taken into use
+ /*else if(version >= 24){
TRACESTREAM(<<"MapBlock::deSerialize "<<PP(getPos())
<<": Node timers"<<std::endl);
m_node_timers.deSerialize(is);
- }
+ }*/
// Static objects
TRACESTREAM(<<"MapBlock::deSerialize "<<PP(getPos())