summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2022-07-16 21:42:41 +0200
committerElias Fleckenstein <eliasfleckenstein@web.de>2022-07-16 21:42:41 +0200
commit5e4ab70bf70fb1361fb3c04796c96532417d3a3e (patch)
tree5cf7c9f76b484b81a062e96596cfbb5baf832133
parent39fcb72f362bfdafbc8072935083b89496648267 (diff)
downloadmtmap-5e4ab70bf70fb1361fb3c04796c96532417d3a3e.tar.xz
Add node names and ids to invalid node errorsv0.2.1
-rw-r--r--deserialize.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/deserialize.go b/deserialize.go
index 8722bd7..7e3ffb6 100644
--- a/deserialize.go
+++ b/deserialize.go
@@ -4,6 +4,7 @@ import (
"compress/zlib"
"encoding/binary"
"errors"
+ "fmt"
"github.com/anon55555/mt"
"io"
)
@@ -15,9 +16,24 @@ var (
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")
)
+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{}
@@ -247,12 +263,12 @@ 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)
+ panic(ErrInvalidNodeId{blk.Param0[i]})
}
id, ok := idNameMap[name]
if !ok {
- panic(ErrInvalidNode)
+ panic(ErrInvalidNodeName{name})
}
blk.Param0[i] = id