From 0fc0baddffabac7fc651cd7ad87183fd4458b3af Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 15 Oct 2020 18:27:23 +0100 Subject: [PATCH] Add bridge info to landinfo window debug print --- src/bridge.h | 6 ++++++ src/misc_gui.cpp | 44 ++++++++++++++++++++++++---------------- src/tunnelbridge_cmd.cpp | 13 ++++++++++++ 3 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/bridge.h b/src/bridge.h index 65bd7e5899..228972f00c 100644 --- a/src/bridge.h +++ b/src/bridge.h @@ -100,6 +100,12 @@ bool MayTownBuildBridgeType(BridgeType bridge_type); int CalcBridgeLenCostFactor(int x); BridgePiecePillarFlags GetBridgeTilePillarFlags(TileIndex tile, TileIndex northern_bridge_end, TileIndex southern_bridge_end, BridgeType bridge_type, TransportType bridge_transport_type); +struct BridgePieceDebugInfo { + BridgePieces piece; + BridgePiecePillarFlags pillar_flags; +}; +BridgePieceDebugInfo GetBridgePieceDebugInfo(TileIndex tile); + void ResetBridges(); #endif /* BRIDGE_H */ diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 324f7d3d85..a438bbbf37 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -124,24 +124,34 @@ public: #else # define LANDINFOD_LEVEL 1 #endif - DEBUG(misc, LANDINFOD_LEVEL, "TILE: %#x (%i,%i)", tile, TileX(tile), TileY(tile)); - if(IsTunnelTile(tile)) { - DEBUG(misc, LANDINFOD_LEVEL, "tunnel pool size: %u", (uint)Tunnel::GetPoolSize()); - DEBUG(misc, LANDINFOD_LEVEL, "index: %#x" , Tunnel::GetByTile(tile)->index); - DEBUG(misc, LANDINFOD_LEVEL, "north tile: %#x" , Tunnel::GetByTile(tile)->tile_n); - DEBUG(misc, LANDINFOD_LEVEL, "south tile: %#x" , Tunnel::GetByTile(tile)->tile_s); - DEBUG(misc, LANDINFOD_LEVEL, "is chunnel: %u" , Tunnel::GetByTile(tile)->is_chunnel); + if (_debug_misc_level >= LANDINFOD_LEVEL) { + DEBUG(misc, LANDINFOD_LEVEL, "TILE: %#x (%i,%i)", tile, TileX(tile), TileY(tile)); + if (IsTunnelTile(tile)) { + DEBUG(misc, LANDINFOD_LEVEL, "tunnel pool size: %u", (uint)Tunnel::GetPoolSize()); + DEBUG(misc, LANDINFOD_LEVEL, "index: %#x" , Tunnel::GetByTile(tile)->index); + DEBUG(misc, LANDINFOD_LEVEL, "north tile: %#x" , Tunnel::GetByTile(tile)->tile_n); + DEBUG(misc, LANDINFOD_LEVEL, "south tile: %#x" , Tunnel::GetByTile(tile)->tile_s); + DEBUG(misc, LANDINFOD_LEVEL, "is chunnel: %u" , Tunnel::GetByTile(tile)->is_chunnel); + } + if (IsBridgeTile(tile)) { + const BridgeSpec *b = GetBridgeSpec(GetBridgeType(tile)); + DEBUG(misc, LANDINFOD_LEVEL, "bridge: flags: %X, ctrl_flags: %X", b->flags, b->ctrl_flags); + } + if (IsBridgeAbove(tile)) { + BridgePieceDebugInfo info = GetBridgePieceDebugInfo(tile); + DEBUG(misc, LANDINFOD_LEVEL, "bridge above: piece: %u, pillars: %X", info.piece, info.pillar_flags); + } + DEBUG(misc, LANDINFOD_LEVEL, "type = %#x", _m[tile].type); + DEBUG(misc, LANDINFOD_LEVEL, "height = %#x", _m[tile].height); + DEBUG(misc, LANDINFOD_LEVEL, "m1 = %#x", _m[tile].m1); + DEBUG(misc, LANDINFOD_LEVEL, "m2 = %#x", _m[tile].m2); + DEBUG(misc, LANDINFOD_LEVEL, "m3 = %#x", _m[tile].m3); + DEBUG(misc, LANDINFOD_LEVEL, "m4 = %#x", _m[tile].m4); + DEBUG(misc, LANDINFOD_LEVEL, "m5 = %#x", _m[tile].m5); + DEBUG(misc, LANDINFOD_LEVEL, "m6 = %#x", _me[tile].m6); + DEBUG(misc, LANDINFOD_LEVEL, "m7 = %#x", _me[tile].m7); + DEBUG(misc, LANDINFOD_LEVEL, "m8 = %#x", _me[tile].m8); } - DEBUG(misc, LANDINFOD_LEVEL, "type = %#x", _m[tile].type); - DEBUG(misc, LANDINFOD_LEVEL, "height = %#x", _m[tile].height); - DEBUG(misc, LANDINFOD_LEVEL, "m1 = %#x", _m[tile].m1); - DEBUG(misc, LANDINFOD_LEVEL, "m2 = %#x", _m[tile].m2); - DEBUG(misc, LANDINFOD_LEVEL, "m3 = %#x", _m[tile].m3); - DEBUG(misc, LANDINFOD_LEVEL, "m4 = %#x", _m[tile].m4); - DEBUG(misc, LANDINFOD_LEVEL, "m5 = %#x", _m[tile].m5); - DEBUG(misc, LANDINFOD_LEVEL, "m6 = %#x", _me[tile].m6); - DEBUG(misc, LANDINFOD_LEVEL, "m7 = %#x", _me[tile].m7); - DEBUG(misc, LANDINFOD_LEVEL, "m8 = %#x", _me[tile].m8); #undef LANDINFOD_LEVEL } diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 0c4ff9478d..fdd710a93b 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -2052,6 +2052,19 @@ BridgePiecePillarFlags GetBridgeTilePillarFlags(TileIndex tile, TileIndex northe } } +BridgePieceDebugInfo GetBridgePieceDebugInfo(TileIndex tile) +{ + TileIndex rampnorth = GetNorthernBridgeEnd(tile); + TileIndex rampsouth = GetSouthernBridgeEnd(tile); + + BridgePieces piece = CalcBridgePiece( + GetTunnelBridgeLength(tile, rampnorth) + 1, + GetTunnelBridgeLength(tile, rampsouth) + 1 + ); + BridgePiecePillarFlags pillar_flags = GetBridgeTilePillarFlags(tile, rampnorth, rampsouth, GetBridgeType(rampnorth), GetTunnelBridgeTransportType(rampnorth)); + return { piece, pillar_flags }; +} + /** * Draw the middle bits of a bridge. * @param ti Tile information of the tile to draw it on.