mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-02 22:57:04 -05:00
Merge pull request #1057 from gucio321/hotfix3
hotfix: ds1 editor: some fields need to be exported
This commit is contained in:
commit
8f4a42fbf8
@ -9,7 +9,7 @@ jobs:
|
||||
working_directory: /go/src/github.com/{{ORG_NAME}}/{{REPO_NAME}}
|
||||
steps:
|
||||
- checkout
|
||||
- run: sudo apt-get install -y libgtk-3-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev libsdl2-dev libasound2-dev > /dev/null 2>&1
|
||||
- run: sudo apt-get install -y libgtk-3-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libgl1-mesa-dev libsdl2-dev libasound2-dev > /dev/null 2>&1
|
||||
- run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
|
||||
- run: go get -v -t -d ./...
|
||||
- run: go build .
|
||||
|
@ -54,9 +54,9 @@ type DS1 struct {
|
||||
NumberOfSubstitutionLayers int32 // SubstitutionNum number of substitution layer used
|
||||
SubstitutionGroupsNum int32 // SubstitutionGroupsNum number of substitution groups, datas between objects & NPC paths
|
||||
unknown1 []byte
|
||||
layerStreamTypes []d2enum.LayerStreamType
|
||||
LayerStreamTypes []d2enum.LayerStreamType
|
||||
unknown2 uint32
|
||||
npcIndexes []int
|
||||
NpcIndexes []int
|
||||
}
|
||||
|
||||
// LoadDS1 loads the specified DS1 file
|
||||
@ -102,7 +102,7 @@ func LoadDS1(fileData []byte) (*DS1, error) {
|
||||
}
|
||||
}
|
||||
|
||||
ds1.layerStreamTypes = ds1.setupStreamLayerTypes()
|
||||
ds1.LayerStreamTypes = ds1.setupStreamLayerTypes()
|
||||
|
||||
ds1.Tiles = make([][]TileRecord, ds1.Height)
|
||||
|
||||
@ -399,7 +399,7 @@ func (ds1 *DS1) loadNPCs(br *d2datautils.StreamReader) error {
|
||||
for idx, ds1Obj := range ds1.Objects {
|
||||
if ds1Obj.X == int(npcX) && ds1Obj.Y == int(npcY) {
|
||||
objIdx = idx
|
||||
ds1.npcIndexes = append(ds1.npcIndexes, idx)
|
||||
ds1.NpcIndexes = append(ds1.NpcIndexes, idx)
|
||||
|
||||
break
|
||||
}
|
||||
@ -468,8 +468,8 @@ func (ds1 *DS1) loadLayerStreams(br *d2datautils.StreamReader) error {
|
||||
0x0F, 0x10, 0x11, 0x12, 0x14,
|
||||
}
|
||||
|
||||
for lIdx := range ds1.layerStreamTypes {
|
||||
layerStreamType := ds1.layerStreamTypes[lIdx]
|
||||
for lIdx := range ds1.LayerStreamTypes {
|
||||
layerStreamType := ds1.LayerStreamTypes[lIdx]
|
||||
|
||||
for y := 0; y < int(ds1.Height); y++ {
|
||||
for x := 0; x < int(ds1.Width); x++ {
|
||||
@ -589,8 +589,8 @@ func (ds1 *DS1) Marshal() []byte {
|
||||
}
|
||||
|
||||
func (ds1 *DS1) encodeLayers(sw *d2datautils.StreamWriter) {
|
||||
for lIdx := range ds1.layerStreamTypes {
|
||||
layerStreamType := ds1.layerStreamTypes[lIdx]
|
||||
for lIdx := range ds1.LayerStreamTypes {
|
||||
layerStreamType := ds1.LayerStreamTypes[lIdx]
|
||||
|
||||
for y := 0; y < int(ds1.Height); y++ {
|
||||
for x := 0; x < int(ds1.Width); x++ {
|
||||
@ -622,10 +622,10 @@ func (ds1 *DS1) encodeLayers(sw *d2datautils.StreamWriter) {
|
||||
|
||||
func (ds1 *DS1) encodeNPCs(sw *d2datautils.StreamWriter) {
|
||||
// Step 5.1 - encode npc's
|
||||
sw.PushUint32(uint32(len(ds1.npcIndexes)))
|
||||
sw.PushUint32(uint32(len(ds1.NpcIndexes)))
|
||||
|
||||
// Step 5.2 - enoce npcs' paths
|
||||
for _, i := range ds1.npcIndexes {
|
||||
for _, i := range ds1.NpcIndexes {
|
||||
sw.PushUint32(uint32(len(ds1.Objects[i].Paths)))
|
||||
sw.PushUint32(uint32(ds1.Objects[i].X))
|
||||
sw.PushUint32(uint32(ds1.Objects[i].Y))
|
||||
|
@ -37,7 +37,7 @@ type FloorShadowRecord struct {
|
||||
Unknown1 byte
|
||||
Style byte
|
||||
Unknown2 byte
|
||||
hidden byte
|
||||
HiddenBytes byte
|
||||
RandomIndex byte
|
||||
Animated bool
|
||||
YAdjust int
|
||||
@ -45,7 +45,7 @@ type FloorShadowRecord struct {
|
||||
|
||||
// Hidden returns if floor/shadow is hidden
|
||||
func (f *FloorShadowRecord) Hidden() bool {
|
||||
return f.hidden > 0
|
||||
return f.HiddenBytes > 0
|
||||
}
|
||||
|
||||
// Decode decodes floor-shadow record
|
||||
@ -55,7 +55,7 @@ func (f *FloorShadowRecord) Decode(dw uint32) {
|
||||
f.Unknown1 = byte((dw & unknown1Bitmask) >> unknown1Offset)
|
||||
f.Style = byte((dw & styleBitmask) >> styleOffset)
|
||||
f.Unknown2 = byte((dw & unknown2Bitmask) >> unknown2Offset)
|
||||
f.hidden = byte((dw & hiddenBitmask) >> hiddenOffset)
|
||||
f.HiddenBytes = byte((dw & hiddenBitmask) >> hiddenOffset)
|
||||
}
|
||||
|
||||
// Encode adds Floor's bits to stream writter given
|
||||
@ -65,5 +65,5 @@ func (f *FloorShadowRecord) Encode(sw *d2datautils.StreamWriter) {
|
||||
sw.PushBits32(uint32(f.Unknown1), unknown1Length)
|
||||
sw.PushBits32(uint32(f.Style), styleLength)
|
||||
sw.PushBits32(uint32(f.Unknown2), unknown2Length)
|
||||
sw.PushBits32(uint32(f.hidden), hiddenLength)
|
||||
sw.PushBits32(uint32(f.HiddenBytes), hiddenLength)
|
||||
}
|
||||
|
@ -14,14 +14,14 @@ type WallRecord struct {
|
||||
Unknown1 byte
|
||||
Style byte
|
||||
Unknown2 byte
|
||||
hidden byte
|
||||
HiddenBytes byte
|
||||
RandomIndex byte
|
||||
YAdjust int
|
||||
}
|
||||
|
||||
// Hidden returns if wall is hidden
|
||||
func (w *WallRecord) Hidden() bool {
|
||||
return w.hidden > 0
|
||||
return w.HiddenBytes > 0
|
||||
}
|
||||
|
||||
// Decode decodes wall record
|
||||
@ -31,7 +31,7 @@ func (w *WallRecord) Decode(dw uint32) {
|
||||
w.Unknown1 = byte((dw & unknown1Bitmask) >> unknown1Offset)
|
||||
w.Style = byte((dw & styleBitmask) >> styleOffset)
|
||||
w.Unknown2 = byte((dw & unknown2Bitmask) >> unknown2Offset)
|
||||
w.hidden = byte((dw & hiddenBitmask) >> hiddenOffset)
|
||||
w.HiddenBytes = byte((dw & hiddenBitmask) >> hiddenOffset)
|
||||
}
|
||||
|
||||
// Encode adds wall's record's bytes into stream writer given
|
||||
@ -41,5 +41,5 @@ func (w *WallRecord) Encode(sw *d2datautils.StreamWriter) {
|
||||
sw.PushBits32(uint32(w.Unknown1), unknown1Length)
|
||||
sw.PushBits32(uint32(w.Style), styleLength)
|
||||
sw.PushBits32(uint32(w.Unknown2), unknown2Length)
|
||||
sw.PushBits32(uint32(w.hidden), hiddenLength)
|
||||
sw.PushBits32(uint32(w.HiddenBytes), hiddenLength)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user