]> git.lizzy.rs Git - mtmap.git/blobdiff - serialize.go
Merge pull request #2 from ev2-1/master
[mtmap.git] / serialize.go
index 1d1ea4269e3e6b22ffbd67aa909c3204cbaa0cc4..ddfb72a3dc7dd16c73af7405e0fc0a18605611a0 100644 (file)
@@ -37,6 +37,14 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
                        panic(err)
                }
 
+               if err := binary.Write(zw, binary.BigEndian, &blk.Param1); err != nil {
+                       panic(err)
+               }
+
+               if err := binary.Write(zw, binary.BigEndian, &blk.Param2); err != nil {
+                       panic(err)
+               }
+
                if err := zw.Close(); err != nil {
                        panic(err)
                }
@@ -158,11 +166,7 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
                panic(err)
        }
 
-       var localNameIdMap = map[mt.Content]string{
-               mt.Unknown: "unknown",
-               mt.Air:     "air",
-               mt.Ignore:  "ignore",
-       }
+       var localNameIdMap = make(map[mt.Content]string)
 
        for i := 0; i < 4096; i++ {
                id := blk.Param0[i]
@@ -170,9 +174,22 @@ func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
                        continue
                }
 
-               name, ok := nameIdMap[id]
-               if !ok {
-                       panic(ErrInvalidNodeId{id})
+               var name string
+               var ok bool
+
+               switch id {
+               case mt.Unknown:
+                       name = "unknown"
+               case mt.Air:
+                       name = "air"
+               case mt.Ignore:
+                       name = "ignore"
+               default:
+                       name, ok = nameIdMap[id]
+                       if !ok {
+                               id = mt.Unknown
+                               name = "unknown"
+                       }
                }
 
                localNameIdMap[id] = name