From 75112ec7365013c07fa16d4bf233edf3b4af952a Mon Sep 17 00:00:00 2001 From: Ziemas Date: Mon, 22 Jun 2020 04:14:06 +0200 Subject: [PATCH] Show special tiles in mapdebug (#386) More useful than the floor stuff Also method for testing if special --- d2common/d2enum/tiletype.go | 9 +++++++++ d2core/d2map/d2mapengine/engine.go | 2 +- d2core/d2map/d2maprenderer/renderer.go | 16 ++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/d2common/d2enum/tiletype.go b/d2common/d2enum/tiletype.go index 01b9a54c..d5c4e7b1 100644 --- a/d2common/d2enum/tiletype.go +++ b/d2common/d2enum/tiletype.go @@ -42,3 +42,12 @@ func (tile TileType) UpperWall() bool { return false } } + +func (tile TileType) Special() bool { + switch tile { + case 10, 11: + return true + default: + return false + } +} diff --git a/d2core/d2map/d2mapengine/engine.go b/d2core/d2map/d2mapengine/engine.go index 380e4c41..b5f21d42 100644 --- a/d2core/d2map/d2mapengine/engine.go +++ b/d2core/d2map/d2mapengine/engine.go @@ -160,7 +160,7 @@ func (m *MapEngine) GetStartPosition() (float64, float64) { for tileX := 0; tileX < m.size.Width; tileX++ { tile := m.tiles[tileX+(tileY*m.size.Width)] for _, wall := range tile.Walls { - if wall.Type == 10 && (wall.Style == 10 || wall.Style == 31) { + if wall.Type.Special() && wall.Style == 30 { return float64(tileX) + 0.5, float64(tileY) + 0.5 } } diff --git a/d2core/d2map/d2maprenderer/renderer.go b/d2core/d2map/d2maprenderer/renderer.go index 0df398f5..867d16d8 100644 --- a/d2core/d2map/d2maprenderer/renderer.go +++ b/d2core/d2map/d2maprenderer/renderer.go @@ -281,10 +281,18 @@ func (mr *MapRenderer) renderTileDebug(ax, ay int, debugVisLevel int, target d2r tile := mr.mapEngine.TileAt(ax, ay) - for i, floor := range tile.Floors { - target.PushTranslation(-20, 10+(i+1)*14) - target.DrawText("f: %v-%v", floor.Style, floor.Sequence) - target.Pop() + //for i, floor := range tile.Floors { + // target.PushTranslation(-20, 10+(i+1)*14) + // target.DrawText("f: %v-%v", floor.Style, floor.Sequence) + // target.Pop() + //} + + for i, wall := range tile.Walls { + if wall.Type.Special() { + target.PushTranslation(-20, 10+(i+1)*14) + target.DrawText("s: %v-%v", wall.Style, wall.Sequence) + target.Pop() + } } for yy := 0; yy < 5; yy++ {