mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-03 15:17:04 -05:00
Merge pull request #1076 from gucio321/data-encoder-dat
pl2 encoder + test
This commit is contained in:
commit
23e93886d8
@ -41,3 +41,15 @@ func Load(data []byte) (*PL2, error) {
|
|||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Marshal encodes PL2 back into byte slice
|
||||||
|
func (p *PL2) Marshal() []byte {
|
||||||
|
restruct.EnableExprBeta()
|
||||||
|
|
||||||
|
data, err := restruct.Pack(binary.LittleEndian, p)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
40
d2common/d2fileformats/d2pl2/pl2_test.go
Normal file
40
d2common/d2fileformats/d2pl2/pl2_test.go
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package d2pl2
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func exampleData() *PL2 {
|
||||||
|
result := &PL2{
|
||||||
|
BasePalette: PL2Palette{},
|
||||||
|
SelectedUintShift: PL2PaletteTransform{},
|
||||||
|
RedTones: PL2PaletteTransform{},
|
||||||
|
GreenTones: PL2PaletteTransform{},
|
||||||
|
BlueTones: PL2PaletteTransform{},
|
||||||
|
DarkendColorShift: PL2PaletteTransform{},
|
||||||
|
}
|
||||||
|
|
||||||
|
result.BasePalette.Colors[0].R = 8
|
||||||
|
result.DarkendColorShift.Indices[0] = 123
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPL2_MarshalUnmarshal(t *testing.T) {
|
||||||
|
pl2 := exampleData()
|
||||||
|
|
||||||
|
data := pl2.Marshal()
|
||||||
|
|
||||||
|
newPL2, err := Load(data)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if newPL2.BasePalette.Colors[0] != pl2.BasePalette.Colors[0] {
|
||||||
|
t.Fatal("unexpected length")
|
||||||
|
}
|
||||||
|
|
||||||
|
if pl2.DarkendColorShift.Indices[0] != newPL2.DarkendColorShift.Indices[0] {
|
||||||
|
t.Fatal("unexpected index set")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user