From 8c39edfe7e376b23a0dd81a826c88e555ba69120 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Fri, 27 Sep 2024 06:28:40 +0100 Subject: [PATCH] Add `dev.display.tileData('microTiles')` --- Source/debug.cpp | 20 ++++++++++++++++++++ Source/debug.h | 1 + Source/lua/modules/dev/display.cpp | 3 ++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Source/debug.cpp b/Source/debug.cpp index d485819cafc..ec3761fdf45 100644 --- a/Source/debug.cpp +++ b/Source/debug.cpp @@ -165,6 +165,26 @@ bool GetDebugGridText(Point dungeonCoords, char *debugGridTextBuffer) } break; } + case DebugGridTextItem::microTiles: { + std::string result; + const MICROS µs = DPieceMicros[dPiece[dungeonCoords.x][dungeonCoords.y]]; + for (const LevelCelBlock tile : micros.mt) { + if (!tile.hasValue()) break; + if (!result.empty()) result += '\n'; + StrAppend(result, tile.frame(), " "); + switch (tile.type()) { + case TileType::Square: StrAppend(result, "S"); break; + case TileType::TransparentSquare: StrAppend(result, "T"); break; + case TileType::LeftTriangle: StrAppend(result, "<"); break; + case TileType::RightTriangle: StrAppend(result, ">"); break; + case TileType::LeftTrapezoid: StrAppend(result, "\\"); break; + case TileType::RightTrapezoid: StrAppend(result, "/"); break; + } + } + if (result.empty()) return false; + *BufCopy(debugGridTextBuffer, result) = '\0'; + return true; + } break; case DebugGridTextItem::dPiece: info = dPiece[dungeonCoords.x][dungeonCoords.y]; break; diff --git a/Source/debug.h b/Source/debug.h index 42b2931ffde..7b27aa09720 100644 --- a/Source/debug.h +++ b/Source/debug.h @@ -33,6 +33,7 @@ extern uint32_t glEndSeed[NUMLEVELS]; enum class DebugGridTextItem : uint16_t { None, + microTiles, dPiece, dTransVal, dLight, diff --git a/Source/lua/modules/dev/display.cpp b/Source/lua/modules/dev/display.cpp index 9ae89f1c908..b63211ed633 100644 --- a/Source/lua/modules/dev/display.cpp +++ b/Source/lua/modules/dev/display.cpp @@ -42,7 +42,8 @@ std::string DebugCmdFullbright(std::optional on) std::string DebugCmdShowTileData(std::optional dataType) { - static const std::array DataTypes { + static const std::array DataTypes { + "microTiles", "dPiece", "dTransVal", "dLight",