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 {
}
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