panic(err)
}
- if _, err := io.Copy(io.Discard, r); err != nil {
+ if err := binary.Read(r, binary.BigEndian, &blk.Param1); err != nil {
+ panic(err)
+ }
+
+ if err := binary.Read(r, binary.BigEndian, &blk.Param2); err != nil {
panic(err)
}
}
}
- if _, err := io.Copy(io.Discard, r); err != nil {
- panic(err)
- }
-
if err := r.Close(); err != nil {
panic(err)
}
for i := 0; i < 4096; i++ {
id := blk.Param0[i]
- if isSpecial(id) {
- continue
- }
name, ok := nameIdMap[id]
if !ok {
- panic(ErrInvalidNodeId{id})
+ name = "unknown"
}
- blk.Param0[i], ok = idNameMap[name]
- if !ok {
- panic(ErrInvalidNodeName{name})
+ switch name {
+ case "unknown":
+ id = mt.Unknown
+ case "air":
+ id = mt.Air
+ case "ignore":
+ id = mt.Ignore
+ default:
+ id, ok = idNameMap[name]
+ if !ok {
+ id = mt.Unknown
+ }
}
+
+ blk.Param0[i] = id
}
return blk