]> git.lizzy.rs Git - mtmap.git/blobdiff - deserialize.go
Skip special ids
[mtmap.git] / deserialize.go
index 8722bd7fc95e55bf4ff80fe7baaa18ab658e9a67..7980ca6ff8968989fd31ae901e3f7b44647b9125 100644 (file)
@@ -15,7 +15,6 @@ var (
        ErrInvalidNodeMetaVer  = errors.New("invalid node meta version")
        ErrInvalidNameIdMapVer = errors.New("invalid name id mapping version")
        ErrInvalidStaticObjVer = errors.New("invalid static object version")
-       ErrInvalidNode         = errors.New("invalid node")
 )
 
 func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk {
@@ -245,17 +244,20 @@ func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk {
        }
 
        for i := 0; i < 4096; i++ {
-               name, ok := nameIdMap[blk.Param0[i]]
-               if !ok {
-                       panic(ErrInvalidNode)
+               id := blk.Param0[i]
+               if isSpecial(id) {
+                       continue
                }
 
-               id, ok := idNameMap[name]
+               name, ok := nameIdMap[id]
                if !ok {
-                       panic(ErrInvalidNode)
+                       panic(ErrInvalidNodeId{id})
                }
 
-               blk.Param0[i] = id
+               blk.Param0[i], ok = idNameMap[name]
+               if !ok {
+                       panic(ErrInvalidNodeName{name})
+               }
        }
 
        return blk