Action0/Railtypes

From GRFSpecs
< Action0
Revision as of 12:25, 30 July 2010 by Rubidium (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Action 0 properties for rail types

Action 0 - Properties for rail types

Defining properties of rail types.

Note: This feature is only available in OpenTTD > r18969

{maketoc}

-=Properties=-

||Number|Version|Size|Description

08| |4*B|Rail type label

09| |W|StringID: Build rail toolbar caption

0A| |W|StringID: Rail construction dropdown text

0B| |W|StringID: Build vehicle window caption

0C| |W|StringID: Autoreplace text

0D| |W|StringID: New engine text

0E| |B n*D |Compatible rail type list

0F| |B n*D |Powered rail type list

10| |B|Rail type flags

11| |B|Curve speed advantage multiplier

12| |B|Station graphics

13| |W (a)|Construction costs

14| |W|Speed limit

15| |B|Acceleration model

16|r19307|B|Minimap colour||

(a) In r18969 to 19306 this property was byte-sized.

In NFO, rail type IDs will be GRF local, with an ID to label mapping. Therefore to modify an existing rail type, specify its label in property 08. To create a new rail type, again just specify its label in property 08. This way there is no need for complex GRM mechanisms to allocate IDs. If a label 'clashes' with another GRF, then one GRF will end up modifying the properties instead of creating a new rail type.

When a new rail type is created, it is populated with the information from the first rail type, except that the compatible and powered list contain only the rail type being created. However, no default values should be assumed, as the first rail type may have been modified.

-=Comments=-

Rail type label (08)

A label of four letters which identifies the rail type. Analoguous to cargo labels. The reserved default rail types are labeled:

||Label|rail type

RAIL | Normal rail

ELRL | electrified rail

MONO | mono rail

MGLV | maglev rail||

The following are standard labels for additional railtypes:

||Label|rail type

3RDC | 3rd rail with catenary

3RDR | 3rd rail ||

See also rail type translation table for further info.

Build rail toolbar caption (09)

String ID of the name of the rail type as shown in the toolbar caption.

OpenTTD before r20342 and 1.0.3 require the string to start with the white control code. Later versions of OpenTTD will automatically default to white.

Rail construction dropdown text (0A)

String ID for text in the dropdown of all rail types.

This string must never start with a colour control code.

Build vehicle window caption (0B)

String ID for build vehicle window caption.

OpenTTD before r20342 and 1.0.3 require the string to start with the white control code. Later versions of OpenTTD will automatically default to white.

Autoreplace text (0C)

String ID for rail type shown in autoreplace window.

New engines (0D)

StringID to use for showing texts of the type "We have invented a new <rail type> engine".

Compatible rail type list (0E)

List of rail types on which trains of this rail type can run, even though they might not be powered. E.g. wagons/engines of "eletrified rail"-type are also compatible to "normal rail" and "third rail" type, but they are not powered (there need to be an other powered engine in the consist to move the train).

The format is:

 -+0E <nvar> (<rail type label>){n}+-

That is you give the number of compatible rail types in a single byte followed by a list of that length of rail type labels. A rail type is automatically compatible (and powered) with itself, so you don't need to list the current rail type.

Note that these properties apply to trains of this rail type, not the track. If you want trains of other rail types to be able to run on your rail types, you must set the compatible rail types property for each rail type. Setting these properties behaves always incremental, so you only need to the set additional bits for each other rail type, you cannot remove compatibility/poweredness once it is set (by some other grf).

Powered rail type list (0F)

List of rail types on which trains of this rail type are powered. E.g. engines of "normal rail"-type are powered on "electrified rail"- and "third-rail"-type as well.

Same format as for property 0E above.

Rail type flags (10)

Flags to define properties related to the rail type:

||Bit|Value|Meaning

0|1|Draw catenary for this rail

1|2|Disallow level crossings for this rail (OpenTTD since r20049)||

Curve Speed advantage multiplier

This property sets the multiplier to the curve speed advantage which all trains running on this track type get. The base curve speed advantage is given by the multiplication of the value of this property with the base speed advantage - which depends on the curve length in tiles:

||curve length | base speed adv.

0 (90° turn) |30

1 |44

2| 55

3| 66

4| 75

5| 84

6| 91

7| 98

8| 103

9| 108

10| 111

11| 114

12+| 115||

Station graphics (12)

This property defines the default graphics for the stations. There are three kind of default stations, usually associated with rail, monorail and maglev tracks. Valid values are:

||Value|Meaning

0|normal rail

1|monorail

2|maglev||

Speed limit (14)

Speed limit in mph*1.6 (approx. km/h). Set to "0" for no limit at all.

Acceleration model (15)

This property defines the acceleration model used. Valid values range from 0 to 2:

||Value|Meaning

0|normal rail

1|monorail

2|maglev||

There is currently no difference between normal rail and monorail.

Map colour (16)

This property defines the colour this track type is drawn in the minimap view. The byte value specifies the colour entry in the DOS palette.