Loading

Paste #p2h6nlpz3

  1. NotRoadType Spec
  2.  
  3. Essential
  4. • split RoadType to StreetType and TramType
  5. • per tile, one StreetType and one TramType may be present
  6. • they can coexist on the same tile in some cases, but do not influence each other
  7. • construction tools for StreetType and TramType are independent
  8. • adding/removing/converting StreetType on a tile does not affect TramType for tile and vice-versa
  9. • subtypes
  10.     ◦ up to 15 StreetType subtypes and 15 TramType subtypes (implementation detail: uses 4 bits each, uses 8 bits free in m8)
  11. • drawing
  12.     ◦ (lowest) Ground -> StreetType -> TramType -> Sidewalks + Decoration -> StreetTypeCatenary -> TramTypeCatenary (highest)
  13.     ◦ 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)
  14.     ◦ methods _may_ be provided to enable more control over appearance, e.g. snow above snowline etc
  15. • catenary
  16.     ◦ both StreetType and TramType can provide catenary on a tile (implementation detail: flag or cb returning sprites)
  17.     ◦ vehicle power on a tile is determined by vehicle against subtype label, unrelated to drawing of catenary sprites
  18.     ◦ there is sophisticated handling of rail catenary to preserve continuity where railtypes cross, something similar needs to be provided for NotRoadTypes
  19. • converting between subtypes
  20.     ◦ a convert tool is needed, similar to rail conversion
  21.     ◦ this will need to consider ownership carefully
  22.         ▪ too restrictive = can’t overbuild current subtype in towns
  23.         ▪ too permissive = deliberate or accidental breaking of existing routes by overbuilding current subtype
  24. • drive-in stops:
  25.     ◦ behaviour of articulated vehicles and trams unchanged, can’t use drive-in stops
  26.     ◦ catenary needs to be provided for StreetType drive-in stops
  27. • vehicles
  28.     ◦ vehicles are StreetType XOR TramType (bool flag)
  29.     ◦ each subtype has a label
  30.     ◦ vehicle compatibility with a subtype is determined by label
  31.     ◦ vehicle may determine some properties by subtype (power, possibly others)
  32. • overtaking: out of scope
  33. • newgrf author considerations
  34.     ◦ user should be able to see whether catenary exists for road, tram, or both
  35.     ◦ authors will need to draw catenary carefully to avoid it looking bad when StreetType and RoadType catenary are combined on a tile
  36.  
  37. Optional (proposed by frosch)
  38. • split global toolbar to ‘road’ (StreetType) and ‘light rail’ (TramType)
  39. • this makes the distinction between the transport types obvious
  40. • in this way it’s clear that a tile can have
  41.     ◦ 1 type of rail
  42.     ◦ 1 type of road
  43.     ◦ 1 type of light rail
  44. • unknown: would the various vehicle menus, station menus etc also be split for ‘road’ and ‘light rail’? 

Comments