summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--deserialize.go2
-rw-r--r--serialize.go18
2 files changed, 10 insertions, 10 deletions
diff --git a/deserialize.go b/deserialize.go
index c59837c..8722bd7 100644
--- a/deserialize.go
+++ b/deserialize.go
@@ -223,7 +223,7 @@ func Deserialize(r io.Reader, idNameMap map[string]mt.Content) *MapBlk {
panic(err)
}
- nameIdMap := make(map[mt.Content]string)
+ var nameIdMap = make(map[mt.Content]string)
for i := uint16(0); i < nameIdMapCount; i++ {
var id mt.Content
diff --git a/serialize.go b/serialize.go
index 4ec2b94..4001dc7 100644
--- a/serialize.go
+++ b/serialize.go
@@ -8,7 +8,7 @@ import (
"io"
)
-func Serialize(blk *MapBlk, w io.Writer, idNameMap map[string]mt.Content) {
+func Serialize(blk *MapBlk, w io.Writer, nameIdMap map[mt.Content]string) {
if err := binary.Write(w, binary.BigEndian, &SerializeVer); err != nil {
panic(err)
}
@@ -151,21 +151,21 @@ func Serialize(blk *MapBlk, w io.Writer, idNameMap map[string]mt.Content) {
panic(err)
}
- var exists = make(map[mt.Content]struct{})
+ var localNameIdMap = make(map[mt.Content]string)
for i := 0; i < 4096; i++ {
- exists[blk.Param0[i]] = struct{}{}
+ if _, ok := localNameIdMap[blk.Param0[i]]; ok {
+ continue
+ }
+
+ localNameIdMap[blk.Param0[i]] = nameIdMap[blk.Param0[i]]
}
- var nameIdMapCount = uint16(len(exists))
+ var nameIdMapCount = uint16(len(localNameIdMap))
if err := binary.Write(w, binary.BigEndian, &nameIdMapCount); err != nil {
panic(err)
}
- for name, id := range idNameMap {
- if _, ok := exists[id]; !ok {
- continue
- }
-
+ for id, name := range localNameIdMap {
if err := binary.Write(w, binary.BigEndian, &id); err != nil {
panic(err)
}