"compress/zlib"
"encoding/binary"
"errors"
- "fmt"
"github.com/anon55555/mt"
"io"
)
ErrInvalidStaticObjVer = errors.New("invalid static object version")
)
-type ErrInvalidNodeName struct {
- Name string
-}
-
-func (e ErrInvalidNodeName) Error() string {
- return fmt.Sprintf("invalid node \"%v\"", e.Name)
-}
-
-type ErrInvalidNodeId struct {
- Id mt.Content
-}
-
-func (e ErrInvalidNodeId) Error() string {
- return fmt.Sprintf("invalid node %v", e.Id)
-}
-
func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk {
var blk = &MapBlk{}
}
for i := 0; i < 4096; i++ {
- name, ok := nameIdMap[blk.Param0[i]]
+ id := blk.Param0[i]
+ if isSpecial(id) {
+ continue
+ }
+
+ name, ok := nameIdMap[id]
if !ok {
- panic(ErrInvalidNodeId{blk.Param0[i]})
+ panic(ErrInvalidNodeId{id})
}
- id, ok := idNameMap[name]
+ blk.Param0[i], ok = idNameMap[name]
if !ok {
panic(ErrInvalidNodeName{name})
}
-
- blk.Param0[i] = id
}
return blk