various fixes to dc6 and dat, as well as viewer

This commit is contained in:
Alex Yatskov 2018-12-29 18:21:33 -08:00
parent d38188da95
commit 8ab9c5e1ce
3 changed files with 19 additions and 2 deletions

View File

@ -29,3 +29,13 @@ func NewFromReader(reader io.Reader) (*Palette, error) {
return palette, nil
}
func NewFromGrayscale() *Palette {
palette := new(Palette)
for i := 0; i < 256; i++ {
value := uint8(i)
palette.Colors[i] = imageColor.RGBA{value, value, value, 0xff}
}
return palette
}

View File

@ -61,7 +61,7 @@ func NewFromReader(reader io.ReadSeeker) (*Sprite, error) {
frameOffsets = append(frameOffsets, frameOffset)
}
sprite.Directions = make([]Direction, fileHead.FramesPerDir)
sprite.Directions = make([]Direction, fileHead.DirCount)
for i, frameOffset := range frameOffsets {
var frameHead frameHeader

View File

@ -67,6 +67,11 @@ func (s *scene) Advance(window *platform.Window) error {
frame := direction.Frames[frameIndex]
imgui.SliderInt("Frame", &frameIndex, 0, int32(len(direction.Frames))-1)
imgui.Text(fmt.Sprintf("Height: %d", frame.Height))
imgui.Text(fmt.Sprintf("Width: %d", frame.Width))
imgui.Text(fmt.Sprintf("OffsetX: %d", frame.OffsetX))
imgui.Text(fmt.Sprintf("OffsetY: %d", frame.OffsetY))
if s.texture == nil || directionIndex != s.directionIndex || frameIndex != s.frameIndex {
colors := make([]color.RGBA, frame.Width*frame.Height)
for y := 0; y < frame.Height; y++ {
@ -118,13 +123,15 @@ func main() {
os.Exit(1)
}
palette := new(dat.Palette)
var palette *dat.Palette
if len(*palettePath) > 0 {
palette, err = loadPalette(*palettePath)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
} else {
palette = dat.NewFromGrayscale()
}
platform.Init()