1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-06-30 11:05:23 +00:00
OpenDiablo2/d2common/d2fileformats/d2dat/dat.go

37 lines
651 B
Go
Raw Normal View History

package d2dat
2021-02-08 08:49:43 +00:00
import (
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
)
const (
// index offset helpers
b = iota
g
r
o
)
2020-06-29 02:32:34 +00:00
// Load loads a DAT file.
func Load(data []byte) (d2interface.Palette, error) {
palette := &DATPalette{}
for i := 0; i < 256; i++ {
// offsets look like i*3+n, where n is 0,1,2
palette.colors[i] = &DATColor{b: data[i*o+b], g: data[i*o+g], r: data[i*o+r]}
}
return palette, nil
}
2021-02-08 08:49:43 +00:00
2021-02-10 12:03:59 +00:00
// Marshal encodes data palette back into byte slice
2021-02-08 09:03:34 +00:00
func (p *DATPalette) Marshal() []byte {
result := make([]byte, 0)
2021-02-08 08:49:43 +00:00
2021-02-08 09:03:34 +00:00
for _, i := range &p.colors {
2021-02-08 08:49:43 +00:00
result = append(result, i.B(), i.G(), i.R())
}
return result
}