1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-11-19 19:06:45 -05:00

Merge branch 'master' into data-encoder-dt1

This commit is contained in:
gucio321 2021-02-10 19:43:32 +01:00 committed by GitHub
commit 004787597e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 9 deletions

View File

@ -121,7 +121,6 @@ func (c *COF) Unmarshal(fileData []byte) error {
layer.Transparent = b[layerTransparent] > 0 layer.Transparent = b[layerTransparent] > 0
layer.DrawEffect = d2enum.DrawEffect(b[layerDrawEffect]) layer.DrawEffect = d2enum.DrawEffect(b[layerDrawEffect])
layer.weaponClassByte = b[layerWeaponClass:]
layer.WeaponClass = d2enum.WeaponClassFromString(strings.TrimSpace(strings.ReplaceAll( layer.WeaponClass = d2enum.WeaponClassFromString(strings.TrimSpace(strings.ReplaceAll(
string(b[layerWeaponClass:]), badCharacter, ""))) string(b[layerWeaponClass:]), badCharacter, "")))
@ -193,7 +192,22 @@ func (c *COF) Marshal() []byte {
sw.PushBytes(byte(c.CofLayers[i].DrawEffect)) sw.PushBytes(byte(c.CofLayers[i].DrawEffect))
sw.PushBytes(c.CofLayers[i].weaponClassByte...) const (
maxCodeLength = 3 // we assume item codes to look like 'hax' or 'kit'
terminator = 0
)
weaponCode := c.CofLayers[i].WeaponClass.String()
for idx, letter := range weaponCode {
if idx > maxCodeLength {
break
}
sw.PushBytes(byte(letter))
}
sw.PushBytes(terminator)
} }
for _, i := range c.AnimationFrames { for _, i := range c.AnimationFrames {

View File

@ -4,11 +4,10 @@ import "github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
// CofLayer is a structure that represents a single layer in a COF file. // CofLayer is a structure that represents a single layer in a COF file.
type CofLayer struct { type CofLayer struct {
Type d2enum.CompositeType Type d2enum.CompositeType
Shadow byte Shadow byte
Selectable bool Selectable bool
Transparent bool Transparent bool
DrawEffect d2enum.DrawEffect DrawEffect d2enum.DrawEffect
WeaponClass d2enum.WeaponClass WeaponClass d2enum.WeaponClass
weaponClassByte []byte
} }