Skip to content
Andy edited this page Sep 3, 2016 · 4 revisions

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 m4)
  • 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’?  !

Clone this wiki locally