Debug: Use zoning dropdown for debug zoning modes
Control visibility using misc_debug 2, instead of controlling debug modes themselves using misc_debug
This commit is contained in:
@@ -26,7 +26,6 @@
|
||||
#include "zoning.h"
|
||||
#include "viewport_func.h"
|
||||
#include "road_map.h"
|
||||
#include "debug_settings.h"
|
||||
#include "animated_tile.h"
|
||||
#include "3rdparty/cpp-btree/btree_set.h"
|
||||
|
||||
@@ -271,31 +270,6 @@ SpriteID TileZoneCheckTraceRestrictEvaluation(TileIndex tile, Owner owner)
|
||||
if (IsTunnelBridgeWithSignalSimulation(tile) && IsTunnelBridgeRestrictedSignal(tile)) {
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_RED;
|
||||
}
|
||||
if (unlikely(HasBit(_misc_debug_flags, MDF_ZONING_RS_WATER_FLOOD_STATE)) && IsNonFloodingWaterTile(tile)) {
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_YELLOW;
|
||||
}
|
||||
if (unlikely(HasBit(_misc_debug_flags, MDF_ZONING_RS_TROPIC_ZONE))) {
|
||||
switch (GetTropicZone(tile)) {
|
||||
case TROPICZONE_DESERT:
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_YELLOW;
|
||||
case TROPICZONE_RAINFOREST:
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_LIGHT_BLUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (unlikely(HasBit(_misc_debug_flags, MDF_ZONING_RS_ANIMATED_TILE)) && _animated_tiles.find(tile) != _animated_tiles.end()) {
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_YELLOW;
|
||||
}
|
||||
if (unlikely(HasBit(_misc_debug_flags, MDF_ZONING_RS_WATER_REGION))) {
|
||||
extern uint GetWaterRegionTileDebugColourIndex(TileIndex tile);
|
||||
uint colour_index = GetWaterRegionTileDebugColourIndex(tile);
|
||||
if (colour_index == 0) {
|
||||
return ZONING_INVALID_SPRITE_ID;
|
||||
} else {
|
||||
return std::min<SpriteID>(SPR_ZONING_INNER_HIGHLIGHT_RED + colour_index - 1, SPR_ZONING_INNER_HIGHLIGHT_YELLOW);
|
||||
}
|
||||
}
|
||||
|
||||
return ZONING_INVALID_SPRITE_ID;
|
||||
}
|
||||
@@ -351,6 +325,45 @@ inline SpriteID TileZoneCheckOneWayRoadEvaluation(TileIndex tile)
|
||||
}
|
||||
}
|
||||
|
||||
inline SpriteID TileZoneDebugWaterFlood(TileIndex tile)
|
||||
{
|
||||
if (IsNonFloodingWaterTile(tile)) {
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_YELLOW;
|
||||
}
|
||||
return ZONING_INVALID_SPRITE_ID;
|
||||
}
|
||||
|
||||
inline SpriteID TileZoneDebugWaterRegion(TileIndex tile)
|
||||
{
|
||||
extern uint GetWaterRegionTileDebugColourIndex(TileIndex tile);
|
||||
uint colour_index = GetWaterRegionTileDebugColourIndex(tile);
|
||||
if (colour_index == 0) {
|
||||
return ZONING_INVALID_SPRITE_ID;
|
||||
} else {
|
||||
return std::min<SpriteID>(SPR_ZONING_INNER_HIGHLIGHT_RED + colour_index - 1, SPR_ZONING_INNER_HIGHLIGHT_YELLOW);
|
||||
}
|
||||
}
|
||||
|
||||
inline SpriteID TileZoneDebugTropicZone(TileIndex tile)
|
||||
{
|
||||
switch (GetTropicZone(tile)) {
|
||||
case TROPICZONE_DESERT:
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_YELLOW;
|
||||
case TROPICZONE_RAINFOREST:
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_LIGHT_BLUE;
|
||||
default:
|
||||
return ZONING_INVALID_SPRITE_ID;
|
||||
}
|
||||
}
|
||||
|
||||
inline SpriteID TileZoneDebugAnimatedTile(TileIndex tile)
|
||||
{
|
||||
if (_animated_tiles.find(tile) != _animated_tiles.end()) {
|
||||
return SPR_ZONING_INNER_HIGHLIGHT_YELLOW;
|
||||
}
|
||||
return ZONING_INVALID_SPRITE_ID;
|
||||
}
|
||||
|
||||
/**
|
||||
* General evaluation function; calls all the other functions depending on
|
||||
* evaluation mode.
|
||||
@@ -376,7 +389,13 @@ SpriteID TileZoningSpriteEvaluation(TileIndex tile, Owner owner, ZoningEvaluatio
|
||||
case ZEM_2x2_GRID: return TileZoneCheckRoadGridEvaluation(tile, 3);
|
||||
case ZEM_3x3_GRID: return TileZoneCheckRoadGridEvaluation(tile, 4);
|
||||
case ZEM_ONE_WAY_ROAD: return TileZoneCheckOneWayRoadEvaluation(tile);
|
||||
default: return ZONING_INVALID_SPRITE_ID;
|
||||
|
||||
case ZEM_DBG_WATER_FLOOD: return TileZoneDebugWaterFlood(tile);
|
||||
case ZEM_DBG_WATER_REGION: return TileZoneDebugWaterRegion(tile);
|
||||
case ZEM_DBG_TROPIC_ZONE: return TileZoneDebugTropicZone(tile);
|
||||
case ZEM_DBG_ANIMATED_TILE: return TileZoneDebugAnimatedTile(tile);
|
||||
|
||||
default: return ZONING_INVALID_SPRITE_ID;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user