Debug: Show signalled tunnel/bridge info in debug window
This commit is contained in:
@@ -1171,8 +1171,7 @@ GrfSpecFeature GetGrfSpecFeature(TileIndex tile)
|
|||||||
}
|
}
|
||||||
|
|
||||||
case MP_TUNNELBRIDGE: {
|
case MP_TUNNELBRIDGE: {
|
||||||
extern std::vector<const GRFFile *> _new_signals_grfs;
|
if (IsTunnelBridgeWithSignalSimulation(tile)) return GSF_SIGNALS;
|
||||||
if (IsTunnelBridgeWithSignalSimulation(tile) && !_new_signals_grfs.empty()) return GSF_SIGNALS;
|
|
||||||
return GSF_INVALID;
|
return GSF_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -889,6 +889,28 @@ void DumpTileSignalsInfo(char *buffer, const char *last, uint index, NIExtraInfo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DumpTunnelBridgeSignalsInfo(char *buffer, const char *last, uint index, NIExtraInfoOutput &output)
|
||||||
|
{
|
||||||
|
if (IsTunnelBridgeSignalSimulationEntrance(index)) {
|
||||||
|
char *b = buffer;
|
||||||
|
const SignalState state = GetTunnelBridgeEntranceSignalState(index);
|
||||||
|
b += seprintf(b, last, " Entrance: state: %d", state);
|
||||||
|
if (_extra_aspects > 0 && state == SIGNAL_STATE_GREEN) b += seprintf(b, last, ", aspect: %d", GetTunnelBridgeEntranceSignalAspect(index));
|
||||||
|
output.print(buffer);
|
||||||
|
}
|
||||||
|
if (IsTunnelBridgeSignalSimulationExit(index)) {
|
||||||
|
char *b = buffer;
|
||||||
|
const SignalState state = GetTunnelBridgeExitSignalState(index);
|
||||||
|
b += seprintf(b, last, " Exit: state: %d", state);
|
||||||
|
if (_extra_aspects > 0 && state == SIGNAL_STATE_GREEN) b += seprintf(b, last, ", aspect: %d", GetTunnelBridgeExitSignalAspect(index));
|
||||||
|
output.print(buffer);
|
||||||
|
}
|
||||||
|
TileIndex end = GetOtherTunnelBridgeEnd(index);
|
||||||
|
extern uint GetTunnelBridgeSignalSimulationSignalCount(TileIndex begin, TileIndex end);
|
||||||
|
seprintf(buffer, last, " Spacing: %d, total signals: %d", GetTunnelBridgeSignalSimulationSpacing(index), GetTunnelBridgeSignalSimulationSignalCount(index, end));
|
||||||
|
output.print(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
static const NIVariable _niv_signals[] = {
|
static const NIVariable _niv_signals[] = {
|
||||||
NIV(0x40, "terrain type"),
|
NIV(0x40, "terrain type"),
|
||||||
NIV(A2VRI_SIGNALS_SIGNAL_RESTRICTION_INFO, "restriction info"),
|
NIV(A2VRI_SIGNALS_SIGNAL_RESTRICTION_INFO, "restriction info"),
|
||||||
@@ -898,7 +920,8 @@ static const NIVariable _niv_signals[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class NIHSignals : public NIHelper {
|
class NIHSignals : public NIHelper {
|
||||||
bool IsInspectable(uint index) const override { return !_new_signals_grfs.empty(); }
|
bool IsInspectable(uint index) const override { return true; }
|
||||||
|
bool ShowExtraInfoOnly(uint index) const override { return _new_signals_grfs.empty(); }
|
||||||
bool ShowSpriteDumpButton(uint index) const override { return true; }
|
bool ShowSpriteDumpButton(uint index) const override { return true; }
|
||||||
uint GetParent(uint index) const override { return UINT32_MAX; }
|
uint GetParent(uint index) const override { return UINT32_MAX; }
|
||||||
const void *GetInstance(uint index)const override { return nullptr; }
|
const void *GetInstance(uint index)const override { return nullptr; }
|
||||||
@@ -936,6 +959,10 @@ class NIHSignals : public NIHelper {
|
|||||||
output.print("Signals:");
|
output.print("Signals:");
|
||||||
DumpTileSignalsInfo(buffer, lastof(buffer), index, output);
|
DumpTileSignalsInfo(buffer, lastof(buffer), index, output);
|
||||||
}
|
}
|
||||||
|
if (IsTunnelBridgeWithSignalSimulation(index)) {
|
||||||
|
output.print("Signals:");
|
||||||
|
DumpTunnelBridgeSignalsInfo(buffer, lastof(buffer), index, output);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* virtual */ void SpriteDump(uint index, DumpSpriteGroupPrinter print) const override
|
/* virtual */ void SpriteDump(uint index, DumpSpriteGroupPrinter print) const override
|
||||||
|
Reference in New Issue
Block a user