X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=deserialize.fmt;h=cc70b3367fa062635e8dab01e2832653556dc15e;hb=906dafbe13600665c1b875784e9dadfb156e959f;hp=d2a7c679bad11ff6f77a1ce54d4585f6908791d5;hpb=425da65ed46061303604610bb539d6495b2b1f3f;p=mt.git diff --git a/deserialize.fmt b/deserialize.fmt index d2a7c67..cc70b33 100644 --- a/deserialize.fmt +++ b/deserialize.fmt @@ -9,18 +9,18 @@ func read16(r io.Reader) uint16 { return be.Uint16(readBuf(r, 2)) } func read32(r io.Reader) uint32 { return be.Uint32(readBuf(r, 4)) } func read64(r io.Reader) uint64 { return be.Uint64(readBuf(r, 8)) } - + byte *p = read8(r) uint8 *p = read8(r) uint16 *p = read16(r) uint32 *p = read32(r) uint64 *p = read64(r) - + int8 *p = int8(read8(r)) int16 *p = int16(read16(r)) int32 *p = int32(read32(r)) int64 *p = int64(read64(r)) - + bool switch n := read8(r); n { case 0: *p = false @@ -29,22 +29,22 @@ bool switch n := read8(r); n { default: chk(fmt.Errorf("invalid bool: %d", n)) } - + float32 *p = math.Float32frombits(read32(r)) float64 *p = math.Float64frombits(read64(r)) - + AOMsg { var err error *p, err = readAOMsg(r) chk(err) } - + image/color.NRGBA *p = color.NRGBA{A: read8(r), R: read8(r), G: read8(r), B: read8(r)} - + map[uint16]*NodeMeta { r, err := zlib.NewReader(byteReader{r}) chk(err) - + switch ver := read8(r); ver { case 0: *p = nil @@ -60,14 +60,14 @@ map[uint16]*NodeMeta { default: chk(fmt.Errorf("unsupported nodemetas version: %d", ver)) } - + chk(r.Close()) } - + map[[3]int16]*NodeMeta { r, err := zlib.NewReader(byteReader{r}) chk(err) - + switch ver := read8(r); ver { case 0: *p = nil @@ -86,20 +86,20 @@ map[[3]int16]*NodeMeta { default: chk(fmt.Errorf("unsupported nodemetas version: %d", ver)) } - + chk(r.Close()) } - + PointedThing { var err error *p, err = readPointedThing(r) chk(err) } - + []AOMsg { // For AOInitData.Msgs. *p = make([]AOMsg, read8(r)) for i := range *p { - r := &io.LimitedReader{r, int64(read32(r))} + r := &io.LimitedReader{R: r, N: int64(read32(r))} msg, err := readAOMsg(r) chk(err) (*p)[i] = msg @@ -108,10 +108,10 @@ PointedThing { } } } - + []NodeDef { // For ToCltNodeDefs.Defs. *p = make([]NodeDef, read16(r)) - r := &io.LimitedReader{r, int64(read32(r))} + r := &io.LimitedReader{R: r, N: int64(read32(r))} for i := range *p { (*p)[i].deserialize(r) }