m4nfo ship properties are based on plain nfo's action0 properties. Most of them are mapped in a straightforward way, but some of m4nfo's ship property functions are based on custom calculations, or based on using more than one nfo property.
| m4nfo function | nfo property | custom |
| callbacks | 0x12 | yes |
| canalspeed | 0x15 | yes |
| capacity | 0x0D | |
| cargoaging | 0x1D | |
| cargoclasses | 0x18 + 0x19 | yes |
| cargolist | 0x1E + 0x1F | |
| cargomask | 0x11 | |
| cargotype | 0x0C | |
| climate | 0x06 | |
| flags | 0x17 | |
| intro | 0x00 + 0x1A | yes |
| loadamount | 0x07 | |
| modlife | 0x04 | |
| newgraphics | 0x08 | |
| oceanspeed | 0x14 | yes |
| price | 0x0A | |
| refitcost | 0x13 | yes |
| refittable | 0x09 | |
| reliability | 0x02 | |
| retire | 0x16 | |
| runningcost | 0x0F | |
| seteffect | 0x1C | |
| soundeffect | 0x10 | |
| sortbefore | 0x1B | |
| speed | 0x0B | yes |
| vehlife | 0x03 |
| Flag label | Bit | Value |
| 2CC | 1 | 0x02 |
| AUTOREFITTING | 4 | 0x10 |
| CARGOMULTIPLIER | 5 | 0x20 |
| NOBRKEFFECT | 6 | 0x40 |
Enabling callbacks in plain nfo means to set bits in property (0x12). Unfortunately, these bits have no numerical relation to the corresponding callback values returned by nfo's variable (0x0C). In m4nfo, both property function callbacks() and performance function callback() are using the same callback labels.
Speed fractions can be given either as a byte value as in plain nfo, or directly as a percent value.
This m4nfo property function combines the two nfo properties for cargo class inclusion (0x18) and exclusion (0x19).
Unline nfo, which again uses two properties for the introduction date (0x00 and 0x1A), this m4nfo function takes an introduction date in different formats and re-formats it for the appropriate nfo properties, i.e. if the given year is after 1920, only nfo property 00 will be used.
In m4nfo, the refit cost can be given either as a Byte value, with its maximum value "255" correlating to 50% of the vehicle's purchase price cost base (this is the original nfo behaviour), or directly as a percent value.
Plain nfo allows to specify the speed of a ship in units of mph*3.2, i.e. approximately km/h only, but m4nfo allows to use either [km/h, KM/H, mph, MPH].
m4nfo ship performance functions are based on plain nfo's Variational Action2 variables. Again, most of them are mapped in a straightforward way, but some of m4nfo's ship performance functions are based on custom calculations, or based on use of more than one nfo variable.
Please note that functions return either Byte, Word or Dword values, depending on the context they're used in.
| m4nfo function | nfo var | Byte | Word | |
| ageindays | 0xC0 | 81 C0 00 FF | 85 C0 00 FF FF | |
| animation | 0x46 | 82 46 08 03 | ||
| autoreplace | 0x10 | 81 10 00 FF | ||
| callback | 0x0C | 81 0C 00 FF | 85 0C 00 FF FF | |
| cargo | 0xB9 | 81 B9 00 FF | ||
| direction | 0x9F | 81 9F 00 FF | ||
| displaymode | 0x10 | 81 10 00 FF | ||
| else | n/a | |||
| indepot | 0xE2 | 82 E2 00 FF | ||
| lastmaintenance | 0x92 | 81/82 92 00 FF | 85/86 92 00 FF FF | |
| property | 0x10 | 81 10 00 FF | ||
| rcost_cargotype | 0x10 | 81 10 00 FF | ||
| rcost_cargosubtype | 0x10 | 81 10 08 FF | ||
| rcost_cargoclass | 0x10 | 81 10 10 FF | ||
| refitted | 0xF2 | 81/82 F2 00 FF | ||
| reliabilitystate | 0xCE | 81 CE 00 FF | 85 CE 00 FF FF | |
| soundevent | 0x10 | 81 10 00 FF | ||
| veh_cargoclass | 0x47 | 81 47 10 FF | ||
| veh_cargotype | 0x47 | 81 47 00 FF | ||
| veh_cargoweight | 0x47 | 81 47 08 FF | ||
| veh_currentload | 0xBC | 81 BC 00 FF | ||
| veh_id | 0xC6 | 81/82 C6 00 FF | ||
| veh_status | 0xB2 | 81 B2 00 FF | ||
| yearbuilt | 0x49 / 0xC4 | (custom) | ||
m4nfo ship callbacks are based on plain nfo's callbacks. They're all mapped in a straightforward way. Callbacks from the first section of the table below have to be enabled by property function callbacks(), but those from the second section do not need to be: they're always active and will be used automatically if needed.
| m4nfo callback | nfo callback |
| CB_LOAD | 0x12 |
| CB_RCAP | 0x15 |
| CB_RCOL | 0x2D |
| CB_SOUND | 0x33 |
| CB_TSFX | 0x19 |
| CB_ARVS | 0x18 |
| CB_PROP | 0x36 |
| CB_RCOST | 0x15E |
| CB_STOP | 0x31 |
| CB_TEXT | 0x23 |
| CB_32DAY | 0x32 |
Callback helper functions are based on m4nfo's function cbr() which returns a parameter as a callback return value.
| m4nfo function | definition |
| effect | cbr($1) |
| seteffort | (custom) |
| autorefit | cbr(eval($1 | 16384)) |
| refsnd | cbr(_S_$1) |
| grftext | cbr($1) |
| reftxtcb | (custom) |
In nfo, randomized Action2s are used to randomize the ship (0x80).
| m4nfo function | nfo random Action2 type | randomrel | 0x80 |