- Option 1:
- Define road/tramtype using different "allocate label" properties.
- 0x07: Allocate road label
- 0x08: Allocate tram label
- RoadTypeReserveInfo:
- case 0x07: GetRoadTypeByLabel(rtl, ROADTYPE_ROAD, false);
- rt = AllocateRoadType(rtl, ROADTYPE_ROAD);
- case 0x08: GetRoadTypeByLabel(rtl, ROADTYPE_TRAM, false);
- rt = AllocateRoadType(rtl, ROADTYPE_TRAM);
- Option 2:
- Flag in property 0x10.
- RoadTypeReserveInfo:
- Labels are not immediately allocated, but only collected per GRF:
- RoadTypeReserveInfo also collects the road/tram flag.
- After the reservation pass, stuff are really allocated.
- Problem: This breaks GRF loading stages, and essentially adds a second reservation stage. GRFs cannot properly test for already defined labels.
- => Option 1 is superior.