mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-09-01 08:54:20 -04:00
* Work on resource loading * Use new material flag name. (#261) Update ebiten ref while at it * Hopefully fix CI (#262) * Don't try to copy config.json on travis (#263) I doesn't exist anymore * Update D2Shared references * Fix character selection rect Co-authored-by: Ziemas <ziemas@ziemas.se>
29 lines
637 B
Go
29 lines
637 B
Go
package d2asset
|
|
|
|
import (
|
|
"github.com/OpenDiablo2/D2Shared/d2data/d2datadict"
|
|
)
|
|
|
|
type paletteManager struct {
|
|
cache *cache
|
|
}
|
|
|
|
func createPaletteManager() *paletteManager {
|
|
return &paletteManager{createCache(PaletteBudget)}
|
|
}
|
|
|
|
func (pm *paletteManager) loadPalette(palettePath string) (*d2datadict.PaletteRec, error) {
|
|
if palette, found := pm.cache.retrieve(palettePath); found {
|
|
return palette.(*d2datadict.PaletteRec), nil
|
|
}
|
|
|
|
paletteData, err := LoadFile(palettePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
palette := d2datadict.CreatePalette("", paletteData)
|
|
pm.cache.insert(palettePath, &palette, 1)
|
|
return &palette, nil
|
|
}
|