Kudos & thanks for fixing the crash with invalid features and supporting those new ones

Property 12 of the general variables (rail type translation table) is not yet supported:
Code:
// Railtable
//!!Fatal Error (47): Offset 5: Invalid property 12.
10 * 54 00 08 01 \b12 00 12 "RAIL" "ELRL" "_160" "E160" "_230" "E230" "HSTR" "3RDC" "3RDR" "MONO" "MGLV" "PLAN"
Also property 13 of rail types (construction cost multiplier) was (re-)defined to a word-sized value, it looks like renum looks for a byte value, though:
Code:
//!!Warning (209): Offset 93: Found byte 2 of a 2-byte escape while reading byte 1 of a 1-byte field.
//!!Fatal Error (47): Offset 93: Invalid property 02.
73 * 99 00 10 \b14 01 02 // action0, for rails, numprops, numrails, ID
08 "_160" // 4*B Rail type label
09 29 D0 // W StringID: Name of rail type
0A 2A D0 // W StringID: Menu text
0B 2B D0 // W StringID: Build window caption
0C 2C D0 // W StringID: Autoreplace text
0D 2D D0 // W StringID: New engine text
0E 07 "HSTR" "E230" "_230" "E160" "ELRL" "RAIL" "3RDC" // B n*D Compatible rail type list
0F 07 "HSTR" "E230" "_230" "E160" "ELRL" "RAIL" "3RDC" // B n*D Powered railtype list
10 00 // B Rail type flags
11 00 // B Curve speed advantage
12 00 // B Station graphics
13 \w600 // W Construction costs <--- translates ot 58 02
14 \w160 // W Speed limit
15 00 // B Acceleration model
And while we're at it, airport tiles may also be defined since OpenTTD r19200 (see also the
page in the newgrf wiki); get a source repo with this feature from
here:
Code:
//!!Fatal Error (44): Invalid feature byte.
9 * 9 00 11 \b2 01 01
08 \b35 //subsitute type
09 \b35 //override type