From 297184376f35d6e2f5eb8fb30daa1e3f65c354a7 Mon Sep 17 00:00:00 2001 From: Tim Sarbin Date: Sun, 17 Nov 2019 01:14:58 -0500 Subject: [PATCH] Phase 1 prep work for gameplay (#196) * Updates * More merge adjustments. * Don't commit local changes... --- d2core/d2scene/game.go | 51 +++++++++++++++++++++++---- d2core/d2scene/map_engine_testing.go | 11 +++--- d2render/animated_entity.go | 6 +++- d2render/d2mapengine/engine.go | 13 +++++++ d2render/d2mapengine/region.go | 18 ++++++++++ go.mod | 7 ++-- go.sum | 21 +++++++++++ main.go | 6 ++-- tests/mapload_test.go | 29 ---------------- tests/mpq_test.go | 52 ---------------------------- 10 files changed, 114 insertions(+), 100 deletions(-) delete mode 100644 tests/mapload_test.go delete mode 100644 tests/mpq_test.go diff --git a/d2core/d2scene/game.go b/d2core/d2scene/game.go index 56e71c18..48cb76ae 100644 --- a/d2core/d2scene/game.go +++ b/d2core/d2scene/game.go @@ -2,14 +2,19 @@ package d2scene import ( "image/color" + "log" + + "github.com/OpenDiablo2/D2Shared/d2helper" + + "github.com/OpenDiablo2/OpenDiablo2/d2render/d2mapengine" - "github.com/OpenDiablo2/OpenDiablo2/d2audio" "github.com/OpenDiablo2/D2Shared/d2common/d2enum" "github.com/OpenDiablo2/D2Shared/d2common/d2interface" - "github.com/OpenDiablo2/OpenDiablo2/d2corecommon/d2coreinterface" "github.com/OpenDiablo2/D2Shared/d2common/d2resource" - "github.com/OpenDiablo2/OpenDiablo2/d2core" "github.com/OpenDiablo2/D2Shared/d2data/d2datadict" + "github.com/OpenDiablo2/OpenDiablo2/d2audio" + "github.com/OpenDiablo2/OpenDiablo2/d2core" + "github.com/OpenDiablo2/OpenDiablo2/d2corecommon/d2coreinterface" "github.com/OpenDiablo2/OpenDiablo2/d2render" "github.com/OpenDiablo2/OpenDiablo2/d2render/d2ui" "github.com/hajimehoshi/ebiten" @@ -24,6 +29,7 @@ type Game struct { pentSpinLeft d2render.Sprite pentSpinRight d2render.Sprite testLabel d2ui.Label + mapEngine *d2mapengine.Engine } func CreateGame( @@ -64,6 +70,21 @@ func (v *Game) Load() []func() { v.testLabel.SetText("Soon :tm:") v.testLabel.MoveTo(400, 250) }, + func() { + v.mapEngine = d2mapengine.CreateMapEngine(v.gameState, v.soundManager, v.fileProvider) + // TODO: This needs to be different depending on the act of the player + v.mapEngine.GenerateMap(d2enum.RegionAct1Town, 1, 0) + region := v.mapEngine.GetRegion(0) + rx, ry := d2helper.IsoToScreen(int(region.Region.StartX), int(region.Region.StartY), 0, 0) + v.mapEngine.CenterCameraOn(float64(rx), float64(ry)) + v.mapEngine.Hero = d2core.CreateHero( + int32((region.Region.StartX*5)+3), + int32((region.Region.StartY*5)+3), + 0, + v.gameState.HeroType, + v.gameState.Equipment, + v.fileProvider) + }, } } @@ -73,11 +94,29 @@ func (v *Game) Unload() { func (v Game) Render(screen *ebiten.Image) { screen.Fill(color.Black) - v.pentSpinLeft.Draw(screen) - v.pentSpinRight.Draw(screen) - v.testLabel.Draw(screen) + v.mapEngine.Render(screen) } func (v *Game) Update(tickTime float64) { + // TODO: Pathfinding + if ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft) { + mx, my := ebiten.CursorPosition() + px, py := d2helper.ScreenToIso(float64(mx)-v.mapEngine.OffsetX, float64(my)-v.mapEngine.OffsetY) + angle := 359 - d2helper.GetAngleBetween( + v.mapEngine.Hero.AnimatedEntity.LocationX, + v.mapEngine.Hero.AnimatedEntity.LocationY, + px, + py, + ) + directionIndex := int((float64(angle) / 360.0) * 16.0) + newDirection := d2render.DirectionLookup[directionIndex] + if newDirection != v.mapEngine.Hero.AnimatedEntity.GetDirection() { + v.mapEngine.Hero.AnimatedEntity.SetMode(d2enum.AnimationModePlayerTownNeutral.String(), v.mapEngine.Hero.Equipment.RightHand.GetWeaponClass(), newDirection) + log.Printf("Angle: %d -> %d", directionIndex, newDirection) + } + } + + rx, ry := d2helper.IsoToScreen(int(v.mapEngine.Hero.AnimatedEntity.LocationX), int(v.mapEngine.Hero.AnimatedEntity.LocationY), 0, 0) + v.mapEngine.CenterCameraOn(float64(rx), float64(ry)) } diff --git a/d2core/d2scene/map_engine_testing.go b/d2core/d2scene/map_engine_testing.go index 01ce977c..675fe442 100644 --- a/d2core/d2scene/map_engine_testing.go +++ b/d2core/d2scene/map_engine_testing.go @@ -12,9 +12,9 @@ import ( "github.com/OpenDiablo2/D2Shared/d2common/d2interface" "github.com/OpenDiablo2/OpenDiablo2/d2corecommon/d2coreinterface" - "github.com/OpenDiablo2/OpenDiablo2/d2audio" "github.com/OpenDiablo2/D2Shared/d2common/d2enum" - _map "github.com/OpenDiablo2/OpenDiablo2/d2render/d2mapengine" + "github.com/OpenDiablo2/OpenDiablo2/d2audio" + "github.com/OpenDiablo2/OpenDiablo2/d2render/d2mapengine" "github.com/OpenDiablo2/OpenDiablo2/d2render/d2ui" "github.com/hajimehoshi/ebiten" "github.com/hajimehoshi/ebiten/ebitenutil" @@ -88,7 +88,7 @@ type MapEngineTest struct { fileProvider d2interface.FileProvider sceneProvider d2coreinterface.SceneProvider gameState *d2core.GameState - mapEngine *_map.Engine + mapEngine *d2mapengine.Engine //TODO: this is region specific properties, should be refactored for multi-region rendering currentRegion int @@ -150,8 +150,7 @@ func (v *MapEngineTest) LoadRegionByIndex(n int, levelPreset, fileIndex int) { v.mapEngine.GenerateAct1Overworld() return } - - v.mapEngine = _map.CreateMapEngine(v.gameState, v.soundManager, v.fileProvider) // necessary for map name update + v.mapEngine = d2mapengine.CreateMapEngine(v.gameState, v.soundManager, v.fileProvider) // necessary for map name update v.mapEngine.OffsetY = 0 v.mapEngine.OffsetX = 0 v.mapEngine.GenerateMap(d2enum.RegionIdType(n), levelPreset, fileIndex) @@ -163,7 +162,7 @@ func (v *MapEngineTest) Load() []func() { v.soundManager.PlayBGM("") return []func(){ func() { - v.mapEngine = _map.CreateMapEngine(v.gameState, v.soundManager, v.fileProvider) + v.mapEngine = d2mapengine.CreateMapEngine(v.gameState, v.soundManager, v.fileProvider) v.LoadRegionByIndex(v.currentRegion, v.levelPreset, v.fileIndex) }, diff --git a/d2render/animated_entity.go b/d2render/animated_entity.go index 3be2de9a..cec1af63 100644 --- a/d2render/animated_entity.go +++ b/d2render/animated_entity.go @@ -73,7 +73,11 @@ func CreateAnimatedEntity(x, y int32, object *d2datadict.ObjectLookupRecord, fil } // DirectionLookup is used to decode the direction offset indexes -var DirectionLookup = []int{3, 15, 4, 8, 0, 9, 5, 10, 1, 11, 6, 12, 2, 13, 7, 14} +var DirectionLookup = []int{9, 15, 5, 6, 4, 10, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0} + +func (v AnimatedEntity) GetDirection() int { + return v.direction +} // SetMode changes the graphical mode of this animated entity func (v *AnimatedEntity) SetMode(animationMode, weaponClass string, direction int) { diff --git a/d2render/d2mapengine/engine.go b/d2render/d2mapengine/engine.go index ad8610fc..cb39ebd7 100644 --- a/d2render/d2mapengine/engine.go +++ b/d2render/d2mapengine/engine.go @@ -40,6 +40,7 @@ type Engine struct { OffsetX float64 OffsetY float64 ShowTiles int + Hero *d2core.Hero } func CreateMapEngine(gameState *d2core.GameState, soundManager *d2audio.Manager, fileProvider d2interface.FileProvider) *Engine { @@ -52,6 +53,15 @@ func CreateMapEngine(gameState *d2core.GameState, soundManager *d2audio.Manager, return result } +func (v *Engine) GetRegion(regionIndex int) *EngineRegion { + return &v.regions[regionIndex] +} + +func (v *Engine) CenterCameraOn(x, y float64) { + v.OffsetX = -(x - 400) + v.OffsetY = -(y - 300) +} + func (v *Engine) GenerateMap(regionType d2enum.RegionIdType, levelPreset int, fileIndex int) { randomSource := rand.NewSource(v.gameState.Seed) region := LoadRegion(randomSource, regionType, levelPreset, v.fileProvider, fileIndex) @@ -209,6 +219,9 @@ func (v *Engine) RenderPass2(region *Region, offX, offY, x, y int, target *ebite npc.Render(target, offX+int(v.OffsetX), offY+int(v.OffsetY)) } } + if v.Hero != nil && int(v.Hero.AnimatedEntity.LocationX) == x && int(v.Hero.AnimatedEntity.LocationY) == y { + v.Hero.Render(target, offX+int(v.OffsetX), offY+int(v.OffsetY)) + } } func (v *Engine) RenderPass3(region *Region, offX, offY, x, y int, target *ebiten.Image) { diff --git a/d2render/d2mapengine/region.go b/d2render/d2mapengine/region.go index bc26e721..4449d88f 100644 --- a/d2render/d2mapengine/region.go +++ b/d2render/d2mapengine/region.go @@ -101,9 +101,27 @@ func LoadRegion(seed rand.Source, levelType d2enum.RegionIdType, levelPreset int result.TileWidth = result.DS1.Width result.TileHeight = result.DS1.Height result.loadObjects(fileProvider) + result.loadSpecials() return result } +func (v *Region) loadSpecials() { + for y := range v.DS1.Tiles { + for x := range v.DS1.Tiles[y] { + for _, wall := range v.DS1.Tiles[y][x].Walls { + if wall.Orientation != 10 { + continue + } + if wall.MainIndex == 30 && wall.SubIndex == 0 { + v.StartX = float64(x) + 0.5 + v.StartY = float64(y) + 0.5 + log.Printf("Starting location: %d, %d", x, y) + } + } + } + } +} + func (v *Region) loadObjects(fileProvider d2interface.FileProvider) { var wg sync.WaitGroup wg.Add(len(v.DS1.Objects)) diff --git a/go.mod b/go.mod index 971e1d29..b0ca01ae 100644 --- a/go.mod +++ b/go.mod @@ -4,13 +4,12 @@ go 1.12 require ( github.com/JoshVarga/blast v0.0.0-20180421040937-681c804fb9f0 + github.com/OpenDiablo2/D2Shared v0.0.0-20191117053631-b0c159330365 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect - github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191115171053-e42cff071c36 - github.com/OpenDiablo2/D2Shared v0.0.0-20191117044836-c56c888bec7d - github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191116200143-acc933b7c399 - github.com/hajimehoshi/oto v0.5.3 // indirect + github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191117051038-800b98a0c66d github.com/mitchellh/go-homedir v1.1.0 + github.com/pkg/profile v1.3.0 golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136 // indirect golang.org/x/mobile v0.0.0-20191115022231-f0c40035f2ba // indirect golang.org/x/sys v0.0.0-20191115151921-52ab43148777 // indirect diff --git a/go.sum b/go.sum index 50843bf4..376f7d54 100644 --- a/go.sum +++ b/go.sum @@ -6,18 +6,30 @@ github.com/OpenDiablo2/D2Shared v0.0.0-20191117023413-d9429afbbed6 h1:KAejCXdaPB github.com/OpenDiablo2/D2Shared v0.0.0-20191117023413-d9429afbbed6/go.mod h1:ZB6LLdzmBJrQ0ADH671WFvsAhNQfYaOp0EI3KJ9Ckck= github.com/OpenDiablo2/D2Shared v0.0.0-20191117044836-c56c888bec7d h1:2yQG+kQSdd/9NvbUDYYkvfjMPGRb5vLSClYRWF835SI= github.com/OpenDiablo2/D2Shared v0.0.0-20191117044836-c56c888bec7d/go.mod h1:tWln5/64VDcLuOr/GHyQU1ea5zdm5WfleFPEr8rFgcw= +github.com/OpenDiablo2/D2Shared v0.0.0-20191117053631-b0c159330365 h1:CinnWYg8Pa+FUuMvhNpJyxf9FeDmc4J3PllQdeGuXGU= +github.com/OpenDiablo2/D2Shared v0.0.0-20191117053631-b0c159330365/go.mod h1:tWln5/64VDcLuOr/GHyQU1ea5zdm5WfleFPEr8rFgcw= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/gofrs/flock v0.7.1 h1:DP+LD/t0njgoPBvT5MJLeliUIVQR03hiKR6vezdwHlc= github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/hajimehoshi/bitmapfont v1.2.0/go.mod h1:h9QrPk6Ktb2neObTlAbma6Ini1xgMjbJ3w7ysmD7IOU= +github.com/hajimehoshi/ebiten v1.10.0 h1:ADLOUI/7aaTOP7GRlQBHVI1Qtvfdt9M6XQqeULSK7Uo= +github.com/hajimehoshi/ebiten v1.10.0/go.mod h1:8BJhIws+Jkol+z7hSGP/WFsaDAPTtRQ+ELBPPQetq2w= github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191115171053-e42cff071c36 h1:fHp/oiWM4uC88FHWCaTn6Lck4sTEKZ0KhWsajb7zfL0= github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191115171053-e42cff071c36/go.mod h1:52cGPFR+BqkkBap9Ue4BEKkfvICkvXoONeWCYPEFTPo= github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191116200143-acc933b7c399 h1:UeyExTBk9PT8voPAc8UvIqOytjRrPBQX7D1jiQnhhls= github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191116200143-acc933b7c399/go.mod h1:52cGPFR+BqkkBap9Ue4BEKkfvICkvXoONeWCYPEFTPo= +github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191117051038-800b98a0c66d h1:dJL9ygMUE9U5WOEwgQ+D33t0dDRm3VkwNi2lzaoGQ6A= +github.com/hajimehoshi/ebiten v1.11.0-alpha.0.20191117051038-800b98a0c66d/go.mod h1:6ax6p5ui8fuQ/+00sQ79oTy4OfrythHfDEYV4yni5So= github.com/hajimehoshi/go-mp3 v0.2.1/go.mod h1:Rr+2P46iH6PwTPVgSsEwBkon0CK5DxCAeX/Rp65DCTE= github.com/hajimehoshi/oto v0.3.4/go.mod h1:PgjqsBJff0efqL2nlMJidJgVJywLn6M4y8PI4TfeWfA= +github.com/hajimehoshi/oto v0.5.2 h1:5FEPlejAsR2PVRqiW7h2PIwp9UWR+8zxj2And102YU4= github.com/hajimehoshi/oto v0.5.2/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= github.com/hajimehoshi/oto v0.5.3-0.20191110112117-6298480de6b1 h1:D/mCcGB1KpQDbI8itypR0vhNA1LClAD336h0VKmwNCo= github.com/hajimehoshi/oto v0.5.3-0.20191110112117-6298480de6b1/go.mod h1:0QXGEkbuJRohbJaxr7ZQSxnju7hEhseiPx2hrh6raOI= @@ -34,6 +46,11 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= +github.com/pkg/profile v1.3.0 h1:OQIvuDgm00gWVWGTf4m4mCt6W1/0YqU7Ntg0mySWgaI= +github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -70,5 +87,9 @@ golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191026034945-b2104f82a97d h1:QFO0Wgcqcp8nI9hbisKDTBsmfwrvLswk2T73QDZZgVo= golang.org/x/tools v0.0.0-20191026034945-b2104f82a97d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/main.go b/main.go index da447a1f..28dad284 100644 --- a/main.go +++ b/main.go @@ -10,8 +10,8 @@ import ( "github.com/OpenDiablo2/D2Shared/d2common" - "github.com/OpenDiablo2/OpenDiablo2/d2core" "github.com/OpenDiablo2/D2Shared/d2data/d2mpq" + "github.com/OpenDiablo2/OpenDiablo2/d2core" "github.com/hajimehoshi/ebiten" "gopkg.in/alecthomas/kingpin.v2" ) @@ -27,9 +27,11 @@ var region = kingpin.Arg("region", "Region type id").Int() var preset = kingpin.Arg("preset", "Level preset").Int() func main() { - //defer profile.Start(profile.CPUProfile).Stop() + //procs := runtime.GOMAXPROCS(16) + //log.Printf("Setting gomaxprocs to 16, it was previously set to %d", procs) //runtime.LockOSThread() //defer runtime.UnlockOSThread() + //defer profile.Start(profile.ProfilePath(".")).Stop() if len(GitBranch) == 0 { GitBranch = "Local Build" GitCommit = "" diff --git a/tests/mapload_test.go b/tests/mapload_test.go deleted file mode 100644 index bb1f8fa9..00000000 --- a/tests/mapload_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package tests - -import ( - "testing" - - "github.com/hajimehoshi/ebiten" - - _map "github.com/OpenDiablo2/OpenDiablo2/d2render/d2mapengine" - - "github.com/OpenDiablo2/D2Shared/d2common" - "github.com/OpenDiablo2/OpenDiablo2/d2core" - "github.com/OpenDiablo2/D2Shared/d2data/d2mpq" -) - -func TestMapGenerationPerformance(t *testing.T) { - d2mpq.InitializeCryptoBuffer() - d2common.ConfigBasePath = "../" - - engine := d2core.CreateEngine() - gameState := d2core.CreateTestGameState() - mapEngine := _map.CreateMapEngine(gameState, engine.SoundManager, engine) - mapEngine.GenerateAct1Overworld() - surface, _ := ebiten.NewImage(800, 600, ebiten.FilterNearest) - for y := 0; y < 1000; y++ { - mapEngine.Render(surface) - mapEngine.OffsetY = float64(-y) - } - -} diff --git a/tests/mpq_test.go b/tests/mpq_test.go deleted file mode 100644 index 42a0e26e..00000000 --- a/tests/mpq_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package tests - -import ( - "log" - "path" - "strings" - "testing" - - "github.com/OpenDiablo2/D2Shared/d2data/d2cof" - - "github.com/OpenDiablo2/D2Shared/d2data/d2dcc" - - "github.com/OpenDiablo2/OpenDiablo2/d2core" - - "github.com/OpenDiablo2/D2Shared/d2data/d2mpq" - - "github.com/OpenDiablo2/D2Shared/d2common" -) - -func TestMPQScanPerformance(t *testing.T) { - log.SetFlags(log.Ldate | log.LUTC | log.Lmicroseconds | log.Llongfile) - d2mpq.InitializeCryptoBuffer() - d2common.ConfigBasePath = "../" - config := d2common.LoadConfiguration() - engine := d2core.CreateEngine() - for _, fileName := range config.MpqLoadOrder { - mpqFile := path.Join(config.MpqPath, fileName) - archive, _ := d2mpq.Load(mpqFile) - files, err := archive.GetFileList() - if err != nil { - continue - } - for _, archiveFile := range files { - // Temporary until all audio formats are supported - if strings.Contains(archiveFile, ".wav") || strings.Contains(archiveFile, ".pif") { - continue - } - parts := strings.Split(archiveFile, ".") - switch strings.ToLower(parts[len(parts)-1]) { - case "coff": - _ = d2cof.LoadCOF(archiveFile, engine) - case "dcc": - if strings.ContainsAny(archiveFile, "common") { - continue - } - _ = d2dcc.LoadDCC(archiveFile, engine) - } - - _, _ = archive.ReadFile(archiveFile) - } - } -}