From bbeb4b48e281ea1bc7d7a943871bb50549d20aa8 Mon Sep 17 00:00:00 2001 From: "M. Sz" Date: Mon, 15 Feb 2021 08:34:12 +0100 Subject: [PATCH 1/4] hotfix: rename hidden -> HiddenBytes in wall_record.go and floor_shadow_record.go --- d2common/d2fileformats/d2ds1/floor_shadow_record.go | 8 ++++---- d2common/d2fileformats/d2ds1/wall_record.go | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/d2common/d2fileformats/d2ds1/floor_shadow_record.go b/d2common/d2fileformats/d2ds1/floor_shadow_record.go index dccf7ee1..ae8cc427 100644 --- a/d2common/d2fileformats/d2ds1/floor_shadow_record.go +++ b/d2common/d2fileformats/d2ds1/floor_shadow_record.go @@ -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) } diff --git a/d2common/d2fileformats/d2ds1/wall_record.go b/d2common/d2fileformats/d2ds1/wall_record.go index c25d082e..51f2241d 100644 --- a/d2common/d2fileformats/d2ds1/wall_record.go +++ b/d2common/d2fileformats/d2ds1/wall_record.go @@ -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) } From 8a4c13883518240506bde8f07aa8aba99f83983d Mon Sep 17 00:00:00 2001 From: "M. Sz" Date: Mon, 15 Feb 2021 14:56:53 +0100 Subject: [PATCH 2/4] ds1 encoder: layerStreamTypes and npcIndexes are now exported --- d2common/d2fileformats/d2ds1/ds1.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/d2common/d2fileformats/d2ds1/ds1.go b/d2common/d2fileformats/d2ds1/ds1.go index a039ea2f..e6df40da 100644 --- a/d2common/d2fileformats/d2ds1/ds1.go +++ b/d2common/d2fileformats/d2ds1/ds1.go @@ -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 From dc53da4c6f6be653a4457d5e9e7809e094cca693 Mon Sep 17 00:00:00 2001 From: "M. Sz" Date: Mon, 15 Feb 2021 15:02:59 +0100 Subject: [PATCH 3/4] circleci: added space at the end of circleci's apt-get to make test completable --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b6de2050..df6c35be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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 . From 0dd9ae678328d5b04fad7c38207fb8058474ea9a Mon Sep 17 00:00:00 2001 From: "M. Sz" Date: Mon, 15 Feb 2021 15:05:50 +0100 Subject: [PATCH 4/4] ds1 encoder: fixed build error --- d2common/d2fileformats/d2ds1/ds1.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/d2common/d2fileformats/d2ds1/ds1.go b/d2common/d2fileformats/d2ds1/ds1.go index e6df40da..1e54b329 100644 --- a/d2common/d2fileformats/d2ds1/ds1.go +++ b/d2common/d2fileformats/d2ds1/ds1.go @@ -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))