NotRoadType Spec Essential • split RoadType to StreetType and TramType • per tile, one StreetType and one TramType may be present • they can coexist on the same tile in some cases, but do not influence each other • construction tools for StreetType and TramType are independent • adding/removing/converting StreetType on a tile does not affect TramType for tile and vice-versa • subtypes ◦ up to 15 StreetType subtypes and 15 TramType subtypes (implementation detail: uses 4 bits each, uses 8 bits free in m8) • drawing ◦ (lowest) Ground -> StreetType -> TramType -> Sidewalks + Decoration -> StreetTypeCatenary -> TramTypeCatenary (highest) ◦ drawing of rail crossings may or may not be fixed (road tile is enforced for tram crossings currently, this looked non-trivial to fix when I tried) ◦ methods _may_ be provided to enable more control over appearance, e.g. snow above snowline etc • catenary ◦ both StreetType and TramType can provide catenary on a tile (implementation detail: flag or cb returning sprites) ◦ vehicle power on a tile is determined by vehicle against subtype label, unrelated to drawing of catenary sprites ◦ there is sophisticated handling of rail catenary to preserve continuity where railtypes cross, something similar needs to be provided for NotRoadTypes • converting between subtypes ◦ a convert tool is needed, similar to rail conversion ◦ this will need to consider ownership carefully ▪ too restrictive = can’t overbuild current subtype in towns ▪ too permissive = deliberate or accidental breaking of existing routes by overbuilding current subtype • drive-in stops: ◦ behaviour of articulated vehicles and trams unchanged, can’t use drive-in stops ◦ catenary needs to be provided for StreetType drive-in stops • vehicles ◦ vehicles are StreetType XOR TramType (bool flag) ◦ each subtype has a label ◦ vehicle compatibility with a subtype is determined by label ◦ vehicle may determine some properties by subtype (power, possibly others) • overtaking: out of scope • newgrf author considerations ◦ user should be able to see whether catenary exists for road, tram, or both ◦ authors will need to draw catenary carefully to avoid it looking bad when StreetType and RoadType catenary are combined on a tile Optional (proposed by frosch) • split global toolbar to ‘road’ (StreetType) and ‘light rail’ (TramType) • this makes the distinction between the transport types obvious • in this way it’s clear that a tile can have ◦ 1 type of rail ◦ 1 type of road ◦ 1 type of light rail • unknown: would the various vehicle menus, station menus etc also be split for ‘road’ and ‘light rail’?