1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-06-16 04:25:23 +00:00

hotfix: d2cof encoder: changed way of pushing weapon class

This commit is contained in:
M. Sz 2021-02-10 12:59:07 +01:00
parent 1010353071
commit 7d0eeb0fd3

View File

@ -30,10 +30,6 @@ const (
layerWeaponClass layerWeaponClass
) )
const (
layerWeaponClassLength = 4
)
const ( const (
badCharacter = string(byte(0)) badCharacter = string(byte(0))
) )
@ -196,15 +192,22 @@ func (c *COF) Marshal() []byte {
sw.PushBytes(byte(c.CofLayers[i].DrawEffect)) sw.PushBytes(byte(c.CofLayers[i].DrawEffect))
weaponClassString := c.CofLayers[i].WeaponClass.String() const (
maxCodeLength = 3 // we assume item codes to look like 'hax' or 'kit'
terminator = 0
)
for letter := 0; letter < layerWeaponClassLength; letter++ { weaponCode := c.CofLayers[i].WeaponClass.String()
if letter < len(weaponClassString) {
sw.PushBytes(weaponClassString[letter]) for idx, letter := range weaponCode {
} else { if idx > maxCodeLength {
sw.PushBytes(0) break
} }
sw.PushBytes(byte(letter))
} }
sw.PushBytes(terminator)
} }
for _, i := range c.AnimationFrames { for _, i := range c.AnimationFrames {