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);