2019-10-25 19:12:42 -04:00
|
|
|
package Common
|
2019-10-24 09:31:59 -04:00
|
|
|
|
2019-10-25 18:40:27 -04:00
|
|
|
import "github.com/essial/OpenDiablo2/Palettes"
|
|
|
|
|
|
|
|
// PaletteRGB represents a color in a palette
|
2019-10-24 09:31:59 -04:00
|
|
|
type PaletteRGB struct {
|
|
|
|
R, G, B uint8
|
|
|
|
}
|
|
|
|
|
|
|
|
// Palette represents a palette
|
|
|
|
type Palette struct {
|
2019-10-25 18:40:27 -04:00
|
|
|
Name Palettes.Palette
|
2019-10-24 09:31:59 -04:00
|
|
|
Colors [256]PaletteRGB
|
|
|
|
}
|
|
|
|
|
|
|
|
// CreatePalette creates a palette
|
2019-10-25 18:40:27 -04:00
|
|
|
func CreatePalette(name Palettes.Palette, data []byte) Palette {
|
2019-10-24 09:31:59 -04:00
|
|
|
result := Palette{Name: name}
|
|
|
|
|
|
|
|
for i := 0; i <= 255; i++ {
|
|
|
|
result.Colors[i] = PaletteRGB{
|
|
|
|
B: data[i*3],
|
|
|
|
G: data[(i*3)+1],
|
|
|
|
R: data[(i*3)+2],
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return result
|
|
|
|
}
|