- 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’?