Paste #psgp4tw79

  1.     1.  swap RoadTypes enum to version given by Alberth, with StreetTypes and TramTypes, and methods to set / get / check those from the RoadTypes instance
  2.     a.  substitute RoadNotTypes whilst patching, then replace later (RoadNotTypes won’t cause search term conflict with RoadTypes)
  3.     b. to patch RoadTypes, there are 78 places consuming RoadTypes enum
  4.     i.  move the storage to m4 as part of this, and deprecate the two existing road/tram bits
  5.     ii. most of the consumers of RoadTypes don’t look hard to patch
  6.     iii.    replace some checking of bits with ‘HasStreetType()’, ‘HasTramType()’ calls
  7.     iv. do not at this stage try and handle multiple types of StreetType, TramType, assume only one of each
  8.     v.  this is unfortunately quite a large patch
  9.     2.  extend StreetType and TramType to support multiple types of each available (only one per tile)
  10.     a.  support constructing multiple types
  11.     b.  support incompatibility when routing
  12.     3.  extend features to StreetTypes and TramTypes
  13.     a.  catenary, with drawing support (bridges, tunnels etc)
  14.     b.  blah
  15.     4.  what is all the scripting support doing with RoadTypes?
  16.     a.  ??
  17.     5.  split types in global construction menu
  18.     a.  does this imply also splitting the construction toolbars?  Or leave it unified and use a flag, as now?
  19.     b.  do this first, in a dedicated branch, to find out?