diff --git a/src/road.cpp b/src/road.cpp index d065ab3c84..7f77b762bc 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -144,7 +144,13 @@ bool HasRoadTypeAvail(const CompanyID company, RoadType roadtype) { if (company == OWNER_DEITY || company == OWNER_TOWN || _game_mode == GM_EDITOR || _generating_world) { const RoadTypeInfo *rti = GetRoadTypeInfo(roadtype); - return rti->label != 0 && (rti->flags & ROTFB_HIDDEN) == 0; + if (rti->label == 0) return false; + + bool available = (rti->flags & ROTFB_HIDDEN) == 0; + if (!available && (company == OWNER_TOWN || _game_mode == GM_EDITOR || _generating_world)) { + if (roadtype == GetTownRoadType()) return true; + } + return available; } else { const Company *c = Company::GetIfValid(company); if (c == nullptr) return false;