1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2025-02-20 15:37:31 -05:00

37 lines
663 B
Go
Raw Normal View History

package d2dat
2021-02-08 09:49:43 +01:00
import (
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
)
const (
// index offset helpers
b = iota
g
r
o
)
2020-06-28 22:32:34 -04: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 09:49:43 +01:00
2021-02-10 13:03:59 +01:00
// Marshal encodes data palette back into byte slice
2021-02-08 10:03:34 +01:00
func (p *DATPalette) Marshal() []byte {
result := make([]byte, len(p.colors))
2021-02-08 09:49:43 +01:00
2021-02-08 10:03:34 +01:00
for _, i := range &p.colors {
2021-02-08 09:49:43 +01:00
result = append(result, i.B(), i.G(), i.R())
}
return result
}