Loading

Revision differences

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