NML:Elementary values

From GRFSpecs
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Elementary values in expressions are

Element Syntax (Python RE) Description
Decimal number [0-9]+ one or more digits
Hexadecimal number 0x[0-9A-Fa-f]+ "0x" followed by one or more hexadecimal digits
Floating point number [0-9]+\.[0-9]+ a decimal number, a dot, and another decimal number. Only supported for some properties that expect a floating point number.
Identifier [a-zA-Z_][a-zA-Z0-9_]* a letter or underscore, optionally followed by more letters, digits, or underscore characters
String "([^"\\]|\\.)*" A double quote character, followed by zero or more characters, ending with another double quote character. A character in-between is any single character except a double quote or a back-slash ("\"). It can also be "\\", "\n", "\t", or "\[0-9A-Fa-f][0-9A-Fa-f]" (a back-slash followed by exactly two hexadecimal digits).
Setting an Identifier

The name of a GRF setting

Parameter param[<num>] Read/write the parameter with the given number.
Parameter from another GRF param[<grfid>, <num>] Read the value of a parameter of another grf
Unit mph|km/h|m/s|hp|kW|hpI|hpM|tons|ton|kg|snow%

See the section on units.

You can combine those elementary values using operators like you're used to from other languages. The following operators are supported:

  • Arithmetic operators: +, -, *, /, %
  • Bitwise/logic operators: &, |, ^, &&, ||, <<, >>
  • Comparison operators: ==, !=, <=, >=, <, >
  • Ternary operator: ? : (only for integers)