]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapchunk.h
merged Mac OSX build fix from minetest-delta
[dragonfireclient.git] / src / mapchunk.h
index 284eebe606123a70f2d7b7d800bb8317131c08bf..9860abad0ad9748ee6c09e196d5c7c96c77d5c9d 100644 (file)
@@ -22,29 +22,49 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 /*
        MapChunk contains map-generation-time metadata for an area of
-       some MapSectors. (something like 64x64)
+       some MapSectors. (something like 16x16)
 */
 
+// These should fit in 8 bits, as they are saved as such.
+enum{
+       GENERATED_FULLY = 0,
+       GENERATED_PARTLY = 10,
+       GENERATED_NOT = 20
+};
+
 class MapChunk
 {
 public:
        MapChunk():
-               m_is_volatile(true)
+               m_generation_level(GENERATED_NOT),
+               m_modified(true)
        {
        }
 
        /*
-               If is_volatile is true, chunk can be modified when
-               neighboring chunks are generated.
-
-               It is set to false when all the 8 neighboring chunks have
-               been generated.
+               Generation level. Possible values:
+               GENERATED_FULLY = 0 = fully generated
+               GENERATED_PARTLY = partly generated
+               GENERATED_NOT = not generated
        */
-       bool getIsVolatile(){ return m_is_volatile; }
-       void setIsVolatile(bool is){ m_is_volatile = is; }
+       u16 getGenLevel(){ return m_generation_level; }
+       void setGenLevel(u16 lev){ m_generation_level = lev; }
+
+       void serialize(std::ostream &os, u8 version)
+       {
+               os.write((char*)&m_generation_level, 1);
+       }
+       void deSerialize(std::istream &is, u8 version)
+       {
+               is.read((char*)&m_generation_level, 1);
+       }
+
+       bool isModified(){ return m_modified; }
+       void setModified(bool modified){ m_modified = modified; }
 
 private:
-       bool m_is_volatile;
+       u8 m_generation_level;
+       bool m_modified;
 };
 
 #endif