summaryrefslogtreecommitdiff
path: root/serialize.go
diff options
context:
space:
mode:
Diffstat (limited to 'serialize.go')
-rw-r--r--serialize.go18
1 files changed, 9 insertions, 9 deletions
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)
}