OpenDiablo2/d2common/d2fileformats/d2pl2/pl2.go

44 lines
1.1 KiB
Go

package d2pl2
import (
"encoding/binary"
"github.com/go-restruct/restruct"
)
// PL2 represents a palette file.
type PL2 struct {
BasePalette PL2Palette
LightLevelVariations [32]PL2PaletteTransform
InvColorVariations [16]PL2PaletteTransform
SelectedUintShift PL2PaletteTransform
AlphaBlend [3][256]PL2PaletteTransform
AdditiveBlend [256]PL2PaletteTransform
MultiplicativeBlend [256]PL2PaletteTransform
HueVariations [111]PL2PaletteTransform
RedTones PL2PaletteTransform
GreenTones PL2PaletteTransform
BlueTones PL2PaletteTransform
UnknownVariations [14]PL2PaletteTransform
MaxComponentBlend [256]PL2PaletteTransform
DarkendColorShift PL2PaletteTransform
TextColors [13]PL2Color24Bits
TextColorShifts [13]PL2PaletteTransform
}
// Load uses restruct to read the binary pl2 data into structs
func Load(data []byte) (*PL2, error) {
result := &PL2{}
restruct.EnableExprBeta()
err := restruct.Unpack(data, binary.LittleEndian, &result)
if err != nil {
return nil, err
}
return result, nil
}