diff --git a/src/road_gui.cpp b/src/road_gui.cpp
index 015f952..171b28a 100644
--- a/src/road_gui.cpp
+++ b/src/road_gui.cpp
@@ -312,7 +312,19 @@ struct BuildRoadToolbarWindow : Window {
DeleteWindowById(WC_BUS_STATION, TRANSPORT_ROAD);
DeleteWindowById(WC_TRUCK_STATION, TRANSPORT_ROAD);
- if (this->roadtype_identifier.IsTram()) delete this;
+ //if (this->roadtype_identifier.IsTram()) delete this;
+ RoadSubTypes used_roadtypes = ROADSUBTYPES_NONE;
+ Engine *e;
+ FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) {
+ if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue;
+
+ RoadTypeIdentifier rtid = e->GetRoadType();
+ if (rtid.basetype != this->roadtype_identifier.basetype) continue;
+
+ used_roadtypes |= GetRoadTypeInfo(rtid)->introduces_roadtypes;
+ }
+
+ if (!HasBit(used_roadtypes, this->roadtype_identifier.subtype)) delete this;
}
}
@@ -1351,7 +1363,7 @@ DropDownList *GetScenRoadTypeDropDownList(RoadTypes roadtypes)
/* If it's not used ever, don't show it to the user. */
RoadTypeIdentifier rtid;
FOR_ALL_SORTED_ROADTYPES(rtid, rt) {
- if (!HasBit(used_roadtypes, rtid.subtype)) continue;
+ //DISABLED FOR TEST : if (!HasBit(used_roadtypes, rtid.subtype)) continue;
const RoadtypeInfo *rti = GetRoadTypeInfo(rtid);