<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://newgrf-specs.tt-wiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wallyweb</id>
	<title>GRFSpecs - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://newgrf-specs.tt-wiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wallyweb"/>
	<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/wiki/Special:Contributions/Wallyweb"/>
	<updated>2026-05-12T16:32:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Stations&amp;diff=3797</id>
		<title>Action0/Stations</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Stations&amp;diff=3797"/>
		<updated>2018-08-15T16:27:35Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: Property 1B - Added JGR&amp;#039;s Patch Pack to availability&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Defining properties of new stations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unlike vehicles, the new stations have no equivalent in TTD. The IDs are therefore free to be chosen and will in fact be allocated automatically. In action 0, you only specify IDs relative to the set, i.e. the ID of the first station type is 00, the second station type is 01 and so on.&lt;br /&gt;
&lt;br /&gt;
{{ttdp|}} In TTDPatch each game can only have 255 station IDs for all active grf files.&lt;br /&gt;
&lt;br /&gt;
The only property you &#039;&#039;&#039;must&#039;&#039;&#039; set for each station ID is 08 (in addition to defining an [[Action3|action 3]] for it), anything else can be left at the default. It must be the first property you set for each station ID, because the station ID is actually undefined until it has been assigned a class through property 08. Also, all station IDs must get their classes in the right order, starting from ID 00 onwards.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|08||D||{{ottdp|0.6|2.5|ttdprev=alpha 19}}||Class ID, see below&lt;br /&gt;
|-&lt;br /&gt;
|09||V||{{ottdp|0.6|2.5|ttdprev=alpha 20}}||Sprite layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0A||B||{{ottdp|0.6|2.5|ttdprev=alpha 20}}||Copy sprite layout&lt;br /&gt;
|-&lt;br /&gt;
|0B||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Callback flags&lt;br /&gt;
|-&lt;br /&gt;
|0C||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Bit mask of disabled numbers of platforms&lt;br /&gt;
|-&lt;br /&gt;
|0D||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Bit mask of disabled platform lengths&lt;br /&gt;
|-&lt;br /&gt;
|0E||V||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Define custom layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0F||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Copy custom layout from stationid given by argument&lt;br /&gt;
|-&lt;br /&gt;
|10||W||{{ottdp|0.6|2.5|ttdprev=alpha 25}}||Little/lots threshold&lt;br /&gt;
|-&lt;br /&gt;
|11||B||{{ottdp|0.6|2.5|ttdprev=alpha 27}}||Pylon placement&lt;br /&gt;
|-&lt;br /&gt;
|12||D||{{ottdp|0.6|2.5|ttdprev=alpha 30}}||Bit mask of cargo type triggers for random sprites&lt;br /&gt;
|-&lt;br /&gt;
|13||B||{{ottdp|0.6|2.5|ttdprev=alpha 30}}||General flags&lt;br /&gt;
|-&lt;br /&gt;
|14||B||{{ottdp|0.6|2.5|ttdprev=alpha 47}}||Overhead wire placement&lt;br /&gt;
|-&lt;br /&gt;
|15||B||{{ottdp|0.6|2.5|ttdprev=alpha 51}}||Can train enter tile&lt;br /&gt;
|-&lt;br /&gt;
|16||W||{{ottdp|0.7|2.5|ttdprev=beta 9}}||Animation information&lt;br /&gt;
|-&lt;br /&gt;
|17||B||{{ottdp|0.7|2.5|ttdprev=beta 9}}||Animation speed&lt;br /&gt;
|-&lt;br /&gt;
|18||W||{{ottdp|0.7|2.5|ttdprev=beta 9}}||Animation triggers&lt;br /&gt;
|-&lt;br /&gt;
|19||V||{{ottdp}}||Road routing (reserved for future use)&lt;br /&gt;
|-&lt;br /&gt;
|1A||V||{{ottdp|1.2|no|ottdrev=r22518}}||Advanced sprite layout with register modifiers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unofficial additions and changes. Don&#039;t rely on them to ever work this way in OpenTTD or TTDPatch:&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|1B||8*B||whatever-PP||Minimum bridge height for bridges over stations&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Station class (08) ===&lt;br /&gt;
TTDPatch groups sets of new station graphics into various classes. &amp;amp;nbsp;The classes can be selected by the top dropdown list in the construction window, and the individual stations within the class from the bottom dropdown list. &amp;amp;nbsp;In addition, each station can alter its appearance using [[VariationalAction2|variational]] and/or [[RandomAction2|random]] action 2 entries.&lt;br /&gt;
&lt;br /&gt;
Only two classes are pre-defined:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Name!!Class ID!!Intended use for station&lt;br /&gt;
|-&lt;br /&gt;
|DFLT||44 46 4C 54||Default, no special station type&lt;br /&gt;
|-&lt;br /&gt;
|WAYP||57 41 59 50||Non-cargo stations, waypoints, signal boxes etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may simply use other classes than the above, as long as no more than (at the moment) 16 classes are used among all active .grf files at any time.&lt;br /&gt;
&lt;br /&gt;
When a WAYP station is built, it will not accept cargo nor will any cargo appear from nearby industries or towns. &amp;amp;nbsp;Trains will not stop at WAYP stations, regardless of the non-stop order and/or the nonstop switch.&lt;br /&gt;
&lt;br /&gt;
=== Sprite layout (09) ===&lt;br /&gt;
This controls what sprites are displayed, where they are displayed, and in what order. &amp;amp;nbsp;The property is variable sized, and contains the data for all 8 possible station tile types. &amp;amp;nbsp;If this property is set, the num-ent in the corresponding [[Action1|action 1]] need not be equal to 12 (hex), it can in fact be any number, and any number of sprites can be displayed in any order.&lt;br /&gt;
&lt;br /&gt;
The data is specified as data for all eight tiles in this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;num&amp;amp;gt; &amp;amp;lt;data1&amp;amp;gt; &amp;amp;lt;data2&amp;amp;gt; ... &amp;amp;lt;datan&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B*||num||Number of different tiles supported (see below)&lt;br /&gt;
|-&lt;br /&gt;
|V||data1...||The variable size data for each of the &amp;amp;lt;num&amp;amp;gt; tiles, as specified below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Number of tiles supported =====&lt;br /&gt;
* Normally this is 8, but you can specify fewer as well&lt;br /&gt;
* Using callback flags bit 1, specifying more makes sense too&lt;br /&gt;
* This value must be the same for all stations set by this action 0, even though it must be repeated for the prop. 09 definition of each station ID as well&lt;br /&gt;
&lt;br /&gt;
(Note that num is an extended byte, see [[GRFActionsDetailed]].)&lt;br /&gt;
&lt;br /&gt;
The content of each of the (usually eight) data sets is either a new sprite layout:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|D||groundsprite||the sprite to draw for the rails; this is by default a TTD sprite, but with bit 31 set an [[Action1|action 1]] sprite (42D+X) may be specified&lt;br /&gt;
|-&lt;br /&gt;
|V||spritedata||the data for station sprites, see below; each has a size of 10 bytes, and there may be several&lt;br /&gt;
|-&lt;br /&gt;
|B||80||a literal 80 ends the list of sprites for this tile&lt;br /&gt;
|}&lt;br /&gt;
or, alternatively, the instruction to use TTD&#039;s layout by using four zero bytes 00 00 00 00 instead of the groundsprite bytes. You can use [http://www.bytetransfer.de/projects/ttdpatch/docs/spriteidmapping.php the online sprite ID converter] to look up the sprite IDs you can use for all the climates.&lt;br /&gt;
&lt;br /&gt;
One can draw two types of sprites. &amp;amp;nbsp;One type is one that establishes a new 3D bounding box for use by the sprite sorter. &amp;amp;nbsp;The other type shares the 3D bounding box of the previous sprite(s). &amp;amp;nbsp;It must not be larger than the sprite which established the bounding box, nor must any part of it be outside this box. &amp;amp;nbsp;For simplicity, it should have the exact same dimensions as the sprite it shares the bounding box with. &amp;amp;nbsp;The latter type is supported in the station construction window display only since TTDPatch 2.6 r1684.&lt;br /&gt;
&lt;br /&gt;
The spritedata of sprites with their own bounding box has this format:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||xofs||x-offset from northern tile corner&lt;br /&gt;
|-&lt;br /&gt;
|B||yofs||y-offset from northern tile corner&lt;br /&gt;
|-&lt;br /&gt;
|B||zofs||z-offset from northern tile corner&lt;br /&gt;
|-&lt;br /&gt;
|B||xextent||size of sprite in x direction&lt;br /&gt;
|-&lt;br /&gt;
|B||yextent||size of sprite in y direction&lt;br /&gt;
|-&lt;br /&gt;
|B||zextent||size of sprite in z direction&lt;br /&gt;
|-&lt;br /&gt;
|D||sprite||sprite number to draw&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The spritedata of sprites sharing the bounding box has this format:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||xofs||x-offset relative to previous sprite&lt;br /&gt;
|-&lt;br /&gt;
|B||yofs||y-offset relative to previous sprite&lt;br /&gt;
|-&lt;br /&gt;
|B||80||a literal 80&lt;br /&gt;
|-&lt;br /&gt;
|B||00||(ignored)&lt;br /&gt;
|-&lt;br /&gt;
|B||00||(ignored)&lt;br /&gt;
|-&lt;br /&gt;
|B||00||(ignored)&lt;br /&gt;
|-&lt;br /&gt;
|D||sprite||sprite number to draw&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Since OpenTTD r18959 you can draw multiple ground sprites for a tile, which is useful if you want to use the usual rail/grass/concrete groundtile, but still need to add features to it without using a new bounding box. To do so use the syntax of sprites sharing the previous bounding box, but use it before the first bounding box definition. xpixeloffset and ypixeloffset refer to the usual spot of groundtiles. The same feature is also partially supported in TTDPatch since TTDPatch 2.6 r2312: TTDPatch ignores the xofs and yofs fields and always uses (0,0) for the offset. If you are developing a GRF that needs to be compatible with both OpenTTD and TTDPatch, you should always keep xofs and yofs zero to get the same effect in both games.&lt;br /&gt;
Note however that both implementations do not consider the [[Action0/Stations#General_Flags_.2813.29|setting of prop13 bit 0]], hence these &amp;quot;multiple ground sprites&amp;quot; have to be always part of the building sprites set and cannot be part of the different sprite set for ground sprites.&lt;br /&gt;
&lt;br /&gt;
The sprite number can have the following values (remember to use little endian, i.e. reversed byte order):&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!!Sprite&lt;br /&gt;
|-&lt;br /&gt;
|0000042D+X||use sprite X from the corresponding [[Action1|action 1]] block (i.e. 0000042D for the first, 0000042E for the second, etc.)&lt;br /&gt;
|-&lt;br /&gt;
|0000842D+X||same, but draw it using company colour translation&lt;br /&gt;
|-&lt;br /&gt;
|0322442D+X||same, but draw in transparent mode (actual colours of the sprite are disregarded entirely); supported in station construction window display since TTDPatch 2.6 r1683&lt;br /&gt;
|-&lt;br /&gt;
|RRRR842D+X||draw sprite with colour translation defined in sprite RRRR; available since TTDPatch 2.6 r1683&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With bit 31 set, this sprite will refer to a TTD sprite, not the action 1 sprite. For the first ground sprite the reverse meaning applies.&lt;br /&gt;
&lt;br /&gt;
Depending on the railtype the sprites may get additional offsets:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
! !! Normal/electrified rail !! Monorail !! Maglev&lt;br /&gt;
|-&lt;br /&gt;
|TTD sprites || 0 || 82 || 164&lt;br /&gt;
|-&lt;br /&gt;
|Action 1 sprite (first ground sprite) || 0 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Action 1 sprite (other sprites in the layout) || 0 || 0 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
So, TTD sprites and the first ground sprite are affected by the railtype, while other action 1 sprites in the layout are not. The offset &amp;quot;82&amp;quot; refers to the offset between the default TTD track sprites; if you are using non-track ground sprites which are not from an action 1, you need to supply fake spritenumbers which preemptively reverse the offsets (that is, you need different sprite layouts for every railtype your station is available for).&lt;br /&gt;
&lt;br /&gt;
Setting bit 30 forces this sprite to be displayed normally even in &amp;quot;transparent buildings&amp;quot; mode (supported only in TTDPatch 2.6 r1695 and later).&lt;br /&gt;
&lt;br /&gt;
See below for an example of linked sprites as well as transparent sprites (e.g. for a station roof).&lt;br /&gt;
&lt;br /&gt;
Note that the coordinates here are 3D coordinates with x running from top-right to bottom-left and y running from top-left to bottom-right, with the tile dimensions being 16x16 (and 8 for one height level). This means the x and y values should always be within 0-15 (decimal).&lt;br /&gt;
&lt;br /&gt;
This is different to and independent from the x/y offsets used in the actual .NFO file. &amp;amp;nbsp;The 3D bounding box is used by TTD&#039;s sprite sorter to figure out the order in which to draw the sprites, as well as telling it which sprites to draw, because those whose bounding box falls outside the currently updated screen rectangle will not be drawn. &amp;amp;nbsp;Make sure the 3D bounding box is large enough to contain the entire sprite, but not so large that the sprite sorter can&#039;t determine which sprites should be in front.&lt;br /&gt;
&lt;br /&gt;
This means that the order in which you specify sprites is irrelevant. &amp;amp;nbsp;Sprites will get drawn from back to front, in the order which the sprite sorter determines as correct, from their bounding boxes. &amp;amp;nbsp;There are two exceptions, however:&lt;br /&gt;
* Sprites sharing the same bounding box will always be drawn in the given order.&lt;br /&gt;
* The station construction window display doesn&#039;t use the sprite sorter. Tiles that may be displayed in that window need to be specified in the correct drawing order, back to front.&lt;br /&gt;
&lt;br /&gt;
=== Copy sprite layout (0A) ===&lt;br /&gt;
&lt;br /&gt;
This is not a property as such, but an action. &amp;amp;nbsp;It takes as argument a byte which is interpreted as station-ID to copy the custom sprite layout from.&lt;br /&gt;
&lt;br /&gt;
=== Callback flags (0B) ===&lt;br /&gt;
For stations, the following [[callbacks]] can be defined by setting the corresponding bit in property 0B:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Variable 0C value!!Callback&lt;br /&gt;
|-&lt;br /&gt;
|0||1||13||Whether to make station available in construction window (non-zero callback return) or not (callback returns zero)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||14||Use callback to select sprite layout&lt;br /&gt;
|-&lt;br /&gt;
|2||4||141||Decide next animation frame&lt;br /&gt;
|-&lt;br /&gt;
|3||8||142||Decide animation speed&lt;br /&gt;
|-&lt;br /&gt;
|4||10||149||Custom slope check&lt;br /&gt;
|}&lt;br /&gt;
Bit is the bit you have to set, you do this by adding all the values for all the bits. Variable 0C value is what variable 0C will be set to, for checking it in the [[VariationalAction2|VarAction2]] for callbacks.&lt;br /&gt;
&lt;br /&gt;
=== Selection of numbers of platforms and length (0C, 0D) ===&lt;br /&gt;
&lt;br /&gt;
By default all platform lengths and any number of platforms is available for the new stations. &amp;amp;nbsp;Using these properties, you can choose which ones should be unavailable by setting the corresponding bit in the property.&lt;br /&gt;
&lt;br /&gt;
The values are a byte, used as a bit mask. &amp;amp;nbsp;Bits 0 to 6 control the availability of number or length 1 to 7, and bit 7 controls the availability of the &amp;quot;+7&amp;quot; button. &amp;amp;nbsp;Each bit that is set disables the corresponding length or number of platforms.&lt;br /&gt;
&lt;br /&gt;
For compatibility with &amp;quot;largestations off&amp;quot;, at least one length between 1 and 5 (bits 0 to 4) and one number of platforms between 1 and 4 (bits 0 to 3) must be available, i.e. at least one of these bits must be unset.&lt;br /&gt;
&lt;br /&gt;
=== Define custom layout (0E) ===&lt;br /&gt;
&lt;br /&gt;
This allows choosing which tile type is built at which tile of a newly built&lt;br /&gt;
&lt;br /&gt;
station. &amp;amp;nbsp;There are four different types, which TTD normally defines as&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Tile type!!Appearance&lt;br /&gt;
|-&lt;br /&gt;
|00||plain platform&lt;br /&gt;
|-&lt;br /&gt;
|02||platform with building&lt;br /&gt;
|-&lt;br /&gt;
|04||platform with roof, left side&lt;br /&gt;
|-&lt;br /&gt;
|06||platform with roof, right side&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These numbers are used for stations in NE-SW direction, or these numbers plus one for stations in the NW-SE direction. &amp;amp;nbsp;To define a custom layout, use this format:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||length||length of platforms for this layout&lt;br /&gt;
|-&lt;br /&gt;
|B||number||number of platforms for this layout&lt;br /&gt;
|-&lt;br /&gt;
|V||tiles||length*number bytes of tile types, one platform after another, only 00, 02, 04 or 06 are allowed as values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Repeat this as often as necessary to define the layouts for all supported combinations of length and number. &amp;amp;nbsp;End the definitions with a 00 00 (zero length and zero number). &amp;amp;nbsp;Any combinations that are not defined will be built using TTD&#039;s default layout.&lt;br /&gt;
Note that it may be easier to draw different sprite sets using a [[VariationalAction2|VarAction2]] based on [[VarAction2Stations#Platform info 40 41 46 47 49|station variable 40]], rather than redefining the layout. &amp;amp;nbsp;In addition, [[Callbacks#Custom station layout 24|callback 24]] will be used to further customize the layout as defined by this property (or by TTD if no prop 0E layout is available). This may also be easier than defining a prop 0E layout for every combination of length and number of platforms.&lt;br /&gt;
&lt;br /&gt;
=== Copy custom layout (0F) ===&lt;br /&gt;
&lt;br /&gt;
Similar to property 0A, this copies the custom layout from the station-ID given by the argument.&lt;br /&gt;
&lt;br /&gt;
=== Little/lots threshold (10) ===&lt;br /&gt;
Amount of cargo for switching from &amp;quot;little&amp;quot; to &amp;quot;lots&amp;quot; of cargo. &amp;amp;nbsp;TTDPatch separates the full range of cargo amounts (0 to 4095) into two separate subranges, &amp;quot;little&amp;quot; and &amp;quot;lots&amp;quot; of cargo. &amp;amp;nbsp;This allows better control of cargo amount based graphics (if needed). &amp;amp;nbsp;Property 10 specifies at what amount of cargo the patch is to switch from one to the other subrange. &amp;amp;nbsp;See [[Action2Stations|Action 2 for stations]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Pylon placement (11) and wire placement (14) ===&lt;br /&gt;
Prop. 11 sets which tile types should have pylons when used with electrified tracks. By default, tiles 0-3 (default stations without roof) have pylons, and tiles 4-7 (default stations with roof) don&#039;t. This is a bit mask of tile types, with a bit set meaning that a pylon should be drawn. The tile types here do not consider [[Callbacks#Station sprite layout 14|callback 14]], but rather the type as it was built, i.e. from prop. 0E.&lt;br /&gt;
&lt;br /&gt;
Prop. 14 works in a similar way, except that it sets the tile types on which there should be &#039;&#039;no&#039;&#039; wires displayed. With the default value of &amp;quot;00&amp;quot;, wires are displayed everywhere, and for each bit set, the wire is omitted on that tile type.&lt;br /&gt;
&lt;br /&gt;
This property should only be used when the wires cause problems with the sprite sorter, because even when the wire is obscured by a station hall or similar, it should still show up in transparent mode so that each tile can easily be verified as being electrified.&lt;br /&gt;
&lt;br /&gt;
=== Cargo types for random triggers (12) ===&lt;br /&gt;
&lt;br /&gt;
This sets which cargo types should trigger re-randomizing. The cargo types are given as a bitmask of the bits from column 3 (type B) in CargoTypes. &amp;amp;nbsp;If nothing is set (the default), the no random triggers will happen, to conserve CPU time.&lt;br /&gt;
&lt;br /&gt;
With GRF version 7 and above, the interpretation of bits changes. Instead of climate-dependent cargo slot numbers (type B), you have to set the bits of climate-independent cargo ID (type A).&lt;br /&gt;
&lt;br /&gt;
=== General Flags (13) ===&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Version!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||{{ottdp|0.7|2.5}}||use different sprite set for ground sprites ([[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|var. 10]] is 1 for ground sprites, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|0.6|2.5}}||when calculating the cargo amount to display, divide the amount by the station size (to simulate cargo distributed over the area of the station)&lt;br /&gt;
|-&lt;br /&gt;
|2||4||{{ottdp|0.7|2.5}}||[[Callbacks#Next animation frame (1A/26/141/153/158)|callback 141]] needs random bits in var. 10&lt;br /&gt;
|-&lt;br /&gt;
|3||8||{{ottdp|1.0|2.6}}||Use custom foundations on sloped tiles (the lowest byte of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|var. 10]] is 2 for foundation sprites)&lt;br /&gt;
|-&lt;br /&gt;
|4||10||{{ottdp|1.0|2.6}}||When bit 3 is set, use extended foundation block instead of the simple one&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bit 3 works somewhat similarly to bit 0: your sprite selection will be called again, with 2 in the lowest byte of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 10]]. If the chain ends on a callback result, the program will assume the foundation selection has failed and will use the default foundaton sprites. The low word of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 18]] will contain the tile type of the current tile; if you have [[Callbacks#Station sprite layout (14)|callback 14]] enabled, this will be the its return value - otherwise, the default TTD types (platform with building, platform with left roof etc.) are used. In either case, one is added for the NW-SE orientation, in case your station needs different foundations depending on its orientation. Bits 16 and 17 are set if the NW and and NE foundations are to merged with the corresponding neighbour tile, so you shouldn&#039;t draw the corresponding edge in the foundation sprite. Other bits of variable 10 and variable 18 are reserved for future use.&lt;br /&gt;
&lt;br /&gt;
Your sprite selection code should select a foundation sprite block. The contents of this block depends on whether bit 4 is set or not.&lt;br /&gt;
* Bit 4 clear (simple foundations):&lt;br /&gt;
[[File:simple_foundations.png]]&lt;br /&gt;
&lt;br /&gt;
The programme will combine the needed foundation from these 8 sprites depending on the current slope. You don&#039;t need to care about the merge data in bits 16..17 of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 18]]; it will be taken care of that automatically by adding the 7th and 8th sprite only when necessary.&lt;br /&gt;
* Bit 4 set (extended foundations):&lt;br /&gt;
[[File:extended_foundations.png]]&lt;br /&gt;
&lt;br /&gt;
You need to have one sprite for every slope that&#039;s possible below a rail station. The correct one will be automatically selected depending on the current slope. It can&#039;t handle the merging itself, however, so you need four foundation blocks: one with no edges removed, one with the NW edge removed, one with the NE edge removed and one with both north edges removed. Your sprite selection code is responsible for selecting the correct of those blocks according to the merge info in [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 18]].&lt;br /&gt;
&lt;br /&gt;
In both cases, you can put an additional value into register 100h, which will serve as an offset into the selected block. If you don&#039;t modify register 100h during the chain, it will default to 0. It is important that the dimensions of these sprites remain the same - thus bit 6 in the real sprites must be set to prevent GRFCodec from trimming the empty blue areas. The offset of these foundations must be -31 to the X direction and -9 to the Y direction.&lt;br /&gt;
&lt;br /&gt;
=== Can train enter tile (15) ===&lt;br /&gt;
&lt;br /&gt;
Like props. 11 and 14, this value contains eight bits relating to the eight possible tile types. If a bit is set, trains are prevented from routing through or entering any tile of this type.&lt;br /&gt;
&lt;br /&gt;
=== Animation information (16) ===&lt;br /&gt;
&lt;br /&gt;
The low byte specifies the number of animation frames minus one, so 00 means 1 frame, 01 means 2 frames etc. The maximum number of frames is 256, although you can have some problems if your animation exceeds FD (253) frames. The high byte must be 0 for non-looping animations and 01 for looping animations. Every other value is reserved for future use. In addition, if the whole word contains FFFF, animation is turned off for this station (this is the default value).&lt;br /&gt;
Since you can&#039;t have properties for individual station tiles, this property applies for every tile of the station. If you don&#039;t want to animate some tiles, you should check the current position during [[Callbacks#Animation control (1B/25/140/152/159)|callback 140]] and return FD if the current tile doesn&#039;t need to be animated. If you also need animations of different length per tile, you&#039;ll have to use [[Callbacks#Next animation frame (1A/26/141/153/158)|callback 141]] for that.&lt;br /&gt;
&lt;br /&gt;
=== Animation speed (17) ===&lt;br /&gt;
The meaning is the same as for [[Action0Houses#Animation Speed 1B|house property 1B]], but the lower limit is 0 instead of 2, so the fastest possible animation changes frames every game tick (27ms). The default value is 2.&lt;br /&gt;
&lt;br /&gt;
=== Animation triggers (18) ===&lt;br /&gt;
This is a bit mask of events that should trigger [[Callbacks#Animation control (1B/25/140/152/159)|callback 140]], allowing to change the animation state&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Version!!Meaning!!Happens on!!Var 18&lt;br /&gt;
|-&lt;br /&gt;
|0||1||{{ottdp|0.7|2.5}}||Station part is built||the newly built tiles||&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|0.7|2.5}}||New cargo arrives to station||whole station||&amp;lt;ref name=&amp;quot;cargotype&amp;quot;&amp;gt;Bits 8..15 of var 18 contain the triggering cargo type. If your GRF has a cargo translation table, the cargo type will be an index in that table, or FFh if the cargo isn&#039;t in the table. If you don&#039;t have a cargo translation table, the cargo type will simply be the climate-dependent cargo type number.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2||4||{{ottdp|0.7|2.5}}||A cargo type gets removed from station||whole station||&amp;lt;ref name=&amp;quot;cargotype&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3||8||{{ottdp|0.7|2.5}}||Train enters station (starts loading/unloading)||platform where the train is||&lt;br /&gt;
|-&lt;br /&gt;
|4||10||{{ottdp|0.7|2.5}}||Train leaves station (done loading/unloading)||platform where the train is||&lt;br /&gt;
|-&lt;br /&gt;
|5||20||{{ottdp|1.2|2.5|ottdrev=r22746}}||Train loads/unloads cargo||platform where the train is||&lt;br /&gt;
|-&lt;br /&gt;
|6||40||{{ottdp|0.7|2.5}}||Every 250 ticks||whole station||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The remaining bits are reserved for future triggers, they must be zero for now.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;happens on&amp;quot; column tells which tiles will [[Callbacks#Animation control (1B/25/140/152/159) |callback 140]] be called on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Road routing (19 - reserved for future use) ===&lt;br /&gt;
&lt;br /&gt;
Will allow to have routing informations for road vehicles on rail stations,&lt;br /&gt;
&lt;br /&gt;
generally you need to deny rail vehicle traveling via prop 15&lt;br /&gt;
&lt;br /&gt;
This property is not yet implemented {{ottd|no}}{{ttdp|no}}.&lt;br /&gt;
&lt;br /&gt;
=== Advanced sprite layout with register modifiers (1A) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.2|no|ottdrev=r22518}}&lt;br /&gt;
Format:&lt;br /&gt;
 1A &amp;lt;num-layouts&amp;gt; &amp;lt;0x40 + num-sprites&amp;gt;&lt;br /&gt;
                  &amp;lt;groundsprite&amp;gt; &amp;lt;flags&amp;gt; [&amp;lt;register/value&amp;gt;]...&lt;br /&gt;
                  [ &amp;lt;buildingsprite&amp;gt; &amp;lt;flags&amp;gt;&lt;br /&gt;
                      ( &amp;lt;xoffset&amp;gt; &amp;lt;yoffset&amp;gt; &amp;lt;zoffset&amp;gt; &amp;lt;xextent&amp;gt; &amp;lt;yextent&amp;gt; &amp;lt;zextent&amp;gt; &lt;br /&gt;
                      | &amp;lt;xpixeloffset&amp;gt; &amp;lt;ypixeloffset&amp;gt; 80)&lt;br /&gt;
                    [&amp;lt;register/value&amp;gt;]...&lt;br /&gt;
                  ]...&lt;br /&gt;
&lt;br /&gt;
For further details see [http://wiki.openttd.org/Frosch/Advanced_Sprite_Layout#Stations here] for now.&lt;br /&gt;
&lt;br /&gt;
=== Minimum bridge height (1B) ===&lt;br /&gt;
&lt;br /&gt;
This property allows building bridges over stations.&lt;br /&gt;
&lt;br /&gt;
The bridge height property defines minimum clearances required for a bridge for each of the four [[Action0/Stations#Define_custom_layout_.280E.29|tile types]] of this station (or zero to not allow any bridge). Values are given in &amp;quot;height level&amp;quot; units (1 level == 8px).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; |-&lt;br /&gt;
!Height (1)!!Appearance&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x1 y1 ||plain platform&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x2 y2 ||platform with building&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x3 y3 ||platform with roof, left side&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x4 y4 ||platform with roof, right side&lt;br /&gt;
|}&lt;br /&gt;
(1) where the values are one byte pairs (x-direction, y-direction) expressed in hexadecimal notation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
1B &amp;lt;1st pair&amp;gt; &amp;lt;2nd pair&amp;gt; &amp;lt;3rd pair&amp;gt; &amp;lt;4th pair&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
1B x1 y1 x2 y2 x3 y3 x4 y4&amp;lt;br /&amp;gt;&lt;br /&gt;
1B 01 01 02 02 03 03 03 03 // 8px 16px 24px 24px&lt;br /&gt;
&lt;br /&gt;
This property is currently only available for JGR&#039;s Patch Pack (v0.26.0 and later) and the developmental &amp;quot;New Map Features&amp;quot; (NMF) fork of OpenTTD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Using TTD&#039;s sprite layouts for certain tiles ===&lt;br /&gt;
&lt;br /&gt;
To use TTD&#039;s layout, you use &amp;lt;code&amp;gt;00 00 00 00&amp;lt;/code&amp;gt; for the ground sprite number and leave off everything else.&lt;br /&gt;
&lt;br /&gt;
So instead of for example&lt;br /&gt;
&lt;br /&gt;
 F4 03 00 00&lt;br /&gt;
    00 00 00    10 05 02    2E 84 00 00&lt;br /&gt;
    00 0B 00    10 05 02    30 84 00 00&lt;br /&gt;
    80&lt;br /&gt;
&lt;br /&gt;
you just put&lt;br /&gt;
&lt;br /&gt;
 00 00 00 00&lt;br /&gt;
&lt;br /&gt;
=== Using transparent sprites ===&lt;br /&gt;
&lt;br /&gt;
You can use transparent sprites to make for example the roof translucent like in TTD&#039;s stations. The roof of TTD&#039;s stations is made like this:&lt;br /&gt;
&lt;br /&gt;
 00 00 10    10 10 0A    37 84 00 00&lt;br /&gt;
 00 00 80    00 00 00    3B 44 22 03&lt;br /&gt;
&lt;br /&gt;
The first sprite here is the non-transparent frame of the roof, drawn in company colours (it has bit 15 set). The second part is a special &amp;quot;linked&amp;quot; sprite without its own bounding box, it shares that of the previous sprite. That&#039;s done by setting the z offset to 80.&lt;br /&gt;
&lt;br /&gt;
To make that second sprite transparent, bit 14 is set in the sprite number, and the upper word is set to 322 (*), so 0322443B means to take sprite 43B and draw it in transparent mode. The colours of that sprite are ignored entirely, every pixel in colour 0 is fully transparent, and all other pixels are semi-transparent (essentially just causing what they are drawn over to become darker).&lt;br /&gt;
&lt;br /&gt;
(*) This is the [[RecolorSprites#Default_recolour_sprites | recolour sprite]] for the glass effect.&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Bridges&amp;diff=3794</id>
		<title>Action0/Bridges</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Bridges&amp;diff=3794"/>
		<updated>2018-08-09T01:19:09Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Properties */  Action14 expects 4 bytes (W), not 2 (D)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Defining properties of bridges. By default the following bridges are defined:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;ID (dec)&#039;&#039;&#039;!!&#039;&#039;&#039;ID (hex)&#039;&#039;&#039;!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0||00||Wooden Bridge&lt;br /&gt;
|-&lt;br /&gt;
|1||01||Concrete Bridge&lt;br /&gt;
|-&lt;br /&gt;
|2||02||Girder, Steel Bridge&lt;br /&gt;
|-&lt;br /&gt;
|3||03||Suspension, Concrete Bridge&lt;br /&gt;
|-&lt;br /&gt;
|4||04||Suspension, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|5||05||Suspension, Steel (Golden) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|6||06||Cantilever, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|7||07||Cantilever, Steel (Brown) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|8||08||Cantilever, Steel (Red) Bridg&lt;br /&gt;
|-&lt;br /&gt;
|9||09||Girder, Steel Bridge&lt;br /&gt;
|-&lt;br /&gt;
|10||0A||Tubular, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|11||0B||{{ottdp|0.6|no}} Tubular, Steel (Golden) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|12||0C||{{ottdp|0.6|no}} Tubular, Silicon Bridge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|00||B||{{ottdp|no|2.6|ttdprev=r1994}}||Failback Type, a default TTD Bridge ID&lt;br /&gt;
|-&lt;br /&gt;
|08&amp;lt;ref&amp;gt;The meaning of prop. 08 has changed in TTDPatch 2.0.1 alpha 34, it used to be what is now prop. 0D.&amp;lt;/ref&amp;gt;||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Year of availability, counted from 1920 (set to 1920 for first bridge if newstartyear&amp;amp;lt;1930)&lt;br /&gt;
|-&lt;br /&gt;
|09||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Minimum length, not counting ramps&lt;br /&gt;
|-&lt;br /&gt;
|0A||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Maximum length, not counting ramps&lt;br /&gt;
|-&lt;br /&gt;
|0B||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Cost factor&lt;br /&gt;
|-&lt;br /&gt;
|0C||W||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Max. speed&lt;br /&gt;
|-&lt;br /&gt;
|0D||V||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Sprite layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0E||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Various flags, bitcoded&lt;br /&gt;
|-&lt;br /&gt;
|0F||D||{{ottdp|0.6|2.5|ttdprev=r1702|ottdrev=r7191}}||Long format year of availability, counted from year 0&lt;br /&gt;
|-&lt;br /&gt;
|10||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Purchase text&lt;br /&gt;
|-&lt;br /&gt;
|11||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Description of a rail bridge&lt;br /&gt;
|-&lt;br /&gt;
|12||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Description of a road bridge&lt;br /&gt;
|-&lt;br /&gt;
|13||W||{{ottdp|0.7|2.6|ttdprev=r1994|ottdrev=r14172}}||Cost factor word access&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unofficial additions and changes. Don&#039;t rely on them to ever work this way or at all in OpenTTD or TTDPatch: &lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|14||D||New Map Features||Menu icons &amp;lt;ref name=&amp;quot;nmf&amp;quot;&amp;gt;New Map Features (NMF) adds three bridge IDs (0x0D ... 0x0F). There are no graphics. Currently Graphic Resource Management (GRM) must be used to assign real sprites.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Descriptions==&lt;br /&gt;
&lt;br /&gt;
===Sprite layout (0D)===&lt;br /&gt;
&lt;br /&gt;
Property 0D sets the sprite layout for bridges.     Each part of a bridge has eight sprites for each of the four types (rail, road, monorail, maglev), making 32 sprites in total.     Each bridge has 7 parts, though not all of them have different graphics.&lt;br /&gt;
&lt;br /&gt;
The data for property 0D is variable sized, with the format being&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Field!!Description&lt;br /&gt;
|-&lt;br /&gt;
|B||tableid||First table to define sprites for&lt;br /&gt;
|-&lt;br /&gt;
|B||numtables||Number of tables to define sprites for&lt;br /&gt;
|-&lt;br /&gt;
|V||spritedata||spritedata, numtables*32 DWORDs with sprite numbers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The tableid is the number of the first table to change.     There are seven tables for each bridge, with the first six (0-5) being various middle parts and the last one (6) being the end pieces.&lt;br /&gt;
&lt;br /&gt;
In each of the six middle part tables, there are four entries each for the following:&lt;br /&gt;
* Rail X, Rail Y, Road X, Road Y, Monorail X, Monorail Y, Maglev X, Maglev Y&lt;br /&gt;
&lt;br /&gt;
Where X is a bridge in /-direction and Y a bridge in \-direction.&lt;br /&gt;
&lt;br /&gt;
The four entries are&lt;br /&gt;
* Back &amp;amp; Floor, Front, Pillars, 0&lt;br /&gt;
&lt;br /&gt;
Front and Pillars can be 0, meaning no sprite to draw.     The fourth entry is always ignored.&lt;br /&gt;
&lt;br /&gt;
In the end part table, there are again four entries each, but now for Rail flat, Rail ramp, Road flat, Road ramp, Monorail flat, Monorail ramp and Maglev flat, Maglev ramp.&lt;br /&gt;
&lt;br /&gt;
The four entries in this case are&lt;br /&gt;
* northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
&lt;br /&gt;
The sprite numbers can be any of TTD&#039;s sprite numbers.&lt;br /&gt;
&lt;br /&gt;
To summarize, there are 7 tables for each of the 11 bridges.     Each table contains 4*8 entries, making it 128 (80h) bytes large.     The first six tables, number 0 to 5, are middle pieces, the last table, number 6, is the end pieces.&lt;br /&gt;
&lt;br /&gt;
====Colour Translations====&lt;br /&gt;
&lt;br /&gt;
In order to recolour a bridge, you can add one of the values from the table below to the sprite number of the sprite you wish to recolour. The colour translations from the table will use the default colour translation tables from the base sets. These translation tables will translate the &#039;brownish red&#039; as used in the default bridges to the colour you specify.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Added value&#039;&#039;&#039;!!&#039;&#039;&#039;Little Endian&#039;&#039;&#039;!!&#039;&#039;&#039;Colour&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|031B8000h||00 80 1B 03||Blue&lt;br /&gt;
|-&lt;br /&gt;
|031C8000h||00 80 1C 03||Brown&lt;br /&gt;
|-&lt;br /&gt;
|031D8000h||00 80 1D 03||Pure white&lt;br /&gt;
|-&lt;br /&gt;
|031E8000h||00 80 1E 03||Red&lt;br /&gt;
|-&lt;br /&gt;
|031F8000h||00 80 1F 03||Green&lt;br /&gt;
|-&lt;br /&gt;
|03208000h||00 80 20 03||Blueish white (concrete)&lt;br /&gt;
|-&lt;br /&gt;
|03218000h||00 80 21 03||Yellow (golden steel)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Take a look at the [[RecolorSprites#Default_recolour_sprites | default recolour tables]] for other colour translations. However, other recolor maps than the seven listed above will translate other colours than those uses by original bridges.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example: Translate sprite 4366 to yellow&#039;&#039;&lt;br /&gt;
:4366 translates to 0E 11 in little endian value and as such to 0E 11 00 00 in a dword. In order to convert to yellow you&#039;ll have to add 00 80 21 03 to the dword value. This yields 0E 91 21 03. Use the latter in your bridge table to colour one of the monorail bridgeheads grey.&lt;br /&gt;
&lt;br /&gt;
====Bridge Layouts====&lt;br /&gt;
&lt;br /&gt;
There are five possible bridge layouts in TTD. The numbers in the table below reflect the bridge table numbers in the NFO code.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Layout!!Description&lt;br /&gt;
|-&lt;br /&gt;
|__ ||Bridge without middle part&lt;br /&gt;
|-&lt;br /&gt;
|_0_||Bridge of length 3&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)1_||Bridge of even length&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)4(23)1_||Bridge of (uneven) lengths 5, 9, 13, 17 etc.&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)253(23)1_||Bridge of (uneven) lengths 7, 11, 15, 19 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
_ is used as a symbol to indicate bridgeheads (as defined in table 6).&lt;br /&gt;
&lt;br /&gt;
Part 0 is always at the farthest end from the viewer.&lt;br /&gt;
&lt;br /&gt;
Parts (23) are repeated &#039;&#039;n&#039;&#039; times as necessary, where &#039;&#039;n&#039;&#039; is any number equal or greater than 0.&lt;br /&gt;
&lt;br /&gt;
===Flags (0E)===&lt;br /&gt;
&lt;br /&gt;
The following flags can be set here:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Bit&#039;&#039;&#039;!!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0||1||Do not draw the far pillars for higher bridges&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Long format year of availability (0F)===&lt;br /&gt;
&lt;br /&gt;
Set the year of availability of the bridge in years since 0. The date range is from 0 to 5000000. This property must be set after property 08 to take effect.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|no||}} In TTDPatch, bridge introduction dates outside the range 1920..2175 will be limited to this range.&lt;br /&gt;
&lt;br /&gt;
===Purchase text (10)===&lt;br /&gt;
&lt;br /&gt;
Set the text appearing in the purchase window, describing what this bridge is made of, or what kind of bridge it is.&lt;br /&gt;
&lt;br /&gt;
This should be the ID of an original bridge name, or a TextID in the DCxx range.&lt;br /&gt;
&lt;br /&gt;
===Description of a rail(11) or road(12) bridge===&lt;br /&gt;
&lt;br /&gt;
Set the text used as a description by the query tool. When the bridge is used for carrying a rail, it will use property 11, and will use property 12 when it will be for road.&lt;br /&gt;
&lt;br /&gt;
This should be the ID of an original bridge name, or a TextID in the DCxx range.&lt;br /&gt;
&lt;br /&gt;
===Menu icons (14)===&lt;br /&gt;
&lt;br /&gt;
Previously menu icons could be replaced by an ActionA, with the exception of the six recolor bridges which always retained a recolored icon of one of the three parent bridges.&lt;br /&gt;
Property 14 allows all icons to be accessed including the three new bridge IDs (0D, 0E, 0F) in cirdan&#039;s New Map Features.&lt;br /&gt;
&lt;br /&gt;
Note: This property is currently only available for the developmental &amp;quot;New Map Features&amp;quot; (NMF) fork of OpenTTD.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
Below is an example code which rebuilds the bronze steel suspension bridge (ID 04). The code fragment by itself has no use (no visual difference in game), but might be useful in order to understand the bridge code. Sprite numbers refer to the numbers in the base grf. The code might also be useful to re-enstate the default bridge if you only want to replace only one certain tracktype.&lt;br /&gt;
&lt;br /&gt;
The complete recode of all default bridges including colour translations is available at TT-Forums: http://www.tt-forums.net/viewtopic.php?p=715362#p715362&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//SUSPENSION, STEEL (BRONZE) bridge (04)&lt;br /&gt;
&lt;br /&gt;
-1 * 0 00 06 01 01 04 0D 00 07 //action 00 bridges, 01 property, 01 ID, ID, prop 0D, tableID 00, 07 tables&lt;br /&gt;
&lt;br /&gt;
//table 00&lt;br /&gt;
&lt;br /&gt;
A9 09 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A5 09 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9D 09 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
95 09 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F2 10 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
EE 10 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1A 11 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
16 11 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 01&lt;br /&gt;
AA 09 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A6 09 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9E 09 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
96 09 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F3 10 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
EF 10 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1B 11 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
17 11 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 02&lt;br /&gt;
AC 09 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A8 09 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A2 09 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9A 09 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F5 10 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F1 10 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1D 11 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
19 11 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 03&lt;br /&gt;
AB 09 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A7 09 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A1 09 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
99 09 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F4 10 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F0 10 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1C 11 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
18 11 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 04&lt;br /&gt;
B6 09 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B5 09 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B8 09 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B7 09 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F7 10 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F6 10 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1F 11 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1E 11 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 05&lt;br /&gt;
BD 09 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
BE 09 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
BF 09 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
C0 09 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F8 10 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F9 10 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
20 11 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
21 11 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 06&lt;br /&gt;
86 09 00 00     88 09 00 00     85 09 00 00     87 09 00 00 //rail flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
8A 09 00 00     8C 09 00 00     89 09 00 00     8B 09 00 00 //rail ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
8E 09 00 00     90 09 00 00     8D 09 00 00     8F 09 00 00 //road flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
92 09 00 00     94 09 00 00     91 09 00 00     93 09 00 00 //road ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
E7 10 00 00     E9 10 00 00     E6 10 00 00     E8 10 00 00 //mono flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
EB 10 00 00     ED 10 00 00     EA 10 00 00     EC 10 00 00 //mono ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
0F 11 00 00     11 11 00 00     0E 11 00 00     10 11 00 00 //mlev flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
13 11 00 00     15 11 00 00     12 11 00 00     14 11 00 00 //mlev ramp: northern end X, northern end Y, southern end X, southern end Y&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Bridges&amp;diff=3793</id>
		<title>Action0/Bridges</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Bridges&amp;diff=3793"/>
		<updated>2018-08-08T11:44:56Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: Amended to include reference to bridge IDs 0D, 0E and 0F&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Defining properties of bridges. By default the following bridges are defined:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;ID (dec)&#039;&#039;&#039;!!&#039;&#039;&#039;ID (hex)&#039;&#039;&#039;!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0||00||Wooden Bridge&lt;br /&gt;
|-&lt;br /&gt;
|1||01||Concrete Bridge&lt;br /&gt;
|-&lt;br /&gt;
|2||02||Girder, Steel Bridge&lt;br /&gt;
|-&lt;br /&gt;
|3||03||Suspension, Concrete Bridge&lt;br /&gt;
|-&lt;br /&gt;
|4||04||Suspension, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|5||05||Suspension, Steel (Golden) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|6||06||Cantilever, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|7||07||Cantilever, Steel (Brown) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|8||08||Cantilever, Steel (Red) Bridg&lt;br /&gt;
|-&lt;br /&gt;
|9||09||Girder, Steel Bridge&lt;br /&gt;
|-&lt;br /&gt;
|10||0A||Tubular, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|11||0B||{{ottdp|0.6|no}} Tubular, Steel (Golden) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|12||0C||{{ottdp|0.6|no}} Tubular, Silicon Bridge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|00||B||{{ottdp|no|2.6|ttdprev=r1994}}||Failback Type, a default TTD Bridge ID&lt;br /&gt;
|-&lt;br /&gt;
|08&amp;lt;ref&amp;gt;The meaning of prop. 08 has changed in TTDPatch 2.0.1 alpha 34, it used to be what is now prop. 0D.&amp;lt;/ref&amp;gt;||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Year of availability, counted from 1920 (set to 1920 for first bridge if newstartyear&amp;amp;lt;1930)&lt;br /&gt;
|-&lt;br /&gt;
|09||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Minimum length, not counting ramps&lt;br /&gt;
|-&lt;br /&gt;
|0A||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Maximum length, not counting ramps&lt;br /&gt;
|-&lt;br /&gt;
|0B||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Cost factor&lt;br /&gt;
|-&lt;br /&gt;
|0C||W||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Max. speed&lt;br /&gt;
|-&lt;br /&gt;
|0D||V||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Sprite layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0E||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Various flags, bitcoded&lt;br /&gt;
|-&lt;br /&gt;
|0F||D||{{ottdp|0.6|2.5|ttdprev=r1702|ottdrev=r7191}}||Long format year of availability, counted from year 0&lt;br /&gt;
|-&lt;br /&gt;
|10||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Purchase text&lt;br /&gt;
|-&lt;br /&gt;
|11||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Description of a rail bridge&lt;br /&gt;
|-&lt;br /&gt;
|12||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Description of a road bridge&lt;br /&gt;
|-&lt;br /&gt;
|13||W||{{ottdp|0.7|2.6|ttdprev=r1994|ottdrev=r14172}}||Cost factor word access&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unofficial additions and changes. Don&#039;t rely on them to ever work this way or at all in OpenTTD or TTDPatch: &lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|14||W||New Map Features||Menu icons &amp;lt;ref name=&amp;quot;nmf&amp;quot;&amp;gt;New Map Features (NMF) adds three bridge IDs (0x0D ... 0x0F). There are no graphics. Currently Graphic Resource Management (GRM) must be used to assign real sprites.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Descriptions==&lt;br /&gt;
&lt;br /&gt;
===Sprite layout (0D)===&lt;br /&gt;
&lt;br /&gt;
Property 0D sets the sprite layout for bridges.     Each part of a bridge has eight sprites for each of the four types (rail, road, monorail, maglev), making 32 sprites in total.     Each bridge has 7 parts, though not all of them have different graphics.&lt;br /&gt;
&lt;br /&gt;
The data for property 0D is variable sized, with the format being&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Field!!Description&lt;br /&gt;
|-&lt;br /&gt;
|B||tableid||First table to define sprites for&lt;br /&gt;
|-&lt;br /&gt;
|B||numtables||Number of tables to define sprites for&lt;br /&gt;
|-&lt;br /&gt;
|V||spritedata||spritedata, numtables*32 DWORDs with sprite numbers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The tableid is the number of the first table to change.     There are seven tables for each bridge, with the first six (0-5) being various middle parts and the last one (6) being the end pieces.&lt;br /&gt;
&lt;br /&gt;
In each of the six middle part tables, there are four entries each for the following:&lt;br /&gt;
* Rail X, Rail Y, Road X, Road Y, Monorail X, Monorail Y, Maglev X, Maglev Y&lt;br /&gt;
&lt;br /&gt;
Where X is a bridge in /-direction and Y a bridge in \-direction.&lt;br /&gt;
&lt;br /&gt;
The four entries are&lt;br /&gt;
* Back &amp;amp; Floor, Front, Pillars, 0&lt;br /&gt;
&lt;br /&gt;
Front and Pillars can be 0, meaning no sprite to draw.     The fourth entry is always ignored.&lt;br /&gt;
&lt;br /&gt;
In the end part table, there are again four entries each, but now for Rail flat, Rail ramp, Road flat, Road ramp, Monorail flat, Monorail ramp and Maglev flat, Maglev ramp.&lt;br /&gt;
&lt;br /&gt;
The four entries in this case are&lt;br /&gt;
* northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
&lt;br /&gt;
The sprite numbers can be any of TTD&#039;s sprite numbers.&lt;br /&gt;
&lt;br /&gt;
To summarize, there are 7 tables for each of the 11 bridges.     Each table contains 4*8 entries, making it 128 (80h) bytes large.     The first six tables, number 0 to 5, are middle pieces, the last table, number 6, is the end pieces.&lt;br /&gt;
&lt;br /&gt;
====Colour Translations====&lt;br /&gt;
&lt;br /&gt;
In order to recolour a bridge, you can add one of the values from the table below to the sprite number of the sprite you wish to recolour. The colour translations from the table will use the default colour translation tables from the base sets. These translation tables will translate the &#039;brownish red&#039; as used in the default bridges to the colour you specify.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Added value&#039;&#039;&#039;!!&#039;&#039;&#039;Little Endian&#039;&#039;&#039;!!&#039;&#039;&#039;Colour&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|031B8000h||00 80 1B 03||Blue&lt;br /&gt;
|-&lt;br /&gt;
|031C8000h||00 80 1C 03||Brown&lt;br /&gt;
|-&lt;br /&gt;
|031D8000h||00 80 1D 03||Pure white&lt;br /&gt;
|-&lt;br /&gt;
|031E8000h||00 80 1E 03||Red&lt;br /&gt;
|-&lt;br /&gt;
|031F8000h||00 80 1F 03||Green&lt;br /&gt;
|-&lt;br /&gt;
|03208000h||00 80 20 03||Blueish white (concrete)&lt;br /&gt;
|-&lt;br /&gt;
|03218000h||00 80 21 03||Yellow (golden steel)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Take a look at the [[RecolorSprites#Default_recolour_sprites | default recolour tables]] for other colour translations. However, other recolor maps than the seven listed above will translate other colours than those uses by original bridges.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example: Translate sprite 4366 to yellow&#039;&#039;&lt;br /&gt;
:4366 translates to 0E 11 in little endian value and as such to 0E 11 00 00 in a dword. In order to convert to yellow you&#039;ll have to add 00 80 21 03 to the dword value. This yields 0E 91 21 03. Use the latter in your bridge table to colour one of the monorail bridgeheads grey.&lt;br /&gt;
&lt;br /&gt;
====Bridge Layouts====&lt;br /&gt;
&lt;br /&gt;
There are five possible bridge layouts in TTD. The numbers in the table below reflect the bridge table numbers in the NFO code.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Layout!!Description&lt;br /&gt;
|-&lt;br /&gt;
|__ ||Bridge without middle part&lt;br /&gt;
|-&lt;br /&gt;
|_0_||Bridge of length 3&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)1_||Bridge of even length&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)4(23)1_||Bridge of (uneven) lengths 5, 9, 13, 17 etc.&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)253(23)1_||Bridge of (uneven) lengths 7, 11, 15, 19 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
_ is used as a symbol to indicate bridgeheads (as defined in table 6).&lt;br /&gt;
&lt;br /&gt;
Part 0 is always at the farthest end from the viewer.&lt;br /&gt;
&lt;br /&gt;
Parts (23) are repeated &#039;&#039;n&#039;&#039; times as necessary, where &#039;&#039;n&#039;&#039; is any number equal or greater than 0.&lt;br /&gt;
&lt;br /&gt;
===Flags (0E)===&lt;br /&gt;
&lt;br /&gt;
The following flags can be set here:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Bit&#039;&#039;&#039;!!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0||1||Do not draw the far pillars for higher bridges&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Long format year of availability (0F)===&lt;br /&gt;
&lt;br /&gt;
Set the year of availability of the bridge in years since 0. The date range is from 0 to 5000000. This property must be set after property 08 to take effect.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|no||}} In TTDPatch, bridge introduction dates outside the range 1920..2175 will be limited to this range.&lt;br /&gt;
&lt;br /&gt;
===Purchase text (10)===&lt;br /&gt;
&lt;br /&gt;
Set the text appearing in the purchase window, describing what this bridge is made of, or what kind of bridge it is.&lt;br /&gt;
&lt;br /&gt;
This should be the ID of an original bridge name, or a TextID in the DCxx range.&lt;br /&gt;
&lt;br /&gt;
===Description of a rail(11) or road(12) bridge===&lt;br /&gt;
&lt;br /&gt;
Set the text used as a description by the query tool. When the bridge is used for carrying a rail, it will use property 11, and will use property 12 when it will be for road.&lt;br /&gt;
&lt;br /&gt;
This should be the ID of an original bridge name, or a TextID in the DCxx range.&lt;br /&gt;
&lt;br /&gt;
===Menu icons (14)===&lt;br /&gt;
&lt;br /&gt;
Previously menu icons could be replaced by an ActionA, with the exception of the six recolor bridges which always retained a recolored icon of one of the three parent bridges.&lt;br /&gt;
Property 14 allows all icons to be accessed including the three new bridge IDs (0D, 0E, 0F) in cirdan&#039;s New Map Features.&lt;br /&gt;
&lt;br /&gt;
Note: This property is currently only available for the developmental &amp;quot;New Map Features&amp;quot; (NMF) fork of OpenTTD.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
Below is an example code which rebuilds the bronze steel suspension bridge (ID 04). The code fragment by itself has no use (no visual difference in game), but might be useful in order to understand the bridge code. Sprite numbers refer to the numbers in the base grf. The code might also be useful to re-enstate the default bridge if you only want to replace only one certain tracktype.&lt;br /&gt;
&lt;br /&gt;
The complete recode of all default bridges including colour translations is available at TT-Forums: http://www.tt-forums.net/viewtopic.php?p=715362#p715362&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//SUSPENSION, STEEL (BRONZE) bridge (04)&lt;br /&gt;
&lt;br /&gt;
-1 * 0 00 06 01 01 04 0D 00 07 //action 00 bridges, 01 property, 01 ID, ID, prop 0D, tableID 00, 07 tables&lt;br /&gt;
&lt;br /&gt;
//table 00&lt;br /&gt;
&lt;br /&gt;
A9 09 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A5 09 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9D 09 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
95 09 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F2 10 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
EE 10 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1A 11 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
16 11 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 01&lt;br /&gt;
AA 09 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A6 09 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9E 09 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
96 09 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F3 10 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
EF 10 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1B 11 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
17 11 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 02&lt;br /&gt;
AC 09 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A8 09 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A2 09 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9A 09 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F5 10 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F1 10 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1D 11 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
19 11 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 03&lt;br /&gt;
AB 09 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A7 09 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A1 09 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
99 09 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F4 10 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F0 10 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1C 11 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
18 11 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 04&lt;br /&gt;
B6 09 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B5 09 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B8 09 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B7 09 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F7 10 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F6 10 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1F 11 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1E 11 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 05&lt;br /&gt;
BD 09 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
BE 09 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
BF 09 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
C0 09 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F8 10 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F9 10 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
20 11 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
21 11 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 06&lt;br /&gt;
86 09 00 00     88 09 00 00     85 09 00 00     87 09 00 00 //rail flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
8A 09 00 00     8C 09 00 00     89 09 00 00     8B 09 00 00 //rail ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
8E 09 00 00     90 09 00 00     8D 09 00 00     8F 09 00 00 //road flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
92 09 00 00     94 09 00 00     91 09 00 00     93 09 00 00 //road ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
E7 10 00 00     E9 10 00 00     E6 10 00 00     E8 10 00 00 //mono flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
EB 10 00 00     ED 10 00 00     EA 10 00 00     EC 10 00 00 //mono ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
0F 11 00 00     11 11 00 00     0E 11 00 00     10 11 00 00 //mlev flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
13 11 00 00     15 11 00 00     12 11 00 00     14 11 00 00 //mlev ramp: northern end X, northern end Y, southern end X, southern end Y&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Bridges&amp;diff=3790</id>
		<title>Action0/Bridges</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Bridges&amp;diff=3790"/>
		<updated>2018-08-08T01:12:56Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Defining properties of bridges. By default the following bridges are defined:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;ID (dec)&#039;&#039;&#039;!!&#039;&#039;&#039;ID (hex)&#039;&#039;&#039;!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0||00||Wooden Bridge&lt;br /&gt;
|-&lt;br /&gt;
|1||01||Concrete Bridge&lt;br /&gt;
|-&lt;br /&gt;
|2||02||Girder, Steel Bridge&lt;br /&gt;
|-&lt;br /&gt;
|3||03||Suspension, Concrete Bridge&lt;br /&gt;
|-&lt;br /&gt;
|4||04||Suspension, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|5||05||Suspension, Steel (Golden) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|6||06||Cantilever, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|7||07||Cantilever, Steel (Brown) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|8||08||Cantilever, Steel (Red) Bridg&lt;br /&gt;
|-&lt;br /&gt;
|9||09||Girder, Steel Bridge&lt;br /&gt;
|-&lt;br /&gt;
|10||0A||Tubular, Steel (Bronze) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|11||0B||{{ottdp|0.6|no}} Tubular, Steel (Golden) Bridge&lt;br /&gt;
|-&lt;br /&gt;
|12||0C||{{ottdp|0.6|no}} Tubular, Silicon Bridge&lt;br /&gt;
|-&lt;br /&gt;
|13||0D||{{ottdp|no|no}} New Map Features &amp;lt;ref name=&amp;quot;nmf&amp;quot;&amp;gt;New Map Features (NMF) adds three bridge IDs. There are no graphics. Currently Graphic Resource Management (GRM) must be used to assign real sprites.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|14||0E||{{ottdp|no|no}} New Map Features &amp;lt;ref name=&amp;quot;nmf&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|15||0F||{{ottdp|no|no}} New Map Features &amp;lt;ref name=&amp;quot;nmf&amp;quot;/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|00||B||{{ottdp|no|2.6|ttdprev=r1994}}||Failback Type, a default TTD Bridge ID&lt;br /&gt;
|-&lt;br /&gt;
|08&amp;lt;ref&amp;gt;The meaning of prop. 08 has changed in TTDPatch 2.0.1 alpha 34, it used to be what is now prop. 0D.&amp;lt;/ref&amp;gt;||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Year of availability, counted from 1920 (set to 1920 for first bridge if newstartyear&amp;amp;lt;1930)&lt;br /&gt;
|-&lt;br /&gt;
|09||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Minimum length, not counting ramps&lt;br /&gt;
|-&lt;br /&gt;
|0A||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Maximum length, not counting ramps&lt;br /&gt;
|-&lt;br /&gt;
|0B||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Cost factor&lt;br /&gt;
|-&lt;br /&gt;
|0C||W||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Max. speed&lt;br /&gt;
|-&lt;br /&gt;
|0D||V||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Sprite layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0E||B||{{ottdp|0.6|2.5|ttdprev=alpha 34}}||Various flags, bitcoded&lt;br /&gt;
|-&lt;br /&gt;
|0F||D||{{ottdp|0.6|2.5|ttdprev=r1702|ottdrev=r7191}}||Long format year of availability, counted from year 0&lt;br /&gt;
|-&lt;br /&gt;
|10||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Purchase text&lt;br /&gt;
|-&lt;br /&gt;
|11||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Description of a rail bridge&lt;br /&gt;
|-&lt;br /&gt;
|12||W||{{ottdp|0.6|2.5|ttdprev=r1824|ottdrev=r10269}}||Description of a road bridge&lt;br /&gt;
|-&lt;br /&gt;
|13||W||{{ottdp|0.7|2.6|ttdprev=r1994|ottdrev=r14172}}||Cost factor word access&lt;br /&gt;
|-&lt;br /&gt;
|14||W||{{ottdp|no|no|}}||Menu icons, see below&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Descriptions==&lt;br /&gt;
&lt;br /&gt;
===Sprite layout (0D)===&lt;br /&gt;
&lt;br /&gt;
Property 0D sets the sprite layout for bridges.     Each part of a bridge has eight sprites for each of the four types (rail, road, monorail, maglev), making 32 sprites in total.     Each bridge has 7 parts, though not all of them have different graphics.&lt;br /&gt;
&lt;br /&gt;
The data for property 0D is variable sized, with the format being&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Field!!Description&lt;br /&gt;
|-&lt;br /&gt;
|B||tableid||First table to define sprites for&lt;br /&gt;
|-&lt;br /&gt;
|B||numtables||Number of tables to define sprites for&lt;br /&gt;
|-&lt;br /&gt;
|V||spritedata||spritedata, numtables*32 DWORDs with sprite numbers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The tableid is the number of the first table to change.     There are seven tables for each bridge, with the first six (0-5) being various middle parts and the last one (6) being the end pieces.&lt;br /&gt;
&lt;br /&gt;
In each of the six middle part tables, there are four entries each for the following:&lt;br /&gt;
* Rail X, Rail Y, Road X, Road Y, Monorail X, Monorail Y, Maglev X, Maglev Y&lt;br /&gt;
&lt;br /&gt;
Where X is a bridge in /-direction and Y a bridge in \-direction.&lt;br /&gt;
&lt;br /&gt;
The four entries are&lt;br /&gt;
* Back &amp;amp; Floor, Front, Pillars, 0&lt;br /&gt;
&lt;br /&gt;
Front and Pillars can be 0, meaning no sprite to draw.     The fourth entry is always ignored.&lt;br /&gt;
&lt;br /&gt;
In the end part table, there are again four entries each, but now for Rail flat, Rail ramp, Road flat, Road ramp, Monorail flat, Monorail ramp and Maglev flat, Maglev ramp.&lt;br /&gt;
&lt;br /&gt;
The four entries in this case are&lt;br /&gt;
* northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
&lt;br /&gt;
The sprite numbers can be any of TTD&#039;s sprite numbers.&lt;br /&gt;
&lt;br /&gt;
To summarize, there are 7 tables for each of the 11 bridges.     Each table contains 4*8 entries, making it 128 (80h) bytes large.     The first six tables, number 0 to 5, are middle pieces, the last table, number 6, is the end pieces.&lt;br /&gt;
&lt;br /&gt;
====Colour Translations====&lt;br /&gt;
&lt;br /&gt;
In order to recolour a bridge, you can add one of the values from the table below to the sprite number of the sprite you wish to recolour. The colour translations from the table will use the default colour translation tables from the base sets. These translation tables will translate the &#039;brownish red&#039; as used in the default bridges to the colour you specify.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Added value&#039;&#039;&#039;!!&#039;&#039;&#039;Little Endian&#039;&#039;&#039;!!&#039;&#039;&#039;Colour&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|031B8000h||00 80 1B 03||Blue&lt;br /&gt;
|-&lt;br /&gt;
|031C8000h||00 80 1C 03||Brown&lt;br /&gt;
|-&lt;br /&gt;
|031D8000h||00 80 1D 03||Pure white&lt;br /&gt;
|-&lt;br /&gt;
|031E8000h||00 80 1E 03||Red&lt;br /&gt;
|-&lt;br /&gt;
|031F8000h||00 80 1F 03||Green&lt;br /&gt;
|-&lt;br /&gt;
|03208000h||00 80 20 03||Blueish white (concrete)&lt;br /&gt;
|-&lt;br /&gt;
|03218000h||00 80 21 03||Yellow (golden steel)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Take a look at the [[RecolorSprites#Default_recolour_sprites | default recolour tables]] for other colour translations. However, other recolor maps than the seven listed above will translate other colours than those uses by original bridges.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example: Translate sprite 4366 to yellow&#039;&#039;&lt;br /&gt;
:4366 translates to 0E 11 in little endian value and as such to 0E 11 00 00 in a dword. In order to convert to yellow you&#039;ll have to add 00 80 21 03 to the dword value. This yields 0E 91 21 03. Use the latter in your bridge table to colour one of the monorail bridgeheads grey.&lt;br /&gt;
&lt;br /&gt;
====Bridge Layouts====&lt;br /&gt;
&lt;br /&gt;
There are five possible bridge layouts in TTD. The numbers in the table below reflect the bridge table numbers in the NFO code.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Layout!!Description&lt;br /&gt;
|-&lt;br /&gt;
|__ ||Bridge without middle part&lt;br /&gt;
|-&lt;br /&gt;
|_0_||Bridge of length 3&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)1_||Bridge of even length&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)4(23)1_||Bridge of (uneven) lengths 5, 9, 13, 17 etc.&lt;br /&gt;
|-&lt;br /&gt;
|_0(23)253(23)1_||Bridge of (uneven) lengths 7, 11, 15, 19 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
_ is used as a symbol to indicate bridgeheads (as defined in table 6).&lt;br /&gt;
&lt;br /&gt;
Part 0 is always at the farthest end from the viewer.&lt;br /&gt;
&lt;br /&gt;
Parts (23) are repeated &#039;&#039;n&#039;&#039; times as necessary, where &#039;&#039;n&#039;&#039; is any number equal or greater than 0.&lt;br /&gt;
&lt;br /&gt;
===Flags (0E)===&lt;br /&gt;
&lt;br /&gt;
The following flags can be set here:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Bit&#039;&#039;&#039;!!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|0||1||Do not draw the far pillars for higher bridges&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Long format year of availability (0F)===&lt;br /&gt;
&lt;br /&gt;
Set the year of availability of the bridge in years since 0. The date range is from 0 to 5000000. This property must be set after property 08 to take effect.&lt;br /&gt;
&lt;br /&gt;
{{ottdp|no||}} In TTDPatch, bridge introduction dates outside the range 1920..2175 will be limited to this range.&lt;br /&gt;
&lt;br /&gt;
===Purchase text (10)===&lt;br /&gt;
&lt;br /&gt;
Set the text appearing in the purchase window, describing what this bridge is made of, or what kind of bridge it is.&lt;br /&gt;
&lt;br /&gt;
This should be the ID of an original bridge name, or a TextID in the DCxx range.&lt;br /&gt;
&lt;br /&gt;
===Description of a rail(11) or road(12) bridge===&lt;br /&gt;
&lt;br /&gt;
Set the text used as a description by the query tool. When the bridge is used for carrying a rail, it will use property 11, and will use property 12 when it will be for road.&lt;br /&gt;
&lt;br /&gt;
This should be the ID of an original bridge name, or a TextID in the DCxx range.&lt;br /&gt;
&lt;br /&gt;
===Menu icons (14)===&lt;br /&gt;
&lt;br /&gt;
Previously menu icons could be replaced by an ActionA, with the exception of the six recolor bridges which always retained a recolored icon of one of the three parent bridges.&lt;br /&gt;
Property 14 allows all icons to be accessed including the three new bridge IDs in cirdan&#039;s New Map Features.&lt;br /&gt;
&lt;br /&gt;
Note: Currently this property is only supported by New Map Features.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
Below is an example code which rebuilds the bronze steel suspension bridge (ID 04). The code fragment by itself has no use (no visual difference in game), but might be useful in order to understand the bridge code. Sprite numbers refer to the numbers in the base grf. The code might also be useful to re-enstate the default bridge if you only want to replace only one certain tracktype.&lt;br /&gt;
&lt;br /&gt;
The complete recode of all default bridges including colour translations is available at TT-Forums: http://www.tt-forums.net/viewtopic.php?p=715362#p715362&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//SUSPENSION, STEEL (BRONZE) bridge (04)&lt;br /&gt;
&lt;br /&gt;
-1 * 0 00 06 01 01 04 0D 00 07 //action 00 bridges, 01 property, 01 ID, ID, prop 0D, tableID 00, 07 tables&lt;br /&gt;
&lt;br /&gt;
//table 00&lt;br /&gt;
&lt;br /&gt;
A9 09 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A5 09 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9D 09 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
95 09 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F2 10 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
EE 10 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1A 11 00 00     9F 09 00 00     B1 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
16 11 00 00     97 09 00 00     AD 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 01&lt;br /&gt;
AA 09 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A6 09 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9E 09 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
96 09 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F3 10 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
EF 10 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1B 11 00 00     A0 09 00 00     B2 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
17 11 00 00     98 09 00 00     AE 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 02&lt;br /&gt;
AC 09 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A8 09 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A2 09 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
9A 09 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F5 10 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F1 10 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1D 11 00 00     A4 09 00 00     B4 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
19 11 00 00     9C 09 00 00     B0 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 03&lt;br /&gt;
AB 09 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A7 09 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
A1 09 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
99 09 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F4 10 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F0 10 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1C 11 00 00     A3 09 00 00     B3 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
18 11 00 00     9B 09 00 00     AF 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 04&lt;br /&gt;
B6 09 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B5 09 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B8 09 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
B7 09 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F7 10 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F6 10 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1F 11 00 00     BA 09 00 00     BC 09 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
1E 11 00 00     B9 09 00 00     BB 09 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 05&lt;br /&gt;
BD 09 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //rail X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
BE 09 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //rail Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
BF 09 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Road X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
C0 09 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Road Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F8 10 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Mono X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
F9 10 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Mono Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
20 11 00 00     C1 09 00 00     00 00 00 00     00 00 00 00 //Mlev X: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
21 11 00 00     C2 09 00 00     00 00 00 00     00 00 00 00 //Mlev Y: Back&amp;amp;amp;Floor, Front, Pillars, 0&lt;br /&gt;
//table 06&lt;br /&gt;
86 09 00 00     88 09 00 00     85 09 00 00     87 09 00 00 //rail flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
8A 09 00 00     8C 09 00 00     89 09 00 00     8B 09 00 00 //rail ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
8E 09 00 00     90 09 00 00     8D 09 00 00     8F 09 00 00 //road flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
92 09 00 00     94 09 00 00     91 09 00 00     93 09 00 00 //road ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
E7 10 00 00     E9 10 00 00     E6 10 00 00     E8 10 00 00 //mono flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
EB 10 00 00     ED 10 00 00     EA 10 00 00     EC 10 00 00 //mono ramp: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
0F 11 00 00     11 11 00 00     0E 11 00 00     10 11 00 00 //mlev flat: northern end X, northern end Y, southern end X, southern end Y&lt;br /&gt;
13 11 00 00     15 11 00 00     12 11 00 00     14 11 00 00 //mlev ramp: northern end X, northern end Y, southern end X, southern end Y&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Stations&amp;diff=3789</id>
		<title>Action0/Stations</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Stations&amp;diff=3789"/>
		<updated>2018-08-01T20:34:55Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Defining properties of new stations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unlike vehicles, the new stations have no equivalent in TTD. The IDs are therefore free to be chosen and will in fact be allocated automatically. In action 0, you only specify IDs relative to the set, i.e. the ID of the first station type is 00, the second station type is 01 and so on.&lt;br /&gt;
&lt;br /&gt;
{{ttdp|}} In TTDPatch each game can only have 255 station IDs for all active grf files.&lt;br /&gt;
&lt;br /&gt;
The only property you &#039;&#039;&#039;must&#039;&#039;&#039; set for each station ID is 08 (in addition to defining an [[Action3|action 3]] for it), anything else can be left at the default. It must be the first property you set for each station ID, because the station ID is actually undefined until it has been assigned a class through property 08. Also, all station IDs must get their classes in the right order, starting from ID 00 onwards.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!![[GRFActionsDetailed|Size]]!!Version!!Description&lt;br /&gt;
|-&lt;br /&gt;
|08||D||{{ottdp|0.6|2.5|ttdprev=alpha 19}}||Class ID, see below&lt;br /&gt;
|-&lt;br /&gt;
|09||V||{{ottdp|0.6|2.5|ttdprev=alpha 20}}||Sprite layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0A||B||{{ottdp|0.6|2.5|ttdprev=alpha 20}}||Copy sprite layout&lt;br /&gt;
|-&lt;br /&gt;
|0B||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Callback flags&lt;br /&gt;
|-&lt;br /&gt;
|0C||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Bit mask of disabled numbers of platforms&lt;br /&gt;
|-&lt;br /&gt;
|0D||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Bit mask of disabled platform lengths&lt;br /&gt;
|-&lt;br /&gt;
|0E||V||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Define custom layout, see below&lt;br /&gt;
|-&lt;br /&gt;
|0F||B||{{ottdp|0.6|2.5|ttdprev=alpha 22}}||Copy custom layout from stationid given by argument&lt;br /&gt;
|-&lt;br /&gt;
|10||W||{{ottdp|0.6|2.5|ttdprev=alpha 25}}||Little/lots threshold&lt;br /&gt;
|-&lt;br /&gt;
|11||B||{{ottdp|0.6|2.5|ttdprev=alpha 27}}||Pylon placement&lt;br /&gt;
|-&lt;br /&gt;
|12||D||{{ottdp|0.6|2.5|ttdprev=alpha 30}}||Bit mask of cargo type triggers for random sprites&lt;br /&gt;
|-&lt;br /&gt;
|13||B||{{ottdp|0.6|2.5|ttdprev=alpha 30}}||General flags&lt;br /&gt;
|-&lt;br /&gt;
|14||B||{{ottdp|0.6|2.5|ttdprev=alpha 47}}||Overhead wire placement&lt;br /&gt;
|-&lt;br /&gt;
|15||B||{{ottdp|0.6|2.5|ttdprev=alpha 51}}||Can train enter tile&lt;br /&gt;
|-&lt;br /&gt;
|16||W||{{ottdp|0.7|2.5|ttdprev=beta 9}}||Animation information&lt;br /&gt;
|-&lt;br /&gt;
|17||B||{{ottdp|0.7|2.5|ttdprev=beta 9}}||Animation speed&lt;br /&gt;
|-&lt;br /&gt;
|18||W||{{ottdp|0.7|2.5|ttdprev=beta 9}}||Animation triggers&lt;br /&gt;
|-&lt;br /&gt;
|19||V||{{ottdp}}||Road routing (reserved for future use)&lt;br /&gt;
|-&lt;br /&gt;
|1A||V||{{ottdp|1.2|no|ottdrev=r22518}}||Advanced sprite layout with register modifiers&lt;br /&gt;
|-&lt;br /&gt;
|1B||8*B||{{ottdp}}||Minimum bridge height for bridges over stations&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Station class (08) ===&lt;br /&gt;
TTDPatch groups sets of new station graphics into various classes. &amp;amp;nbsp;The classes can be selected by the top dropdown list in the construction window, and the individual stations within the class from the bottom dropdown list. &amp;amp;nbsp;In addition, each station can alter its appearance using [[VariationalAction2|variational]] and/or [[RandomAction2|random]] action 2 entries.&lt;br /&gt;
&lt;br /&gt;
Only two classes are pre-defined:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Name!!Class ID!!Intended use for station&lt;br /&gt;
|-&lt;br /&gt;
|DFLT||44 46 4C 54||Default, no special station type&lt;br /&gt;
|-&lt;br /&gt;
|WAYP||57 41 59 50||Non-cargo stations, waypoints, signal boxes etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You may simply use other classes than the above, as long as no more than (at the moment) 16 classes are used among all active .grf files at any time.&lt;br /&gt;
&lt;br /&gt;
When a WAYP station is built, it will not accept cargo nor will any cargo appear from nearby industries or towns. &amp;amp;nbsp;Trains will not stop at WAYP stations, regardless of the non-stop order and/or the nonstop switch.&lt;br /&gt;
&lt;br /&gt;
=== Sprite layout (09) ===&lt;br /&gt;
This controls what sprites are displayed, where they are displayed, and in what order. &amp;amp;nbsp;The property is variable sized, and contains the data for all 8 possible station tile types. &amp;amp;nbsp;If this property is set, the num-ent in the corresponding [[Action1|action 1]] need not be equal to 12 (hex), it can in fact be any number, and any number of sprites can be displayed in any order.&lt;br /&gt;
&lt;br /&gt;
The data is specified as data for all eight tiles in this way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;num&amp;amp;gt; &amp;amp;lt;data1&amp;amp;gt; &amp;amp;lt;data2&amp;amp;gt; ... &amp;amp;lt;datan&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B*||num||Number of different tiles supported (see below)&lt;br /&gt;
|-&lt;br /&gt;
|V||data1...||The variable size data for each of the &amp;amp;lt;num&amp;amp;gt; tiles, as specified below&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Number of tiles supported =====&lt;br /&gt;
* Normally this is 8, but you can specify fewer as well&lt;br /&gt;
* Using callback flags bit 1, specifying more makes sense too&lt;br /&gt;
* This value must be the same for all stations set by this action 0, even though it must be repeated for the prop. 09 definition of each station ID as well&lt;br /&gt;
&lt;br /&gt;
(Note that num is an extended byte, see [[GRFActionsDetailed]].)&lt;br /&gt;
&lt;br /&gt;
The content of each of the (usually eight) data sets is either a new sprite layout:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|D||groundsprite||the sprite to draw for the rails; this is by default a TTD sprite, but with bit 31 set an [[Action1|action 1]] sprite (42D+X) may be specified&lt;br /&gt;
|-&lt;br /&gt;
|V||spritedata||the data for station sprites, see below; each has a size of 10 bytes, and there may be several&lt;br /&gt;
|-&lt;br /&gt;
|B||80||a literal 80 ends the list of sprites for this tile&lt;br /&gt;
|}&lt;br /&gt;
or, alternatively, the instruction to use TTD&#039;s layout by using four zero bytes 00 00 00 00 instead of the groundsprite bytes. You can use [http://www.bytetransfer.de/projects/ttdpatch/docs/spriteidmapping.php the online sprite ID converter] to look up the sprite IDs you can use for all the climates.&lt;br /&gt;
&lt;br /&gt;
One can draw two types of sprites. &amp;amp;nbsp;One type is one that establishes a new 3D bounding box for use by the sprite sorter. &amp;amp;nbsp;The other type shares the 3D bounding box of the previous sprite(s). &amp;amp;nbsp;It must not be larger than the sprite which established the bounding box, nor must any part of it be outside this box. &amp;amp;nbsp;For simplicity, it should have the exact same dimensions as the sprite it shares the bounding box with. &amp;amp;nbsp;The latter type is supported in the station construction window display only since TTDPatch 2.6 r1684.&lt;br /&gt;
&lt;br /&gt;
The spritedata of sprites with their own bounding box has this format:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||xofs||x-offset from northern tile corner&lt;br /&gt;
|-&lt;br /&gt;
|B||yofs||y-offset from northern tile corner&lt;br /&gt;
|-&lt;br /&gt;
|B||zofs||z-offset from northern tile corner&lt;br /&gt;
|-&lt;br /&gt;
|B||xextent||size of sprite in x direction&lt;br /&gt;
|-&lt;br /&gt;
|B||yextent||size of sprite in y direction&lt;br /&gt;
|-&lt;br /&gt;
|B||zextent||size of sprite in z direction&lt;br /&gt;
|-&lt;br /&gt;
|D||sprite||sprite number to draw&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The spritedata of sprites sharing the bounding box has this format:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||xofs||x-offset relative to previous sprite&lt;br /&gt;
|-&lt;br /&gt;
|B||yofs||y-offset relative to previous sprite&lt;br /&gt;
|-&lt;br /&gt;
|B||80||a literal 80&lt;br /&gt;
|-&lt;br /&gt;
|B||00||(ignored)&lt;br /&gt;
|-&lt;br /&gt;
|B||00||(ignored)&lt;br /&gt;
|-&lt;br /&gt;
|B||00||(ignored)&lt;br /&gt;
|-&lt;br /&gt;
|D||sprite||sprite number to draw&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Since OpenTTD r18959 you can draw multiple ground sprites for a tile, which is useful if you want to use the usual rail/grass/concrete groundtile, but still need to add features to it without using a new bounding box. To do so use the syntax of sprites sharing the previous bounding box, but use it before the first bounding box definition. xpixeloffset and ypixeloffset refer to the usual spot of groundtiles. The same feature is also partially supported in TTDPatch since TTDPatch 2.6 r2312: TTDPatch ignores the xofs and yofs fields and always uses (0,0) for the offset. If you are developing a GRF that needs to be compatible with both OpenTTD and TTDPatch, you should always keep xofs and yofs zero to get the same effect in both games.&lt;br /&gt;
Note however that both implementations do not consider the [[Action0/Stations#General_Flags_.2813.29|setting of prop13 bit 0]], hence these &amp;quot;multiple ground sprites&amp;quot; have to be always part of the building sprites set and cannot be part of the different sprite set for ground sprites.&lt;br /&gt;
&lt;br /&gt;
The sprite number can have the following values (remember to use little endian, i.e. reversed byte order):&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Number!!Sprite&lt;br /&gt;
|-&lt;br /&gt;
|0000042D+X||use sprite X from the corresponding [[Action1|action 1]] block (i.e. 0000042D for the first, 0000042E for the second, etc.)&lt;br /&gt;
|-&lt;br /&gt;
|0000842D+X||same, but draw it using company colour translation&lt;br /&gt;
|-&lt;br /&gt;
|0322442D+X||same, but draw in transparent mode (actual colours of the sprite are disregarded entirely); supported in station construction window display since TTDPatch 2.6 r1683&lt;br /&gt;
|-&lt;br /&gt;
|RRRR842D+X||draw sprite with colour translation defined in sprite RRRR; available since TTDPatch 2.6 r1683&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With bit 31 set, this sprite will refer to a TTD sprite, not the action 1 sprite. For the first ground sprite the reverse meaning applies.&lt;br /&gt;
&lt;br /&gt;
Depending on the railtype the sprites may get additional offsets:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
! !! Normal/electrified rail !! Monorail !! Maglev&lt;br /&gt;
|-&lt;br /&gt;
|TTD sprites || 0 || 82 || 164&lt;br /&gt;
|-&lt;br /&gt;
|Action 1 sprite (first ground sprite) || 0 || 1 || 2&lt;br /&gt;
|-&lt;br /&gt;
|Action 1 sprite (other sprites in the layout) || 0 || 0 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
So, TTD sprites and the first ground sprite are affected by the railtype, while other action 1 sprites in the layout are not. The offset &amp;quot;82&amp;quot; refers to the offset between the default TTD track sprites; if you are using non-track ground sprites which are not from an action 1, you need to supply fake spritenumbers which preemptively reverse the offsets (that is, you need different sprite layouts for every railtype your station is available for).&lt;br /&gt;
&lt;br /&gt;
Setting bit 30 forces this sprite to be displayed normally even in &amp;quot;transparent buildings&amp;quot; mode (supported only in TTDPatch 2.6 r1695 and later).&lt;br /&gt;
&lt;br /&gt;
See below for an example of linked sprites as well as transparent sprites (e.g. for a station roof).&lt;br /&gt;
&lt;br /&gt;
Note that the coordinates here are 3D coordinates with x running from top-right to bottom-left and y running from top-left to bottom-right, with the tile dimensions being 16x16 (and 8 for one height level). This means the x and y values should always be within 0-15 (decimal).&lt;br /&gt;
&lt;br /&gt;
This is different to and independent from the x/y offsets used in the actual .NFO file. &amp;amp;nbsp;The 3D bounding box is used by TTD&#039;s sprite sorter to figure out the order in which to draw the sprites, as well as telling it which sprites to draw, because those whose bounding box falls outside the currently updated screen rectangle will not be drawn. &amp;amp;nbsp;Make sure the 3D bounding box is large enough to contain the entire sprite, but not so large that the sprite sorter can&#039;t determine which sprites should be in front.&lt;br /&gt;
&lt;br /&gt;
This means that the order in which you specify sprites is irrelevant. &amp;amp;nbsp;Sprites will get drawn from back to front, in the order which the sprite sorter determines as correct, from their bounding boxes. &amp;amp;nbsp;There are two exceptions, however:&lt;br /&gt;
* Sprites sharing the same bounding box will always be drawn in the given order.&lt;br /&gt;
* The station construction window display doesn&#039;t use the sprite sorter. Tiles that may be displayed in that window need to be specified in the correct drawing order, back to front.&lt;br /&gt;
&lt;br /&gt;
=== Copy sprite layout (0A) ===&lt;br /&gt;
&lt;br /&gt;
This is not a property as such, but an action. &amp;amp;nbsp;It takes as argument a byte which is interpreted as station-ID to copy the custom sprite layout from.&lt;br /&gt;
&lt;br /&gt;
=== Callback flags (0B) ===&lt;br /&gt;
For stations, the following [[callbacks]] can be defined by setting the corresponding bit in property 0B:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Variable 0C value!!Callback&lt;br /&gt;
|-&lt;br /&gt;
|0||1||13||Whether to make station available in construction window (non-zero callback return) or not (callback returns zero)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||14||Use callback to select sprite layout&lt;br /&gt;
|-&lt;br /&gt;
|2||4||141||Decide next animation frame&lt;br /&gt;
|-&lt;br /&gt;
|3||8||142||Decide animation speed&lt;br /&gt;
|-&lt;br /&gt;
|4||10||149||Custom slope check&lt;br /&gt;
|}&lt;br /&gt;
Bit is the bit you have to set, you do this by adding all the values for all the bits. Variable 0C value is what variable 0C will be set to, for checking it in the [[VariationalAction2|VarAction2]] for callbacks.&lt;br /&gt;
&lt;br /&gt;
=== Selection of numbers of platforms and length (0C, 0D) ===&lt;br /&gt;
&lt;br /&gt;
By default all platform lengths and any number of platforms is available for the new stations. &amp;amp;nbsp;Using these properties, you can choose which ones should be unavailable by setting the corresponding bit in the property.&lt;br /&gt;
&lt;br /&gt;
The values are a byte, used as a bit mask. &amp;amp;nbsp;Bits 0 to 6 control the availability of number or length 1 to 7, and bit 7 controls the availability of the &amp;quot;+7&amp;quot; button. &amp;amp;nbsp;Each bit that is set disables the corresponding length or number of platforms.&lt;br /&gt;
&lt;br /&gt;
For compatibility with &amp;quot;largestations off&amp;quot;, at least one length between 1 and 5 (bits 0 to 4) and one number of platforms between 1 and 4 (bits 0 to 3) must be available, i.e. at least one of these bits must be unset.&lt;br /&gt;
&lt;br /&gt;
=== Define custom layout (0E) ===&lt;br /&gt;
&lt;br /&gt;
This allows choosing which tile type is built at which tile of a newly built&lt;br /&gt;
&lt;br /&gt;
station. &amp;amp;nbsp;There are four different types, which TTD normally defines as&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Tile type!!Appearance&lt;br /&gt;
|-&lt;br /&gt;
|00||plain platform&lt;br /&gt;
|-&lt;br /&gt;
|02||platform with building&lt;br /&gt;
|-&lt;br /&gt;
|04||platform with roof, left side&lt;br /&gt;
|-&lt;br /&gt;
|06||platform with roof, right side&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These numbers are used for stations in NE-SW direction, or these numbers plus one for stations in the NW-SE direction. &amp;amp;nbsp;To define a custom layout, use this format:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Size!!Name!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|B||length||length of platforms for this layout&lt;br /&gt;
|-&lt;br /&gt;
|B||number||number of platforms for this layout&lt;br /&gt;
|-&lt;br /&gt;
|V||tiles||length*number bytes of tile types, one platform after another, only 00, 02, 04 or 06 are allowed as values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Repeat this as often as necessary to define the layouts for all supported combinations of length and number. &amp;amp;nbsp;End the definitions with a 00 00 (zero length and zero number). &amp;amp;nbsp;Any combinations that are not defined will be built using TTD&#039;s default layout.&lt;br /&gt;
Note that it may be easier to draw different sprite sets using a [[VariationalAction2|VarAction2]] based on [[VarAction2Stations#Platform info 40 41 46 47 49|station variable 40]], rather than redefining the layout. &amp;amp;nbsp;In addition, [[Callbacks#Custom station layout 24|callback 24]] will be used to further customize the layout as defined by this property (or by TTD if no prop 0E layout is available). This may also be easier than defining a prop 0E layout for every combination of length and number of platforms.&lt;br /&gt;
&lt;br /&gt;
=== Copy custom layout (0F) ===&lt;br /&gt;
&lt;br /&gt;
Similar to property 0A, this copies the custom layout from the station-ID given by the argument.&lt;br /&gt;
&lt;br /&gt;
=== Little/lots threshold (10) ===&lt;br /&gt;
Amount of cargo for switching from &amp;quot;little&amp;quot; to &amp;quot;lots&amp;quot; of cargo. &amp;amp;nbsp;TTDPatch separates the full range of cargo amounts (0 to 4095) into two separate subranges, &amp;quot;little&amp;quot; and &amp;quot;lots&amp;quot; of cargo. &amp;amp;nbsp;This allows better control of cargo amount based graphics (if needed). &amp;amp;nbsp;Property 10 specifies at what amount of cargo the patch is to switch from one to the other subrange. &amp;amp;nbsp;See [[Action2Stations|Action 2 for stations]] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Pylon placement (11) and wire placement (14) ===&lt;br /&gt;
Prop. 11 sets which tile types should have pylons when used with electrified tracks. By default, tiles 0-3 (default stations without roof) have pylons, and tiles 4-7 (default stations with roof) don&#039;t. This is a bit mask of tile types, with a bit set meaning that a pylon should be drawn. The tile types here do not consider [[Callbacks#Station sprite layout 14|callback 14]], but rather the type as it was built, i.e. from prop. 0E.&lt;br /&gt;
&lt;br /&gt;
Prop. 14 works in a similar way, except that it sets the tile types on which there should be &#039;&#039;no&#039;&#039; wires displayed. With the default value of &amp;quot;00&amp;quot;, wires are displayed everywhere, and for each bit set, the wire is omitted on that tile type.&lt;br /&gt;
&lt;br /&gt;
This property should only be used when the wires cause problems with the sprite sorter, because even when the wire is obscured by a station hall or similar, it should still show up in transparent mode so that each tile can easily be verified as being electrified.&lt;br /&gt;
&lt;br /&gt;
=== Cargo types for random triggers (12) ===&lt;br /&gt;
&lt;br /&gt;
This sets which cargo types should trigger re-randomizing. The cargo types are given as a bitmask of the bits from column 3 (type B) in CargoTypes. &amp;amp;nbsp;If nothing is set (the default), the no random triggers will happen, to conserve CPU time.&lt;br /&gt;
&lt;br /&gt;
With GRF version 7 and above, the interpretation of bits changes. Instead of climate-dependent cargo slot numbers (type B), you have to set the bits of climate-independent cargo ID (type A).&lt;br /&gt;
&lt;br /&gt;
=== General Flags (13) ===&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Version!!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0||1||{{ottdp|0.7|2.5}}||use different sprite set for ground sprites ([[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|var. 10]] is 1 for ground sprites, 0 otherwise)&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|0.6|2.5}}||when calculating the cargo amount to display, divide the amount by the station size (to simulate cargo distributed over the area of the station)&lt;br /&gt;
|-&lt;br /&gt;
|2||4||{{ottdp|0.7|2.5}}||[[Callbacks#Next animation frame (1A/26/141/153/158)|callback 141]] needs random bits in var. 10&lt;br /&gt;
|-&lt;br /&gt;
|3||8||{{ottdp|1.0|2.6}}||Use custom foundations on sloped tiles (the lowest byte of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|var. 10]] is 2 for foundation sprites)&lt;br /&gt;
|-&lt;br /&gt;
|4||10||{{ottdp|1.0|2.6}}||When bit 3 is set, use extended foundation block instead of the simple one&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bit 3 works somewhat similarly to bit 0: your sprite selection will be called again, with 2 in the lowest byte of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 10]]. If the chain ends on a callback result, the program will assume the foundation selection has failed and will use the default foundaton sprites. The low word of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 18]] will contain the tile type of the current tile; if you have [[Callbacks#Station sprite layout (14)|callback 14]] enabled, this will be the its return value - otherwise, the default TTD types (platform with building, platform with left roof etc.) are used. In either case, one is added for the NW-SE orientation, in case your station needs different foundations depending on its orientation. Bits 16 and 17 are set if the NW and and NE foundations are to merged with the corresponding neighbour tile, so you shouldn&#039;t draw the corresponding edge in the foundation sprite. Other bits of variable 10 and variable 18 are reserved for future use.&lt;br /&gt;
&lt;br /&gt;
Your sprite selection code should select a foundation sprite block. The contents of this block depends on whether bit 4 is set or not.&lt;br /&gt;
* Bit 4 clear (simple foundations):&lt;br /&gt;
[[File:simple_foundations.png]]&lt;br /&gt;
&lt;br /&gt;
The programme will combine the needed foundation from these 8 sprites depending on the current slope. You don&#039;t need to care about the merge data in bits 16..17 of [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 18]]; it will be taken care of that automatically by adding the 7th and 8th sprite only when necessary.&lt;br /&gt;
* Bit 4 set (extended foundations):&lt;br /&gt;
[[File:extended_foundations.png]]&lt;br /&gt;
&lt;br /&gt;
You need to have one sprite for every slope that&#039;s possible below a rail station. The correct one will be automatically selected depending on the current slope. It can&#039;t handle the merging itself, however, so you need four foundation blocks: one with no edges removed, one with the NW edge removed, one with the NE edge removed and one with both north edges removed. Your sprite selection code is responsible for selecting the correct of those blocks according to the merge info in [[GlobalVariables#Extra_callback_info_.2810_.2F_-.29_and_.2818_.2F_-.29|variable 18]].&lt;br /&gt;
&lt;br /&gt;
In both cases, you can put an additional value into register 100h, which will serve as an offset into the selected block. If you don&#039;t modify register 100h during the chain, it will default to 0. It is important that the dimensions of these sprites remain the same - thus bit 6 in the real sprites must be set to prevent GRFCodec from trimming the empty blue areas. The offset of these foundations must be -31 to the X direction and -9 to the Y direction.&lt;br /&gt;
&lt;br /&gt;
=== Can train enter tile (15) ===&lt;br /&gt;
&lt;br /&gt;
Like props. 11 and 14, this value contains eight bits relating to the eight possible tile types. If a bit is set, trains are prevented from routing through or entering any tile of this type.&lt;br /&gt;
&lt;br /&gt;
=== Animation information (16) ===&lt;br /&gt;
&lt;br /&gt;
The low byte specifies the number of animation frames minus one, so 00 means 1 frame, 01 means 2 frames etc. The maximum number of frames is 256, although you can have some problems if your animation exceeds FD (253) frames. The high byte must be 0 for non-looping animations and 01 for looping animations. Every other value is reserved for future use. In addition, if the whole word contains FFFF, animation is turned off for this station (this is the default value).&lt;br /&gt;
Since you can&#039;t have properties for individual station tiles, this property applies for every tile of the station. If you don&#039;t want to animate some tiles, you should check the current position during [[Callbacks#Animation control (1B/25/140/152/159)|callback 140]] and return FD if the current tile doesn&#039;t need to be animated. If you also need animations of different length per tile, you&#039;ll have to use [[Callbacks#Next animation frame (1A/26/141/153/158)|callback 141]] for that.&lt;br /&gt;
&lt;br /&gt;
=== Animation speed (17) ===&lt;br /&gt;
The meaning is the same as for [[Action0Houses#Animation Speed 1B|house property 1B]], but the lower limit is 0 instead of 2, so the fastest possible animation changes frames every game tick (27ms). The default value is 2.&lt;br /&gt;
&lt;br /&gt;
=== Animation triggers (18) ===&lt;br /&gt;
This is a bit mask of events that should trigger [[Callbacks#Animation control (1B/25/140/152/159)|callback 140]], allowing to change the animation state&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!Bit!!Value!!Version!!Meaning!!Happens on!!Var 18&lt;br /&gt;
|-&lt;br /&gt;
|0||1||{{ottdp|0.7|2.5}}||Station part is built||the newly built tiles||&lt;br /&gt;
|-&lt;br /&gt;
|1||2||{{ottdp|0.7|2.5}}||New cargo arrives to station||whole station||&amp;lt;ref name=&amp;quot;cargotype&amp;quot;&amp;gt;Bits 8..15 of var 18 contain the triggering cargo type. If your GRF has a cargo translation table, the cargo type will be an index in that table, or FFh if the cargo isn&#039;t in the table. If you don&#039;t have a cargo translation table, the cargo type will simply be the climate-dependent cargo type number.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|2||4||{{ottdp|0.7|2.5}}||A cargo type gets removed from station||whole station||&amp;lt;ref name=&amp;quot;cargotype&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3||8||{{ottdp|0.7|2.5}}||Train enters station (starts loading/unloading)||platform where the train is||&lt;br /&gt;
|-&lt;br /&gt;
|4||10||{{ottdp|0.7|2.5}}||Train leaves station (done loading/unloading)||platform where the train is||&lt;br /&gt;
|-&lt;br /&gt;
|5||20||{{ottdp|1.2|2.5|ottdrev=r22746}}||Train loads/unloads cargo||platform where the train is||&lt;br /&gt;
|-&lt;br /&gt;
|6||40||{{ottdp|0.7|2.5}}||Every 250 ticks||whole station||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The remaining bits are reserved for future triggers, they must be zero for now.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;happens on&amp;quot; column tells which tiles will [[Callbacks#Animation control (1B/25/140/152/159) |callback 140]] be called on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Road routing (19 - reserved for future use) ===&lt;br /&gt;
&lt;br /&gt;
Will allow to have routing informations for road vehicles on rail stations,&lt;br /&gt;
&lt;br /&gt;
generally you need to deny rail vehicle traveling via prop 15&lt;br /&gt;
&lt;br /&gt;
This property is not yet implemented {{ottd|no}}{{ttdp|no}}.&lt;br /&gt;
&lt;br /&gt;
=== Advanced sprite layout with register modifiers (1A) ===&lt;br /&gt;
&lt;br /&gt;
{{ottdp|1.2|no|ottdrev=r22518}}&lt;br /&gt;
Format:&lt;br /&gt;
 1A &amp;lt;num-layouts&amp;gt; &amp;lt;0x40 + num-sprites&amp;gt;&lt;br /&gt;
                  &amp;lt;groundsprite&amp;gt; &amp;lt;flags&amp;gt; [&amp;lt;register/value&amp;gt;]...&lt;br /&gt;
                  [ &amp;lt;buildingsprite&amp;gt; &amp;lt;flags&amp;gt;&lt;br /&gt;
                      ( &amp;lt;xoffset&amp;gt; &amp;lt;yoffset&amp;gt; &amp;lt;zoffset&amp;gt; &amp;lt;xextent&amp;gt; &amp;lt;yextent&amp;gt; &amp;lt;zextent&amp;gt; &lt;br /&gt;
                      | &amp;lt;xpixeloffset&amp;gt; &amp;lt;ypixeloffset&amp;gt; 80)&lt;br /&gt;
                    [&amp;lt;register/value&amp;gt;]...&lt;br /&gt;
                  ]...&lt;br /&gt;
&lt;br /&gt;
For further details see [http://wiki.openttd.org/Frosch/Advanced_Sprite_Layout#Stations here] for now.&lt;br /&gt;
&lt;br /&gt;
=== Minimum bridge height (1B) ===&lt;br /&gt;
&lt;br /&gt;
This property allows building bridges over stations.&lt;br /&gt;
&lt;br /&gt;
The bridge height property defines minimum clearances required for a bridge for each of the four [[Action0/Stations#Define_custom_layout_.280E.29|tile types]] of this station (or zero to not allow any bridge). Values are given in &amp;quot;height level&amp;quot; units (1 level == 8px).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; |-&lt;br /&gt;
!Height (1)!!Appearance&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x1 y1 ||plain platform&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x2 y2 ||platform with building&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x3 y3 ||platform with roof, left side&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; |x4 y4 ||platform with roof, right side&lt;br /&gt;
|}&lt;br /&gt;
(1) where the values are one byte pairs (x-direction, y-direction) expressed in hexadecimal notation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
1B &amp;lt;1st pair&amp;gt; &amp;lt;2nd pair&amp;gt; &amp;lt;3rd pair&amp;gt; &amp;lt;4th pair&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
1B x1 y1 x2 y2 x3 y3 x4 y4&amp;lt;br /&amp;gt;&lt;br /&gt;
1B 01 01 02 02 03 03 03 03 // 8px 16px 24px 24px&lt;br /&gt;
&lt;br /&gt;
This property is currently only available for the developmental &amp;quot;New Map Features&amp;quot; (NMF) fork of OpenTTD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Using TTD&#039;s sprite layouts for certain tiles ===&lt;br /&gt;
&lt;br /&gt;
To use TTD&#039;s layout, you use &amp;lt;code&amp;gt;00 00 00 00&amp;lt;/code&amp;gt; for the ground sprite number and leave off everything else.&lt;br /&gt;
&lt;br /&gt;
So instead of for example&lt;br /&gt;
&lt;br /&gt;
 F4 03 00 00&lt;br /&gt;
    00 00 00    10 05 02    2E 84 00 00&lt;br /&gt;
    00 0B 00    10 05 02    30 84 00 00&lt;br /&gt;
    80&lt;br /&gt;
&lt;br /&gt;
you just put&lt;br /&gt;
&lt;br /&gt;
 00 00 00 00&lt;br /&gt;
&lt;br /&gt;
=== Using transparent sprites ===&lt;br /&gt;
&lt;br /&gt;
You can use transparent sprites to make for example the roof translucent like in TTD&#039;s stations. The roof of TTD&#039;s stations is made like this:&lt;br /&gt;
&lt;br /&gt;
 00 00 10    10 10 0A    37 84 00 00&lt;br /&gt;
 00 00 80    00 00 00    3B 44 22 03&lt;br /&gt;
&lt;br /&gt;
The first sprite here is the non-transparent frame of the roof, drawn in company colours (it has bit 15 set). The second part is a special &amp;quot;linked&amp;quot; sprite without its own bounding box, it shares that of the previous sprite. That&#039;s done by setting the z offset to 80.&lt;br /&gt;
&lt;br /&gt;
To make that second sprite transparent, bit 14 is set in the sprite number, and the upper word is set to 322 (*), so 0322443B means to take sprite 43B and draw it in transparent mode. The colours of that sprite are ignored entirely, every pixel in colour 0 is fully transparent, and all other pixels are semi-transparent (essentially just causing what they are drawn over to become darker).&lt;br /&gt;
&lt;br /&gt;
(*) This is the [[RecolorSprites#Default_recolour_sprites | recolour sprite]] for the glass effect.&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3690</id>
		<title>ObjectLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3690"/>
		<updated>2015-08-17T05:44:38Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Recommendations - Author defined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Object labels=&lt;br /&gt;
&lt;br /&gt;
Defining Object Class Label Recommendations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Predefined ==&lt;br /&gt;
&lt;br /&gt;
# Predefined labels are best used for single objects that are not part of a comprehensive set&lt;br /&gt;
# It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
# A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
# To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
# While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
# Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=3|PREDEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description&lt;br /&gt;
|-&lt;br /&gt;
|STRU||Structures||Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
|-&lt;br /&gt;
|INFR||Infrastructure||light poles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
|-&lt;br /&gt;
|BLDG||Buildings||Normally accommodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
|-&lt;br /&gt;
|NATR||Natural objects||caves, coral reefs, swamps, etc.&lt;br /&gt;
|-&lt;br /&gt;
|PARK||Public areas||Normally accommodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
|-&lt;br /&gt;
|ARTF||Artifacts||They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
|-&lt;br /&gt;
|MISC||Miscellaneous||For the author who is unable to accommodate his/her object under any of the previous labels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Author defined ==&lt;br /&gt;
&lt;br /&gt;
# Author defined labels are best used for comprehensive object sets that consist of several obviously related objects.&lt;br /&gt;
# Each label must consist of four (4) alphanumeric characters.&lt;br /&gt;
# To prevent menu confusion, new labels should be unique and should not duplicate predefined labels (see chart above) nor previously selected author defined labels (see chart below).&lt;br /&gt;
# The author should add their label(s) to the following chart in alphanumeric order.&lt;br /&gt;
# If an author is uncomfortable with adding a label to the chart, they can PM their request to [http://www.tt-forums.net/ucp.php?i=pm&amp;amp;amp;mode;=compose&amp;amp;amp;action; wallyweb].&lt;br /&gt;
# The chart will be regularly reviewed for duplications.&lt;br /&gt;
# The chart will be regularly edited for alphanumeric sequence.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=5|AUTHOR DEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description!!Author!!TT-Forums link&lt;br /&gt;
|-&lt;br /&gt;
|EXM1||Example 1||An example label listing||your name here||Forum link goes here&lt;br /&gt;
|-&lt;br /&gt;
|HOUS||TARS Landscape: Village Houses||Houses as Objects||Yoshi||http://www.tt-forums.net/viewtopic.php?t=61442&lt;br /&gt;
|-&lt;br /&gt;
|HTLG||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;G&#039;&#039;&#039;ondola||Gondolas||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTLC||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;C&#039;&#039;&#039;hairlift||Chairlifts||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTPT||&#039;&#039;&#039;T&#039;&#039;&#039;ARS &#039;&#039;&#039;P&#039;&#039;&#039;istes: &#039;&#039;&#039;T&#039;&#039;&#039;rail Blazer||Pistes Ski Slopes||wallyweb||http://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=56588&lt;br /&gt;
|-&lt;br /&gt;
|HTML||&#039;&#039;&#039;T&#039;&#039;&#039;ARS &#039;&#039;&#039;M&#039;&#039;&#039;ountain: &#039;&#039;&#039;L&#039;&#039;&#039;odges||Lodges for the slopes||wallyweb||http://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=56588&lt;br /&gt;
|-&lt;br /&gt;
|NLRA||Dutch Road Furniture: Matrix Activators||Activators for matrix signs for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRF||Dutch Road Furniture||For Dutch road related objects (generic label)||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRM||Dutch Road Furniture: Motorways||Motorway related objects for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRS||Dutch Road Furniture: Signs and Fingerposts||Road signs and fingerposts for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3689</id>
		<title>ObjectLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3689"/>
		<updated>2015-08-14T12:52:32Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Recommendations - Author defined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Object labels=&lt;br /&gt;
&lt;br /&gt;
Defining Object Class Label Recommendations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Predefined ==&lt;br /&gt;
&lt;br /&gt;
# Predefined labels are best used for single objects that are not part of a comprehensive set&lt;br /&gt;
# It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
# A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
# To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
# While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
# Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=3|PREDEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description&lt;br /&gt;
|-&lt;br /&gt;
|STRU||Structures||Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
|-&lt;br /&gt;
|INFR||Infrastructure||light poles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
|-&lt;br /&gt;
|BLDG||Buildings||Normally accommodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
|-&lt;br /&gt;
|NATR||Natural objects||caves, coral reefs, swamps, etc.&lt;br /&gt;
|-&lt;br /&gt;
|PARK||Public areas||Normally accommodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
|-&lt;br /&gt;
|ARTF||Artifacts||They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
|-&lt;br /&gt;
|MISC||Miscellaneous||For the author who is unable to accommodate his/her object under any of the previous labels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Author defined ==&lt;br /&gt;
&lt;br /&gt;
# Author defined labels are best used for comprehensive object sets that consist of several obviously related objects.&lt;br /&gt;
# Each label must consist of four (4) alphanumeric characters.&lt;br /&gt;
# To prevent menu confusion, new labels should be unique and should not duplicate predefined labels (see chart above) nor previously selected author defined labels (see chart below).&lt;br /&gt;
# The author should add their label(s) to the following chart in alphanumeric order.&lt;br /&gt;
# If an author is uncomfortable with adding a label to the chart, they can PM their request to [http://www.tt-forums.net/ucp.php?i=pm&amp;amp;amp;mode;=compose&amp;amp;amp;action; wallyweb].&lt;br /&gt;
# The chart will be regularly reviewed for duplications.&lt;br /&gt;
# The chart will be regularly edited for alphanumeric sequence.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=5|AUTHOR DEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description!!Author!!TT-Forums link&lt;br /&gt;
|-&lt;br /&gt;
|EXM1||Example 1||An example label listing||your name here||Forum link goes here&lt;br /&gt;
|-&lt;br /&gt;
|HOUS||TARS Landscape: Village Houses||Houses as Objects||Yoshi||http://www.tt-forums.net/viewtopic.php?t=61442&lt;br /&gt;
|-&lt;br /&gt;
|HTLG||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;G&#039;&#039;&#039;ondola||Gondolas||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTLC||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;C&#039;&#039;&#039;hairlift||Chairlifts||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTPT||&#039;&#039;&#039;T&#039;&#039;&#039;ARS &#039;&#039;&#039;P&#039;&#039;&#039;istes: &#039;&#039;&#039;T&#039;&#039;&#039;rail Blazer||Pistes Ski Slopes||wallyweb||http://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=56588&lt;br /&gt;
|-&lt;br /&gt;
|HTPL||&#039;&#039;&#039;T&#039;&#039;&#039;ARS &#039;&#039;&#039;P&#039;&#039;&#039;istes: &#039;&#039;&#039;L&#039;&#039;&#039;odges||Lodges for the slopes||wallyweb||http://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=56588&lt;br /&gt;
|-&lt;br /&gt;
|NLRA||Dutch Road Furniture: Matrix Activators||Activators for matrix signs for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRF||Dutch Road Furniture||For Dutch road related objects (generic label)||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRM||Dutch Road Furniture: Motorways||Motorway related objects for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRS||Dutch Road Furniture: Signs and Fingerposts||Road signs and fingerposts for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3666</id>
		<title>ObjectLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3666"/>
		<updated>2015-05-05T20:50:31Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Recommendations - Author defined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Object labels=&lt;br /&gt;
&lt;br /&gt;
Defining Object Class Label Recommendations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Predefined ==&lt;br /&gt;
&lt;br /&gt;
# Predefined labels are best used for single objects that are not part of a comprehensive set&lt;br /&gt;
# It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
# A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
# To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
# While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
# Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=3|PREDEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description&lt;br /&gt;
|-&lt;br /&gt;
|STRU||Structures||Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
|-&lt;br /&gt;
|INFR||Infrastructure||light poles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
|-&lt;br /&gt;
|BLDG||Buildings||Normally accommodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
|-&lt;br /&gt;
|NATR||Natural objects||caves, coral reefs, swamps, etc.&lt;br /&gt;
|-&lt;br /&gt;
|PARK||Public areas||Normally accommodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
|-&lt;br /&gt;
|ARTF||Artifacts||They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
|-&lt;br /&gt;
|MISC||Miscellaneous||For the author who is unable to accommodate his/her object under any of the previous labels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Author defined ==&lt;br /&gt;
&lt;br /&gt;
# Author defined labels are best used for comprehensive object sets that consist of several obviously related objects.&lt;br /&gt;
# Each label must consist of four (4) alphanumeric characters.&lt;br /&gt;
# To prevent menu confusion, new labels should be unique and should not duplicate predefined labels (see chart above) nor previously selected author defined labels (see chart below).&lt;br /&gt;
# The author should add their label(s) to the following chart in alphanumeric order.&lt;br /&gt;
# If an author is uncomfortable with adding a label to the chart, they can PM their request to [http://www.tt-forums.net/ucp.php?i=pm&amp;amp;amp;mode;=compose&amp;amp;amp;action; wallyweb].&lt;br /&gt;
# The chart will be regularly reviewed for duplications.&lt;br /&gt;
# The chart will be regularly edited for alphanumeric sequence.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=5|AUTHOR DEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description!!Author!!TT-Forums link&lt;br /&gt;
|-&lt;br /&gt;
|EXM1||Example 1||An example label listing||your name here||Forum link goes here&lt;br /&gt;
|-&lt;br /&gt;
|HOUS||TARS Landscape: Village Houses||Houses as Objects||Yoshi||http://www.tt-forums.net/viewtopic.php?t=61442&lt;br /&gt;
|-&lt;br /&gt;
|HTLG||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;G&#039;&#039;&#039;ondola||Gondolas||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTLC||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;C&#039;&#039;&#039;hairlift||Chairlifts||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTPT||&#039;&#039;&#039;T&#039;&#039;&#039;ARS &#039;&#039;&#039;P&#039;&#039;&#039;istes: &#039;&#039;&#039;T&#039;&#039;&#039;rail Blazer||Pistes Ski Slopes||wallyweb||http://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=56588&lt;br /&gt;
|-&lt;br /&gt;
|NLRA||Dutch Road Furniture: Matrix Activators||Activators for matrix signs for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRF||Dutch Road Furniture||For Dutch road related objects (generic label)||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRM||Dutch Road Furniture: Motorways||Motorway related objects for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRS||Dutch Road Furniture: Signs and Fingerposts||Road signs and fingerposts for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3665</id>
		<title>ObjectLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=3665"/>
		<updated>2015-05-05T20:48:14Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Recommendations - Author defined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Object labels=&lt;br /&gt;
&lt;br /&gt;
Defining Object Class Label Recommendations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Predefined ==&lt;br /&gt;
&lt;br /&gt;
# Predefined labels are best used for single objects that are not part of a comprehensive set&lt;br /&gt;
# It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
# A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
# To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
# While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
# Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=3|PREDEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description&lt;br /&gt;
|-&lt;br /&gt;
|STRU||Structures||Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
|-&lt;br /&gt;
|INFR||Infrastructure||light poles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
|-&lt;br /&gt;
|BLDG||Buildings||Normally accommodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
|-&lt;br /&gt;
|NATR||Natural objects||caves, coral reefs, swamps, etc.&lt;br /&gt;
|-&lt;br /&gt;
|PARK||Public areas||Normally accommodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
|-&lt;br /&gt;
|ARTF||Artifacts||They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
|-&lt;br /&gt;
|MISC||Miscellaneous||For the author who is unable to accommodate his/her object under any of the previous labels.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recommendations - Author defined ==&lt;br /&gt;
&lt;br /&gt;
# Author defined labels are best used for comprehensive object sets that consist of several obviously related objects.&lt;br /&gt;
# Each label must consist of four (4) alphanumeric characters.&lt;br /&gt;
# To prevent menu confusion, new labels should be unique and should not duplicate predefined labels (see chart above) nor previously selected author defined labels (see chart below).&lt;br /&gt;
# The author should add their label(s) to the following chart in alphanumeric order.&lt;br /&gt;
# If an author is uncomfortable with adding a label to the chart, they can PM their request to [http://www.tt-forums.net/ucp.php?i=pm&amp;amp;amp;mode;=compose&amp;amp;amp;action; wallyweb].&lt;br /&gt;
# The chart will be regularly reviewed for duplications.&lt;br /&gt;
# The chart will be regularly edited for alphanumeric sequence.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!colspan=5|AUTHOR DEFINED RECOMMENDATIONS&lt;br /&gt;
|-&lt;br /&gt;
!Label!!Action4 Text!!Description!!Author!!TT-Forums link&lt;br /&gt;
|-&lt;br /&gt;
|EXM1||Example 1||An example label listing||your name here||Forum link goes here&lt;br /&gt;
|-&lt;br /&gt;
|HOUS||TARS Landscape: Village Houses||Houses as Objects||Yoshi||http://www.tt-forums.net/viewtopic.php?t=61442&lt;br /&gt;
|-&lt;br /&gt;
|HTLG||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;G&#039;&#039;&#039;ondola||Gondolas||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTLC||&#039;&#039;&#039;T&#039;&#039;&#039;ARS Mountain &#039;&#039;&#039;L&#039;&#039;&#039;ifts: &#039;&#039;&#039;C&#039;&#039;&#039;hairlift||Chairlifts||Yoshi||&lt;br /&gt;
|-&lt;br /&gt;
|HTPT||&#039;&#039;&#039;T&#039;&#039;&#039;ARS &#039;&#039;&#039;P&#039;&#039;&#039;istes: &#039;&#039;&#039;T&#039;&#039;&#039;rail Blazer||wallyweb||http://www.tt-forums.net/viewtopic.php?f=26&amp;amp;t=56588&lt;br /&gt;
|-&lt;br /&gt;
|NLRA||Dutch Road Furniture: Matrix Activators||Activators for matrix signs for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRF||Dutch Road Furniture||For Dutch road related objects (generic label)||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRM||Dutch Road Furniture: Motorways||Motorway related objects for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|-&lt;br /&gt;
|NLRS||Dutch Road Furniture: Signs and Fingerposts||Road signs and fingerposts for Dutch Road Furniture||FooBar||http://www.tt-forums.net/viewtopic.php?t=56316&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3661</id>
		<title>Action8</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3661"/>
		<updated>2015-04-27T09:13:28Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Used ranges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Define GRFID, Name and Description&lt;br /&gt;
&lt;br /&gt;
There are many new graphic sets available to TTD players. Of course, we need to make sure that we never get sets mixed up. To make sure this will never happen you can set an ID. Another useful feature of Action 8 is the ability to include useful information into the final .grf file. Here, we explain how Action 8 works.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
Like all other pseudo-sprites, Action 8 consists of hexadecimal bits. There is no limitation in the total amount of hexadecimal bits you can use in Action 8. One term does have a limit though. Let&#039;s give an example of what an Action 8 line looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;sprite-number&amp;gt; * &amp;lt;length&amp;gt; 08 &amp;lt;version&amp;gt; &amp;lt;grf-id&amp;gt; &amp;lt;name&amp;gt; &amp;lt;description&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a short overview of what every term means:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Element&#039;&#039;&#039;!![[GRFActionsDetailed|&#039;&#039;&#039;Size&#039;&#039;&#039;]]!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;sprite-number&amp;gt;||dec||A sequential sprite number&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;length&amp;gt;||dec||The total number of bytes in the action&lt;br /&gt;
|-&lt;br /&gt;
|08||B||Action 08&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;version&amp;gt;||B||GRF version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;grf-id&amp;gt;||4*B||A unique ID for your .grf file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||S||A short text containing the name of this set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;description&amp;gt;||S||A longer description of this set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Sprite-number ===&lt;br /&gt;
&lt;br /&gt;
The number of this sprite.&lt;br /&gt;
&lt;br /&gt;
Action 8 has to be one of the first pseudosprites in the .NFO file. It is however valid to have other actions before it, except those that define new sprites or vehicle (etc.) properties.&lt;br /&gt;
&lt;br /&gt;
Actions 6, 7, 9, B, C, D (except [[GRFResourceManagement|resource management]] sprites), 10 and 14 are valid before an action 8.&lt;br /&gt;
&lt;br /&gt;
=== Length ===&lt;br /&gt;
&lt;br /&gt;
The total number of bytes in Action 8.&lt;br /&gt;
&lt;br /&gt;
=== GRF Version ===&lt;br /&gt;
&lt;br /&gt;
This should be the graphics version that your file is written for. This is the version of the [[Version_numbers#GRF_version|GRF format]], not the [[Version_numbers#Version_of_a_specific_NewGRF|version of your GRF]]!&lt;br /&gt;
It is also not the &amp;quot;[[Version_numbers#NFO_version|NFO version]]&amp;quot; you put at the top of &amp;quot;.nfo&amp;quot; files to announce the used syntax for GRFCodec.&lt;br /&gt;
&lt;br /&gt;
Valid values are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Compatibility&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#TTDPatch_version|TTDPatch version]]&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#OpenTTD_version|OpenTTD support]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08||02..08|| - || {{ottd|1.2|r23159}}&lt;br /&gt;
|-&lt;br /&gt;
|07||02..07||2.5 beta 1 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|06||02..06||2.0.1 alpha 13 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|05||02..05||2.0r1 Stable TTDPatch + TTDPatch 2.0.1 alphas up to 12|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|04||02..04||2.0 Stable TTDPatch||{{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|01||00..01||1.9.1 alpha 28 or higher||{{ottd|no}}&lt;br /&gt;
|-&lt;br /&gt;
|00||00||1.9.1 alphas up to 27||{{ottd|no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entries for 00 and 01 are included only for completeness, and to aid with updating existing graphics. They should not be used with new graphics, because they will be incompatible with current TTDPatch and OpenTTD versions. OpenTTD 1.1.0 and later will disable NewGRFs with non-supported GRF versions.&lt;br /&gt;
&lt;br /&gt;
Make sure to set a version number no lower than the minimum version that supports all features which are used by your file.&lt;br /&gt;
&lt;br /&gt;
The compatibility column means how low a version number is supported by the given TTDPatch version, e.g. TTDPatch 2.0r1 supports graphics files with any version from 02 to 05, but not for example 01 or 06.&lt;br /&gt;
&lt;br /&gt;
Version 07 and 08 introduce a few minor semantic changes to some graphics features, i.e. the file will behave slightly differently depending on whether it&#039;s declared as version 06, 07 or 08. These changes are described in more detail in the pages for the features they affect.&lt;br /&gt;
&lt;br /&gt;
=== GRFID ===&lt;br /&gt;
&lt;br /&gt;
This is a series of 4 bytes. It&#039;s a convention to &lt;br /&gt;
* use the first &#039;&#039;&#039;three bytes&#039;&#039;&#039; for the creator&#039;s &#039;&#039;&#039;initials&#039;&#039;&#039; in ASCII code, e.g. 54 57 48 for &amp;quot;TWH&amp;quot;. &lt;br /&gt;
* The last (fourth) byte typically identies which of the author&#039;s sets this is. See the next subsection for grfID ranges that are already in use.&lt;br /&gt;
* Version numbers for NewGRFs are communicated via preceeding [[Action14]]. &lt;br /&gt;
&lt;br /&gt;
In principle, you are free what to use for the GRFID as long as you are sure it is unique, but generally it is best to follow the above guidelines. See the last subsection for locations where to find already used GRFIDs.&lt;br /&gt;
&lt;br /&gt;
Note that GRFIDs starting with FF (i.e. the first byte is FF, such as in FF123456) are reserved for internal purposes and should not be used by regular .grf files. These GRFs can&#039;t be disabled; TTDPatch displays them with a blue flag in the GRF Status Window.&lt;br /&gt;
&lt;br /&gt;
The extra newgrf file, part of OpenTTD base sets, have to have a GRFID starting with FF &amp;quot;OT&amp;quot;.&lt;br /&gt;
See the table below:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!GRFID!!purposes&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 00||n/a&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 01 .. FE FF FF FF||normal NewGRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF 00 00 00 .. FF FF FF FF||reserved&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 00 .. FF &amp;quot;OT&amp;quot; FF&lt;br /&gt;
|extra base GRFs&lt;br /&gt;
{|&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 01|| OpenGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 11|| NoGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTD&amp;quot;|| OpenTTD (extra) base graphics: openttdd.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTN&amp;quot;|| NightGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTT&amp;quot;|| OpenTTD (extra) base graphics: openttd.grf (OpenTTD &amp;gt;= 1.1)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTW&amp;quot;|| OpenTTD (extra) base graphics: openttdw.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTz&amp;quot;|| zBase&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|FF FF FF FF|| TTDPatch (extra) base graphics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used ranges ====&lt;br /&gt;
&lt;br /&gt;
The following table shows ranges of GRFIDs that are in use by several authors of NewGRFs. People choosing new GRFIDs are asked to not use a GRFID that falls within the ranges of one of the following. This list is in no way exhaustive; if you want to claim your own range, please update the table. For legacy reasons there are some broader ranges of GRFIDs reserved by some people. When you want to reserve a broader range than a variation in only the last byte, think twice and consider how long it will take you to write 255 sensible completely different NewGRFs (as the version of a single grf is encoded in the action14, thus a new ID will even hurt and kill your backward compatibility with older versions).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Range (hex)!!ASCII!!Usage&lt;br /&gt;
|-&lt;br /&gt;
|41 4E XX XX||A N _ _||FISH ship set&lt;br /&gt;
|-&lt;br /&gt;
|41 50 XX XX||A P _ _||HEQS (Heavy Equipment Set)&lt;br /&gt;
|-&lt;br /&gt;
|43 41 XX XX||C A _ _||OzTrans; 1st generation Canadian and some North American sets&lt;br /&gt;
|-&lt;br /&gt;
|43 48 XX XX||C H _ _||CHIPS Has Improved Players&#039; Stations&lt;br /&gt;
|-&lt;br /&gt;
|48 57 XX XX||H W _ _||SwissFan91; TARS Swiss themed newobjects&lt;br /&gt;
|-&lt;br /&gt;
|4A 56 XX XX||J V _ _||juzza1; Various Finnish sets&lt;br /&gt;
|-&lt;br /&gt;
|4D 65 XX XX||M e _ _||George; ECS, Long vehicles&lt;br /&gt;
|-&lt;br /&gt;
|4D 47 XX XX||M G _ _||Ammler, #openttdcoop&lt;br /&gt;
|-&lt;br /&gt;
|4E 57 XX XX||N W _ _||Norwegian projects&lt;br /&gt;
|-&lt;br /&gt;
|4F 47 2B XX||O G + _||OpenGFX+ sets&lt;br /&gt;
|-&lt;br /&gt;
|4F 7A XX XX||O z _ _||OzTrans; Various non-Canadian projects&lt;br /&gt;
|-&lt;br /&gt;
|53 43 XX XX||S C _ _||SAC; INFRA projects&lt;br /&gt;
|-&lt;br /&gt;
|57 42 XX XX||W B _ _||wallyweb; NewObjects, Various features, GRF development&lt;br /&gt;
|-&lt;br /&gt;
|6D 62 XX XX||m b _ _||Michael Blunck; DBsetXL, NewStations, MariCo&lt;br /&gt;
|-&lt;br /&gt;
|97 85 XX XX||? ? _ _||OzTrans; Canadian Theme Pack (under development)&lt;br /&gt;
|-&lt;br /&gt;
|97 87 XX XX||? ? _ _||OzTrans; 2nd generation Canadian graphics&lt;br /&gt;
|-&lt;br /&gt;
|F1 25 00 XX||? ? ? _||FIRS Industry Replacement Set&lt;br /&gt;
|-&lt;br /&gt;
|FB FB XX XX||? ? _ _||FooBar; Dutch sets, Transrapid/metro tracks&lt;br /&gt;
|-&lt;br /&gt;
|FF XX XX XX||? _ _ _||System reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used GRFIDs ====&lt;br /&gt;
&lt;br /&gt;
There are several places that have/show lists of GRFIDs that are definitely in use by someone. Absence of a GRFID in any of these lists is not proof that it is not used though.&lt;br /&gt;
&lt;br /&gt;
* [http://bananas.openttd.org/en/newgrf/] Bananas shows the GRFIDs of all currently active NewGRFs that are distributed by the system&lt;br /&gt;
* [http://grfcrawler.tt-forums.net/index.php?do=search&amp;amp;mode=advanced] GRFCrawler allows one to search on GRFIDs of NewGRFs in its system&lt;br /&gt;
* [http://devs.openttd.org/~rubidium/newgrf.html] OpenTTD generates a list that shows all NewGRFs that were ever used in a multiplayer game&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
This short field should contain the name of the set. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The name must be short because it should fit on one line of the [[GRFStatusWindow|GRF Status window]].&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This is a longer description of the set. Typically it contains the name of the author and a copyright notice or other attribution. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The description may be quite long, but should be short enough to fit in the description part of the [[GRFStatusWindow|GRF Status window]], or a part of it may be cut off.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Below is an example of what a real Action 8 pseudo-sprite could look like.&lt;br /&gt;
&lt;br /&gt;
 1 * 43 &#039;&#039;&#039;08&#039;&#039;&#039; 07 &amp;quot;TW&amp;quot; 01 06 &amp;quot;Tutorial Example&amp;quot; 00 &amp;quot;Changes nothing. Author: A kind person&amp;quot; 00&lt;br /&gt;
&lt;br /&gt;
Let&#039;s clarify it bit by bit. In order to understand what the bits say you could use a hexadecimal editor.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Byte&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1||&amp;lt;sprite-number&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|43||&amp;lt;length&amp;gt; of the action in bytes; start counting at 08 (&amp;lt;action&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|08||&amp;lt;action&amp;gt;: sets this pseudo-sprite to function as action 8&lt;br /&gt;
|-&lt;br /&gt;
|07||&amp;lt;version&amp;gt;: GRF format version 7 (this is the version of the used GRF format, not of your GRF)&lt;br /&gt;
|-&lt;br /&gt;
|54 57 01 06||&amp;lt;-grf-id&amp;gt;: ASCII code for TW, then the numbers 1 and 6 to indicate version 6 of TW&#039;s first set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Tutorial...&amp;quot; 00||&amp;lt;name&amp;gt;: Name of the NewGRF&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Changes...&amp;quot; 00||&amp;lt;description&amp;gt;: Description of the NewGRF&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3660</id>
		<title>Action8</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3660"/>
		<updated>2015-04-25T11:05:41Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Used ranges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Define GRFID, Name and Description&lt;br /&gt;
&lt;br /&gt;
There are many new graphic sets available to TTD players. Of course, we need to make sure that we never get sets mixed up. To make sure this will never happen you can set an ID. Another useful feature of Action 8 is the ability to include useful information into the final .grf file. Here, we explain how Action 8 works.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
Like all other pseudo-sprites, Action 8 consists of hexadecimal bits. There is no limitation in the total amount of hexadecimal bits you can use in Action 8. One term does have a limit though. Let&#039;s give an example of what an Action 8 line looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;sprite-number&amp;gt; * &amp;lt;length&amp;gt; 08 &amp;lt;version&amp;gt; &amp;lt;grf-id&amp;gt; &amp;lt;name&amp;gt; &amp;lt;description&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a short overview of what every term means:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Element&#039;&#039;&#039;!![[GRFActionsDetailed|&#039;&#039;&#039;Size&#039;&#039;&#039;]]!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;sprite-number&amp;gt;||dec||A sequential sprite number&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;length&amp;gt;||dec||The total number of bytes in the action&lt;br /&gt;
|-&lt;br /&gt;
|08||B||Action 08&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;version&amp;gt;||B||GRF version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;grf-id&amp;gt;||4*B||A unique ID for your .grf file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||S||A short text containing the name of this set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;description&amp;gt;||S||A longer description of this set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Sprite-number ===&lt;br /&gt;
&lt;br /&gt;
The number of this sprite.&lt;br /&gt;
&lt;br /&gt;
Action 8 has to be one of the first pseudosprites in the .NFO file. It is however valid to have other actions before it, except those that define new sprites or vehicle (etc.) properties.&lt;br /&gt;
&lt;br /&gt;
Actions 6, 7, 9, B, C, D (except [[GRFResourceManagement|resource management]] sprites), 10 and 14 are valid before an action 8.&lt;br /&gt;
&lt;br /&gt;
=== Length ===&lt;br /&gt;
&lt;br /&gt;
The total number of bytes in Action 8.&lt;br /&gt;
&lt;br /&gt;
=== GRF Version ===&lt;br /&gt;
&lt;br /&gt;
This should be the graphics version that your file is written for. This is the version of the [[Version_numbers#GRF_version|GRF format]], not the [[Version_numbers#Version_of_a_specific_NewGRF|version of your GRF]]!&lt;br /&gt;
It is also not the &amp;quot;[[Version_numbers#NFO_version|NFO version]]&amp;quot; you put at the top of &amp;quot;.nfo&amp;quot; files to announce the used syntax for GRFCodec.&lt;br /&gt;
&lt;br /&gt;
Valid values are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Compatibility&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#TTDPatch_version|TTDPatch version]]&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#OpenTTD_version|OpenTTD support]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08||02..08|| - || {{ottd|1.2|r23159}}&lt;br /&gt;
|-&lt;br /&gt;
|07||02..07||2.5 beta 1 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|06||02..06||2.0.1 alpha 13 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|05||02..05||2.0r1 Stable TTDPatch + TTDPatch 2.0.1 alphas up to 12|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|04||02..04||2.0 Stable TTDPatch||{{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|01||00..01||1.9.1 alpha 28 or higher||{{ottd|no}}&lt;br /&gt;
|-&lt;br /&gt;
|00||00||1.9.1 alphas up to 27||{{ottd|no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entries for 00 and 01 are included only for completeness, and to aid with updating existing graphics. They should not be used with new graphics, because they will be incompatible with current TTDPatch and OpenTTD versions. OpenTTD 1.1.0 and later will disable NewGRFs with non-supported GRF versions.&lt;br /&gt;
&lt;br /&gt;
Make sure to set a version number no lower than the minimum version that supports all features which are used by your file.&lt;br /&gt;
&lt;br /&gt;
The compatibility column means how low a version number is supported by the given TTDPatch version, e.g. TTDPatch 2.0r1 supports graphics files with any version from 02 to 05, but not for example 01 or 06.&lt;br /&gt;
&lt;br /&gt;
Version 07 and 08 introduce a few minor semantic changes to some graphics features, i.e. the file will behave slightly differently depending on whether it&#039;s declared as version 06, 07 or 08. These changes are described in more detail in the pages for the features they affect.&lt;br /&gt;
&lt;br /&gt;
=== GRFID ===&lt;br /&gt;
&lt;br /&gt;
This is a series of 4 bytes. It&#039;s a convention to &lt;br /&gt;
* use the first &#039;&#039;&#039;three bytes&#039;&#039;&#039; for the creator&#039;s &#039;&#039;&#039;initials&#039;&#039;&#039; in ASCII code, e.g. 54 57 48 for &amp;quot;TWH&amp;quot;. &lt;br /&gt;
* The last (fourth) byte typically identies which of the author&#039;s sets this is. See the next subsection for grfID ranges that are already in use.&lt;br /&gt;
* Version numbers for NewGRFs are communicated via preceeding [[Action14]]. &lt;br /&gt;
&lt;br /&gt;
In principle, you are free what to use for the GRFID as long as you are sure it is unique, but generally it is best to follow the above guidelines. See the last subsection for locations where to find already used GRFIDs.&lt;br /&gt;
&lt;br /&gt;
Note that GRFIDs starting with FF (i.e. the first byte is FF, such as in FF123456) are reserved for internal purposes and should not be used by regular .grf files. These GRFs can&#039;t be disabled; TTDPatch displays them with a blue flag in the GRF Status Window.&lt;br /&gt;
&lt;br /&gt;
The extra newgrf file, part of OpenTTD base sets, have to have a GRFID starting with FF &amp;quot;OT&amp;quot;.&lt;br /&gt;
See the table below:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!GRFID!!purposes&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 00||n/a&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 01 .. FE FF FF FF||normal NewGRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF 00 00 00 .. FF FF FF FF||reserved&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 00 .. FF &amp;quot;OT&amp;quot; FF&lt;br /&gt;
|extra base GRFs&lt;br /&gt;
{|&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 01|| OpenGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 11|| NoGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTD&amp;quot;|| OpenTTD (extra) base graphics: openttdd.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTN&amp;quot;|| NightGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTT&amp;quot;|| OpenTTD (extra) base graphics: openttd.grf (OpenTTD &amp;gt;= 1.1)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTW&amp;quot;|| OpenTTD (extra) base graphics: openttdw.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTz&amp;quot;|| zBase&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|FF FF FF FF|| TTDPatch (extra) base graphics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used ranges ====&lt;br /&gt;
&lt;br /&gt;
The following table shows ranges of GRFIDs that are in use by several authors of NewGRFs. People choosing new GRFIDs are asked to not use a GRFID that falls within the ranges of one of the following. This list is in no way exhaustive; if you want to claim your own range, please update the table. For legacy reasons there are some broader ranges of GRFIDs reserved by some people. When you want to reserve a broader range than a variation in only the last byte, think twice and consider how long it will take you to write 255 sensible completely different NewGRFs (as the version of a single grf is encoded in the action14, thus a new ID will even hurt and kill your backward compatibility with older versions).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Range (hex)!!ASCII!!Usage&lt;br /&gt;
|-&lt;br /&gt;
|41 4E XX XX||A N _ _||FISH ship set&lt;br /&gt;
|-&lt;br /&gt;
|41 50 XX XX||A P _ _||HEQS (Heavy Equipment Set)&lt;br /&gt;
|-&lt;br /&gt;
|43 41 XX XX||C A _ _||OzTrans; 1st generation Canadian and some North American sets&lt;br /&gt;
|-&lt;br /&gt;
|43 48 XX XX||C H _ _||CHIPS Has Improved Players&#039; Stations&lt;br /&gt;
|-&lt;br /&gt;
|4A 56 XX XX||J V _ _||juzza1; Various Finnish sets&lt;br /&gt;
|-&lt;br /&gt;
|4D 65 XX XX||M e _ _||George; ECS, Long vehicles&lt;br /&gt;
|-&lt;br /&gt;
|4D 47 XX XX||M G _ _||Ammler, #openttdcoop&lt;br /&gt;
|-&lt;br /&gt;
|4E 57 XX XX||N W _ _||Norwegian projects&lt;br /&gt;
|-&lt;br /&gt;
|4F 47 2B XX||O G + _||OpenGFX+ sets&lt;br /&gt;
|-&lt;br /&gt;
|4F 7A XX XX||O z _ _||OzTrans; Various non-Canadian projects&lt;br /&gt;
|-&lt;br /&gt;
|53 43 XX XX||S C _ _||SAC; INFRA projects&lt;br /&gt;
|-&lt;br /&gt;
|57 42 XX XX||W B _ _||wallyweb; NewObjects, Various features, GRF development&lt;br /&gt;
|-&lt;br /&gt;
|6D 62 XX XX||m b _ _||Michael Blunck; DBsetXL, NewStations, MariCo&lt;br /&gt;
|-&lt;br /&gt;
|97 85 XX XX||? ? _ _||OzTrans; Canadian Theme Pack (under development)&lt;br /&gt;
|-&lt;br /&gt;
|97 87 XX XX||? ? _ _||OzTrans; 2nd generation Canadian graphics&lt;br /&gt;
|-&lt;br /&gt;
|F1 25 00 XX||? ? ? _||FIRS Industry Replacement Set&lt;br /&gt;
|-&lt;br /&gt;
|FB FB XX XX||? ? _ _||FooBar; Dutch sets, Transrapid/metro tracks&lt;br /&gt;
|-&lt;br /&gt;
|FF XX XX XX||? _ _ _||System reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used GRFIDs ====&lt;br /&gt;
&lt;br /&gt;
There are several places that have/show lists of GRFIDs that are definitely in use by someone. Absence of a GRFID in any of these lists is not proof that it is not used though.&lt;br /&gt;
&lt;br /&gt;
* [http://bananas.openttd.org/en/newgrf/] Bananas shows the GRFIDs of all currently active NewGRFs that are distributed by the system&lt;br /&gt;
* [http://grfcrawler.tt-forums.net/index.php?do=search&amp;amp;mode=advanced] GRFCrawler allows one to search on GRFIDs of NewGRFs in its system&lt;br /&gt;
* [http://devs.openttd.org/~rubidium/newgrf.html] OpenTTD generates a list that shows all NewGRFs that were ever used in a multiplayer game&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
This short field should contain the name of the set. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The name must be short because it should fit on one line of the [[GRFStatusWindow|GRF Status window]].&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This is a longer description of the set. Typically it contains the name of the author and a copyright notice or other attribution. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The description may be quite long, but should be short enough to fit in the description part of the [[GRFStatusWindow|GRF Status window]], or a part of it may be cut off.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Below is an example of what a real Action 8 pseudo-sprite could look like.&lt;br /&gt;
&lt;br /&gt;
 1 * 43 &#039;&#039;&#039;08&#039;&#039;&#039; 07 &amp;quot;TW&amp;quot; 01 06 &amp;quot;Tutorial Example&amp;quot; 00 &amp;quot;Changes nothing. Author: A kind person&amp;quot; 00&lt;br /&gt;
&lt;br /&gt;
Let&#039;s clarify it bit by bit. In order to understand what the bits say you could use a hexadecimal editor.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Byte&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1||&amp;lt;sprite-number&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|43||&amp;lt;length&amp;gt; of the action in bytes; start counting at 08 (&amp;lt;action&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|08||&amp;lt;action&amp;gt;: sets this pseudo-sprite to function as action 8&lt;br /&gt;
|-&lt;br /&gt;
|07||&amp;lt;version&amp;gt;: GRF format version 7 (this is the version of the used GRF format, not of your GRF)&lt;br /&gt;
|-&lt;br /&gt;
|54 57 01 06||&amp;lt;-grf-id&amp;gt;: ASCII code for TW, then the numbers 1 and 6 to indicate version 6 of TW&#039;s first set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Tutorial...&amp;quot; 00||&amp;lt;name&amp;gt;: Name of the NewGRF&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Changes...&amp;quot; 00||&amp;lt;description&amp;gt;: Description of the NewGRF&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3522</id>
		<title>Action8</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action8&amp;diff=3522"/>
		<updated>2014-06-24T10:14:53Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: /* Used ranges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Define GRFID, Name and Description&lt;br /&gt;
&lt;br /&gt;
There are many new graphic sets available to TTD players. Of course, we need to make sure that we never get sets mixed up. To make sure this will never happen you can set an ID. Another useful feature of Action 8 is the ability to include useful information into the final .grf file. Here, we explain how Action 8 works.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
Like all other pseudo-sprites, Action 8 consists of hexadecimal bits. There is no limitation in the total amount of hexadecimal bits you can use in Action 8. One term does have a limit though. Let&#039;s give an example of what an Action 8 line looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;sprite-number&amp;gt; * &amp;lt;length&amp;gt; 08 &amp;lt;version&amp;gt; &amp;lt;grf-id&amp;gt; &amp;lt;name&amp;gt; &amp;lt;description&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a short overview of what every term means:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Element&#039;&#039;&#039;!![[GRFActionsDetailed|&#039;&#039;&#039;Size&#039;&#039;&#039;]]!!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;sprite-number&amp;gt;||dec||A sequential sprite number&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;length&amp;gt;||dec||The total number of bytes in the action&lt;br /&gt;
|-&lt;br /&gt;
|08||B||Action 08&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;version&amp;gt;||B||GRF version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;grf-id&amp;gt;||4*B||A unique ID for your .grf file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||S||A short text containing the name of this set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;description&amp;gt;||S||A longer description of this set&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Descriptions ==&lt;br /&gt;
&lt;br /&gt;
=== Sprite-number ===&lt;br /&gt;
&lt;br /&gt;
The number of this sprite.&lt;br /&gt;
&lt;br /&gt;
Action 8 has to be one of the first pseudosprites in the .NFO file. It is however valid to have other actions before it, except those that define new sprites or vehicle (etc.) properties.&lt;br /&gt;
&lt;br /&gt;
Actions 6, 7, 9, B, C, D (except [[GRFResourceManagement|resource management]] sprites), 10 and 14 are valid before an action 8.&lt;br /&gt;
&lt;br /&gt;
=== Length ===&lt;br /&gt;
&lt;br /&gt;
The total number of bytes in Action 8.&lt;br /&gt;
&lt;br /&gt;
=== GRF Version ===&lt;br /&gt;
&lt;br /&gt;
This should be the graphics version that your file is written for. This is the version of the [[Version_numbers#GRF_version|GRF format]], not the [[Version_numbers#Version_of_a_specific_NewGRF|version of your GRF]]!&lt;br /&gt;
It is also not the &amp;quot;[[Version_numbers#NFO_version|NFO version]]&amp;quot; you put at the top of &amp;quot;.nfo&amp;quot; files to announce the used syntax for GRFCodec.&lt;br /&gt;
&lt;br /&gt;
Valid values are:&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Value&#039;&#039;&#039;!!&#039;&#039;&#039;Compatibility&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#TTDPatch_version|TTDPatch version]]&#039;&#039;&#039;!!&#039;&#039;&#039;[[Version_numbers#OpenTTD_version|OpenTTD support]]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|08||02..08|| - || {{ottd|1.2|r23159}}&lt;br /&gt;
|-&lt;br /&gt;
|07||02..07||2.5 beta 1 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|06||02..06||2.0.1 alpha 13 or higher|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|05||02..05||2.0r1 Stable TTDPatch + TTDPatch 2.0.1 alphas up to 12|| {{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|04||02..04||2.0 Stable TTDPatch||{{ottd|0.6}}&lt;br /&gt;
|-&lt;br /&gt;
|01||00..01||1.9.1 alpha 28 or higher||{{ottd|no}}&lt;br /&gt;
|-&lt;br /&gt;
|00||00||1.9.1 alphas up to 27||{{ottd|no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entries for 00 and 01 are included only for completeness, and to aid with updating existing graphics. They should not be used with new graphics, because they will be incompatible with current TTDPatch and OpenTTD versions. OpenTTD 1.1.0 and later will disable NewGRFs with non-supported GRF versions.&lt;br /&gt;
&lt;br /&gt;
Make sure to set a version number no lower than the minimum version that supports all features which are used by your file.&lt;br /&gt;
&lt;br /&gt;
The compatibility column means how low a version number is supported by the given TTDPatch version, e.g. TTDPatch 2.0r1 supports graphics files with any version from 02 to 05, but not for example 01 or 06.&lt;br /&gt;
&lt;br /&gt;
Version 07 and 08 introduce a few minor semantic changes to some graphics features, i.e. the file will behave slightly differently depending on whether it&#039;s declared as version 06, 07 or 08. These changes are described in more detail in the pages for the features they affect.&lt;br /&gt;
&lt;br /&gt;
=== GRFID ===&lt;br /&gt;
&lt;br /&gt;
This is a series of 4 bytes. It&#039;s a convention to &lt;br /&gt;
* use the first &#039;&#039;&#039;three bytes&#039;&#039;&#039; for the creator&#039;s &#039;&#039;&#039;initials&#039;&#039;&#039; in ASCII code, e.g. 54 57 48 for &amp;quot;TWH&amp;quot;. &lt;br /&gt;
* The last (fourth) byte typically identies which of the author&#039;s sets this is. See the next subsection for grfID ranges that are already in use.&lt;br /&gt;
* Version numbers for NewGRFs are communicated via preceeding [[Action14]]. &lt;br /&gt;
&lt;br /&gt;
In principle, you are free what to use for the GRFID as long as you are sure it is unique, but generally it is best to follow the above guidelines. See the last subsection for locations where to find already used GRFIDs.&lt;br /&gt;
&lt;br /&gt;
Note that GRFIDs starting with FF (i.e. the first byte is FF, such as in FF123456) are reserved for internal purposes and should not be used by regular .grf files. These GRFs can&#039;t be disabled; TTDPatch displays them with a blue flag in the GRF Status Window.&lt;br /&gt;
&lt;br /&gt;
The extra newgrf file, part of OpenTTD base sets, have to have a GRFID starting with FF &amp;quot;OT&amp;quot;.&lt;br /&gt;
See the table below:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!GRFID!!purposes&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 00||n/a&lt;br /&gt;
|-&lt;br /&gt;
|00 00 00 01 .. FE FF FF FF||normal NewGRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF 00 00 00 .. FF FF FF FF||reserved&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 00 .. FF &amp;quot;OT&amp;quot; FF||extra base GRFs&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OT&amp;quot; 01|| OpenGFX&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTD&amp;quot;|| OpenTTD (extra) base graphics: openttdd.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTT&amp;quot;|| OpenTTD (extra) base graphics: openttd.grf (OpenTTD &amp;gt;= 1.1)&lt;br /&gt;
|-&lt;br /&gt;
|FF &amp;quot;OTW&amp;quot;|| OpenTTD (extra) base graphics: openttdw.grf (OpenTTD 0.6 - 1.0)&lt;br /&gt;
|-&lt;br /&gt;
|FF FF FF FF|| TTDPatch (extra) base graphics&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used ranges ====&lt;br /&gt;
&lt;br /&gt;
The following table shows ranges of GRFIDs that are in use by several authors of NewGRFs. People choosing new GRFIDs are asked to not use a GRFID that falls within the ranges of one of the following. This list is in no way exhaustive; if you want to claim your own range, please update the table. For legacy reasons there are some broader ranges of GRFIDs reserved by some people. When you want to reserve a broader range than a variation in only the last byte, think twice and consider how long it will take you to write 255 sensible completely different NewGRFs (as the version of a single grf is encoded in the action14, thus a new ID will even hurt and kill your backward compatibility with older versions).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Range (hex)!!ASCII!!Usage&lt;br /&gt;
|-&lt;br /&gt;
|41 4E XX XX||A N _ _||FISH ship set&lt;br /&gt;
|-&lt;br /&gt;
|41 50 XX XX||A P _ _||HEQS (Heavy Equipment Set)&lt;br /&gt;
|-&lt;br /&gt;
|43 41 XX XX||C A _ _||OzTrans; older versions of Canadian and some North American sets&lt;br /&gt;
|-&lt;br /&gt;
|43 48 XX XX||C H _ _||CHIPS Has Improved Players&#039; Stations&lt;br /&gt;
|-&lt;br /&gt;
|44 44 XX XX||D D _ _||Pikkabird; UKRS, NARS, Av8&lt;br /&gt;
|-&lt;br /&gt;
|4A 56 XX XX||J V _ _||juzza1; Various Finnish sets&lt;br /&gt;
|-&lt;br /&gt;
|4F 47 2B XX||O G + _||OpenGFX+ sets&lt;br /&gt;
|-&lt;br /&gt;
|4D 65 XX XX||M e _ _||George; ECS, Long vehicles&lt;br /&gt;
|-&lt;br /&gt;
|57 42 XX XX||W B _ _||wallyweb; NewObjects, Various features, GRF development&lt;br /&gt;
|-&lt;br /&gt;
|6D 62 XX XX||m b _ _||Michael Blunck; DBsetXL, NewStations, MariCo&lt;br /&gt;
|-&lt;br /&gt;
|97 87 XX XX||? ? _ _||OzTrans; newer versions of Canadian sets&lt;br /&gt;
|-&lt;br /&gt;
|F1 25 00 XX||? ? ? _||FIRS Industry Replacement Set&lt;br /&gt;
|-&lt;br /&gt;
|FB FB XX XX||? ? _ _||FooBar; Dutch sets, Transrapid/metro tracks&lt;br /&gt;
|-&lt;br /&gt;
|FF XX XX XX||? _ _ _||System reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Used GRFIDs ====&lt;br /&gt;
&lt;br /&gt;
There are several places that have/show lists of GRFIDs that are definitely in use by someone. Absence of a GRFID in any of these lists is not proof that it is not used though.&lt;br /&gt;
&lt;br /&gt;
* [http://bananas.openttd.org/en/newgrf/] Bananas shows the GRFIDs of all currently active NewGRFs that are distributed by the system&lt;br /&gt;
* [http://grfcrawler.tt-forums.net/index.php?do=search&amp;amp;mode=advanced] GRFCrawler allows one to search on GRFIDs of NewGRFs in its system&lt;br /&gt;
* [http://devs.openttd.org/~rubidium/newgrf.html] OpenTTD generates a list that shows all NewGRFs that were ever used in a multiplayer game&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
This short field should contain the name of the set. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The name must be short because it should fit on one line of the [[GRFStatusWindow|GRF Status window]].&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This is a longer description of the set. Typically it contains the name of the author and a copyright notice or other attribution. See [[GRFActionsDetailed#Strings|GRFActionsDetailed]] for instructions to generate the necessary byte codes, and for restrictions on what characters you may use.&lt;br /&gt;
The description may be quite long, but should be short enough to fit in the description part of the [[GRFStatusWindow|GRF Status window]], or a part of it may be cut off.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Below is an example of what a real Action 8 pseudo-sprite could look like.&lt;br /&gt;
&lt;br /&gt;
 1 * 43 &#039;&#039;&#039;08&#039;&#039;&#039; 07 &amp;quot;TW&amp;quot; 01 06 &amp;quot;Tutorial Example&amp;quot; 00 &amp;quot;Changes nothing. Author: A kind person&amp;quot; 00&lt;br /&gt;
&lt;br /&gt;
Let&#039;s clarify it bit by bit. In order to understand what the bits say you could use a hexadecimal editor.&lt;br /&gt;
&lt;br /&gt;
{| |-&lt;br /&gt;
!&#039;&#039;&#039;Byte&#039;&#039;&#039;!!&#039;&#039;&#039;Meaning&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|1||&amp;lt;sprite-number&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|43||&amp;lt;length&amp;gt; of the action in bytes; start counting at 08 (&amp;lt;action&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|08||&amp;lt;action&amp;gt;: sets this pseudo-sprite to function as action 8&lt;br /&gt;
|-&lt;br /&gt;
|07||&amp;lt;version&amp;gt;: GRF format version 7 (this is the version of the used GRF format, not of your GRF)&lt;br /&gt;
|-&lt;br /&gt;
|54 57 01 06||&amp;lt;-grf-id&amp;gt;: ASCII code for TW, then the numbers 1 and 6 to indicate version 6 of TW&#039;s first set&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Tutorial...&amp;quot; 00||&amp;lt;name&amp;gt;: Name of the NewGRF&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Changes...&amp;quot; 00||&amp;lt;description&amp;gt;: Description of the NewGRF&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=947</id>
		<title>ObjectLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=947"/>
		<updated>2010-12-28T06:41:25Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Object labels=&lt;br /&gt;
&lt;br /&gt;
Defining Object Class Label Recommendations&lt;br /&gt;
&lt;br /&gt;
{maketoc}&lt;br /&gt;
&lt;br /&gt;
==Recommendations - Predefined==&lt;br /&gt;
&lt;br /&gt;
1. Predefined labels are best used for single objects that are not part of a comprehensive set&lt;br /&gt;
&lt;br /&gt;
2. It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
&lt;br /&gt;
3. A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
&lt;br /&gt;
4. To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
&lt;br /&gt;
5. While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
&lt;br /&gt;
6. Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
||&amp;lt;center&amp;gt;PREDEFINED RECOMMENDATIONS&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Label|&amp;lt;center&amp;gt;Action4 Text&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TTDX|&amp;lt;center&amp;gt;Default*TTDX&amp;lt;/center&amp;gt;|Transport Tycoon&#039;s copy-written objects - lighthouse, communication tower, rocks, etc.&lt;br /&gt;
&lt;br /&gt;
OTTD|&amp;lt;center&amp;gt;Default*OpenTTD&amp;lt;/center&amp;gt;|OpenGFX objects - lighthouse, communication tower, rocks, etc.&lt;br /&gt;
&lt;br /&gt;
STRU|&amp;lt;center&amp;gt;Structures&amp;lt;/center&amp;gt;|Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
&lt;br /&gt;
INFR|&amp;lt;center&amp;gt;Infrastructure&amp;lt;/center&amp;gt;| - light poles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
&lt;br /&gt;
BLDG|&amp;lt;center&amp;gt;Buildings&amp;lt;/center&amp;gt;|Normally accommodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
&lt;br /&gt;
NATR|&amp;lt;center&amp;gt;Natural objects&amp;lt;/center&amp;gt;| - caves, coral reefs, swamps, etc.&lt;br /&gt;
&lt;br /&gt;
PARK|&amp;lt;center&amp;gt;Public areas&amp;lt;/center&amp;gt;|Normally accommodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
&lt;br /&gt;
ARTF|&amp;lt;center&amp;gt;Artifacts&amp;lt;/center&amp;gt;|They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
&lt;br /&gt;
MISC|&amp;lt;center&amp;gt;Miscellaneous&amp;lt;/center&amp;gt;|For the author who is unable to accommodate his/her object under any of the previous labels.||&lt;br /&gt;
&lt;br /&gt;
==Recommendations - Author defined==&lt;br /&gt;
&lt;br /&gt;
1. Author defined labels are best used for comprehensive object sets that consist of several obviously related objects.&lt;br /&gt;
&lt;br /&gt;
2. Each label must consist of four (4) alphanumeric characters.&lt;br /&gt;
&lt;br /&gt;
3. To prevent menu confusion, new labels should be unique and should not duplicate predefined labels (see chart above) nor previously selected author defined labels (see chart below).&lt;br /&gt;
&lt;br /&gt;
4. The author should add their label(s) to the following chart in alphanumeric order.&lt;br /&gt;
&lt;br /&gt;
5. If an author is uncomfortable with adding a label to the chart, they can PM their request to [http://www.tt-forums.net/ucp.php?i=pm&amp;amp;amp;mode;=compose&amp;amp;amp;action;|wallyweb].&lt;br /&gt;
&lt;br /&gt;
6. The chart will be regularly reviewed for duplications.&lt;br /&gt;
&lt;br /&gt;
7. The chart will be regularly edited for alphanumeric sequence.&lt;br /&gt;
&lt;br /&gt;
||&amp;lt;center&amp;gt;AUTHOR DEFINED RECOMMENDATIONS&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Label|&amp;lt;center&amp;gt;Action4 Text&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Author&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;tt-forums link&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EXM1|&amp;lt;center&amp;gt;Example 1&amp;lt;/center&amp;gt;|An example label listing|your name here|Forum link goes here&lt;br /&gt;
&lt;br /&gt;
EXM2|&amp;lt;center&amp;gt;Example 2&amp;lt;/center&amp;gt;|Another example label listing|your name here|Forum link goes here||&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=948</id>
		<title>ObjectLabels</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=ObjectLabels&amp;diff=948"/>
		<updated>2010-12-28T06:24:54Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Object labels=&lt;br /&gt;
&lt;br /&gt;
Defining Object Class Label Recommendations&lt;br /&gt;
&lt;br /&gt;
{maketoc}&lt;br /&gt;
&lt;br /&gt;
==Recommendations - Predefined==&lt;br /&gt;
&lt;br /&gt;
1. Predefined labels are best used for single objects that are not part of a comprehensive set&lt;br /&gt;
&lt;br /&gt;
2. It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
&lt;br /&gt;
3. A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
&lt;br /&gt;
4. To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
&lt;br /&gt;
5. While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
&lt;br /&gt;
6. Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
||&amp;lt;center&amp;gt;PREDEFINED RECOMMENDATIONS&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Label|&amp;lt;center&amp;gt;Action4 Text&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TTDX|&amp;lt;center&amp;gt;Default*TTDX&amp;lt;/center&amp;gt;|Transport Tycoon&#039;s copy-written objects - lighthouse, communication tower, rocks, etc.&lt;br /&gt;
&lt;br /&gt;
OTTD|&amp;lt;center&amp;gt;Default*OpenTTD&amp;lt;/center&amp;gt;|OpenGFX objects - lighthouse, communication tower, rocks, etc.&lt;br /&gt;
&lt;br /&gt;
STRU|&amp;lt;center&amp;gt;Structures&amp;lt;/center&amp;gt;|Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
&lt;br /&gt;
INFR|&amp;lt;center&amp;gt;Infrastructure&amp;lt;/center&amp;gt;| - light poles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
&lt;br /&gt;
BLDG|&amp;lt;center&amp;gt;Buildings&amp;lt;/center&amp;gt;|Normally accommodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
&lt;br /&gt;
NATR|&amp;lt;center&amp;gt;Natural objects&amp;lt;/center&amp;gt;| - caves, coral reefs, swamps, etc.&lt;br /&gt;
&lt;br /&gt;
PARK|&amp;lt;center&amp;gt;Public areas&amp;lt;/center&amp;gt;|Normally accommodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
&lt;br /&gt;
ARTF|&amp;lt;center&amp;gt;Artifacts&amp;lt;/center&amp;gt;|They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
&lt;br /&gt;
MISC|&amp;lt;center&amp;gt;Miscellaneous&amp;lt;/center&amp;gt;|For the author who is unable to accommodate his/her object under any of the previous labels.||&lt;br /&gt;
&lt;br /&gt;
==Recommendations - Author defined==&lt;br /&gt;
&lt;br /&gt;
1. Author defined labels are best used for comprehensive object sets that consist of several obviously related objects.&lt;br /&gt;
&lt;br /&gt;
2. Each label must consist of four (4) alphanumeric characters.&lt;br /&gt;
&lt;br /&gt;
3. To prevent menu confusion, new labels should be unique and should not duplicate predefined labels (see chart above) nor previously selected author defined labels (see chart below).&lt;br /&gt;
&lt;br /&gt;
4. The author should add their label(s) to the following chart in alphanumeric order.&lt;br /&gt;
&lt;br /&gt;
5. If an author is uncomfortable with adding a label to the chart, they can PM their request to [http://www.tt-forums.net/ucp.php?i=pm&amp;amp;amp;mode;=compose&amp;amp;amp;action;|wallyweb].&lt;br /&gt;
&lt;br /&gt;
6. The chart will be regularly reviewed for duplications.&lt;br /&gt;
&lt;br /&gt;
7. The chart will be regularly edited for alphanumeric sequence.&lt;br /&gt;
&lt;br /&gt;
||&amp;lt;center&amp;gt;USER DEFINED RECOMMENDATIONS&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Label|&amp;lt;center&amp;gt;Action4 Text&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Author&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;tt-forums link&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EXM1|&amp;lt;center&amp;gt;Example 1&amp;lt;/center&amp;gt;|An example label listing|your name here|Forum link goes here&lt;br /&gt;
&lt;br /&gt;
EXM2|&amp;lt;center&amp;gt;Example 2&amp;lt;/center&amp;gt;|Another example label listing|your name here|Forum link goes here||&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Objects&amp;diff=132</id>
		<title>Action0/Objects</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Objects&amp;diff=132"/>
		<updated>2010-12-26T20:53:31Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Action 0 properties for new objects&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Action 0 - Properties for new objects=&lt;br /&gt;
&lt;br /&gt;
Defining properties of new objects.&lt;br /&gt;
&lt;br /&gt;
{maketoc}&lt;br /&gt;
&lt;br /&gt;
Unlike vehicles or new stations, most new objects have no real equivalent in TTD.&lt;br /&gt;
&lt;br /&gt;
The IDs are therefore free to be chosen and will in fact be allocated automatically by the patch. In action 0, you only specify IDs relative to the set, i.e. the ID of the first object type is 00, the second object type is 01 and so on. In total, each game can only have 255 object IDs for all active grf files.&lt;br /&gt;
&lt;br /&gt;
The property you &#039;&#039;&#039;must&#039;&#039;&#039; set for each object ID is 08 (in addition to defining an action 3 for it). Also, all object IDs must get their classes in the right order, starting from ID 00 onwards.&lt;br /&gt;
&lt;br /&gt;
-=Properties=-&lt;br /&gt;
&lt;br /&gt;
||Number|Version|Size|Description&lt;br /&gt;
&lt;br /&gt;
08|a|D|Class label, see below&lt;br /&gt;
&lt;br /&gt;
09|a|W|Text ID for class&lt;br /&gt;
&lt;br /&gt;
0A|a|W|Text ID for this object&lt;br /&gt;
&lt;br /&gt;
0B|a|B|[[Action0General#Climate_availability|Climate availability]]&lt;br /&gt;
&lt;br /&gt;
0C|a|B|Byte representing size, see below&lt;br /&gt;
&lt;br /&gt;
0D|a|B|Object build cost factor (sets object removal cost factor as well)&lt;br /&gt;
&lt;br /&gt;
0E|a|D|Introduction date, see below&lt;br /&gt;
&lt;br /&gt;
0F|a|D|End of life date, see below&lt;br /&gt;
&lt;br /&gt;
10|a|W|Object flags, see below&lt;br /&gt;
&lt;br /&gt;
11|b|W|Animation information&lt;br /&gt;
&lt;br /&gt;
12|b|B|Animation speed&lt;br /&gt;
&lt;br /&gt;
13|b|W|Animation triggers&lt;br /&gt;
&lt;br /&gt;
14|b|B|Object removal cost factor (set after object build cost factor)&lt;br /&gt;
&lt;br /&gt;
15|b|W|Callback flags, see below&lt;br /&gt;
&lt;br /&gt;
16|b|B|Height of the building&lt;br /&gt;
&lt;br /&gt;
17|c|B|Number of object views&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
Check [http://pics.lakie.net/newObject-ActionStructure.png|Lakie&#039;s Graphical Representation of the newObject Specifications|nocache]&lt;br /&gt;
&lt;br /&gt;
The specifications of NewObjects are available since OpenTTD r20670 in TTDPatch since r2340&lt;br /&gt;
&lt;br /&gt;
-=Comments=-&lt;br /&gt;
&lt;br /&gt;
==Object class (08)==&lt;br /&gt;
&lt;br /&gt;
Class labels are unique identifiers composed of the letters A-Z and/or the numbers 0-9, &amp;amp;nbsp;analoguous to [[Action0Stations#Station_class_08_|station class labels]].&lt;br /&gt;
&lt;br /&gt;
Their main use is to combine objects into classes and make them available by the top dropdown list in the object construction window.&lt;br /&gt;
&lt;br /&gt;
Unlike for stations, there is no default class for objects. Set authors have to specify their [[ObjectLabels|own labels]], although it is strongly recommended to follow a general scheme to try to avoid confusion.&lt;br /&gt;
&lt;br /&gt;
Class IDs must be set before any other property.&lt;br /&gt;
&lt;br /&gt;
==Object class text ID (09)==&lt;br /&gt;
&lt;br /&gt;
The text ID for this class (word value). This textid should be either a TTD textid or a D4xx textid (set via D0xx in action4).&lt;br /&gt;
&lt;br /&gt;
When specifying an object, you don&#039;t need to set a class name again if you already did for another one with the same class.&lt;br /&gt;
&lt;br /&gt;
==Object text ID (0A)==&lt;br /&gt;
&lt;br /&gt;
The text ID for the object for query and selection (word value). Same requirements as for property09.&lt;br /&gt;
&lt;br /&gt;
==Object size (0C)==&lt;br /&gt;
&lt;br /&gt;
The object size up to 15x15 tiles.&lt;br /&gt;
&lt;br /&gt;
This byte value is divided into two nibbles. The first defines the size in y direction and the second defines the size in x (i.e., stored as YX).&lt;br /&gt;
&lt;br /&gt;
Note that any value lower than 0x11 will be rejected.&lt;br /&gt;
&lt;br /&gt;
==Build Cost (0D)==&lt;br /&gt;
&lt;br /&gt;
The build cost multiplier. This is multiplied by the number of tiles for evaluation of construction and removal costs of an object.&lt;br /&gt;
&lt;br /&gt;
==Introduction date (0E)==&lt;br /&gt;
&lt;br /&gt;
Introduction date of an object, in days since the year 0. This takes account of leap years; divisible by 4, but not 100 unless 400. A start date of 1920-01-01 is obtained with a value of 701265 (51 B3 0A 00). In TTDPatch anything before 1920 is considered to be always available, and it should allow for objects to work past 2044, the date is also the very first date you can build the object.&lt;br /&gt;
&lt;br /&gt;
==End of life date (0F)==&lt;br /&gt;
&lt;br /&gt;
Last year an object can be build, in days since the year 0. Same requirements as above. Also note that it must be a minimum of a year (365 days) after the introduction date or TTDPatch will ignore it.&lt;br /&gt;
&lt;br /&gt;
==Object flags (10)==&lt;br /&gt;
&lt;br /&gt;
The following flags control object behaviour and are cached for built objects, so changing these flags will have no effect on already constructed objects.&lt;br /&gt;
&lt;br /&gt;
||Bit|Value|Version|Meaning&lt;br /&gt;
&lt;br /&gt;
0|1|a|Only Available in the scenario editor (1)&lt;br /&gt;
&lt;br /&gt;
1|2|a|Irremovable (2)&lt;br /&gt;
&lt;br /&gt;
2|4|a|Anything Can Remove (owned land behaviour)&lt;br /&gt;
&lt;br /&gt;
3|8|a|Allow construction of the object on water&lt;br /&gt;
&lt;br /&gt;
4|16|a|Removal cost is actually income (owned land behaviour)&lt;br /&gt;
&lt;br /&gt;
5|32|a|Do not display foundations if on a slope&lt;br /&gt;
&lt;br /&gt;
6|64|a|Object has animation (3)&lt;br /&gt;
&lt;br /&gt;
7|128|a|Only available during game play (1)&lt;br /&gt;
&lt;br /&gt;
8|256|b|Allows 2cc mapping for objects instead of the default 1cc&lt;br /&gt;
&lt;br /&gt;
9|512|c|Disallows construction on land (also has bit 3 behaviour)&lt;br /&gt;
&lt;br /&gt;
10|1024|c|Draws the water under the object (4)&lt;br /&gt;
&lt;br /&gt;
11|2048|d|Allow bridge over the object taking the building height into account (5)&lt;br /&gt;
&lt;br /&gt;
12|4096|d|Random bits in the &amp;amp;quot;next animation frame&amp;amp;quot; callback||&lt;br /&gt;
&lt;br /&gt;
c - TTDPatch r2331&lt;br /&gt;
&lt;br /&gt;
(1) - Note that bits 0 and 7 are incompatible and setting both will make an object completely unavailable.&lt;br /&gt;
&lt;br /&gt;
(2) - Object cannot be removed through normal dynamite, control must be held and the removal cost will be multiplied by 25 (this is the usual behaviour for most class A objects in TTDPatch).&lt;br /&gt;
&lt;br /&gt;
(3) - Setting this flag will allow the object&#039;s animation counter to be increased, must be set if you plan to make use of animations. Like stations you must enable animation on a per tile basis by means of the &amp;amp;quot;built tile&amp;amp;quot; trigger and callback 159.&lt;br /&gt;
&lt;br /&gt;
(4) - Only applies when built on top of a water tile, also replaces the ground tile of the object completely. (Does not work when object built on sloped water tiles).&lt;br /&gt;
&lt;br /&gt;
(5) - Only applies to OpenTTD. TTDPatch does not support bridges over objects yet.&lt;br /&gt;
&lt;br /&gt;
==Animation information (11)==&lt;br /&gt;
&lt;br /&gt;
The low byte specifies the number of animation frames minus one, so 00 means 1 frame, 01 means 2 frames etc. The maximum number of frames is 256, although you can have some problems if your animation exceeds FD (253) frames. The high byte must be 0 for non-looping animations and 01 for looping animations. Every other value is reserved for future use. In addition, if the whole word contains FFFF, animation is turned off for this object (this is the default value).&lt;br /&gt;
&lt;br /&gt;
Since you can&#039;t have properties for individual object tiles, this property applies for every tile of the object. If you don&#039;t want to animate some tiles, you should check the current position during [[Callbacks#Animation_control_1B_25_140_|callback 159]] and return FD if the current tile doesn&#039;t need to be animated. If you also need animations of different length per tile, you&#039;ll have to use [[Callbacks#Next_animation_frame_1A_26_141_|callback 158]] for that.&lt;br /&gt;
&lt;br /&gt;
==Animation speed (12)==&lt;br /&gt;
&lt;br /&gt;
The meaning is the same as for [[Action0Houses#Animation_Speed_1B_|house property 1B]], but the lower limit is 0 instead of 2, so the fastest possible animation changes frames every game tick (27ms). The default value is 0.&lt;br /&gt;
&lt;br /&gt;
==Animation triggers (13)==&lt;br /&gt;
&lt;br /&gt;
This is a bit mask of events that should trigger [[Callbacks#Animation_control_1B_25_140_|callback 159]], allowing to change the animation state&lt;br /&gt;
&lt;br /&gt;
||Bit|Value|Meaning|Happens on&lt;br /&gt;
&lt;br /&gt;
0|1|Object is built|all tiles&lt;br /&gt;
&lt;br /&gt;
1|2|Periodic tile loop|single tile&lt;br /&gt;
&lt;br /&gt;
2|4|Synchronised periodic tile loop|all tiles||&lt;br /&gt;
&lt;br /&gt;
The synchronised periodic tile loop is called directly after the (unsynchronised) periodic tile loop of the northern tile.&lt;br /&gt;
&lt;br /&gt;
==Object removal cost factor (14)==&lt;br /&gt;
&lt;br /&gt;
Cost factor for the removal of an object. This must be set after property 0D (object build cost factor) as that overwrites this value.&lt;br /&gt;
&lt;br /&gt;
==Callback flags (15)==&lt;br /&gt;
&lt;br /&gt;
For objects, the following [[Callbacks|callbacks]] can be defined by setting the corresponding bit in property 15:&lt;br /&gt;
&lt;br /&gt;
||Bit|Value|Variable 0C value|Callback&lt;br /&gt;
&lt;br /&gt;
0|1|157|Custom slope check&lt;br /&gt;
&lt;br /&gt;
1|2|158|Decide next animation frame&lt;br /&gt;
&lt;br /&gt;
2|4|15A|Decide animation speed&lt;br /&gt;
&lt;br /&gt;
3|8|15B|Decide colour of building&lt;br /&gt;
&lt;br /&gt;
4|16|15C|Show additional text in the build object window&lt;br /&gt;
&lt;br /&gt;
5|32|15D|Allow/disallow autosloping||&lt;br /&gt;
&lt;br /&gt;
==Building height (16)==&lt;br /&gt;
&lt;br /&gt;
Set the height of the building in heightlevels (8 pixels). For example if the structure is 16 pixels high you set this property to 2.&lt;br /&gt;
&lt;br /&gt;
In OpenTTD this property is used to determine the height of the build object window; the height for the object preview is set to 32 + &amp;amp;quot;value of property 16&amp;amp;quot; * 8. The property is also uses to determine how high a bridge must be if it is allowed by the bit in property 10.&lt;br /&gt;
&lt;br /&gt;
==Number of views (17)==&lt;br /&gt;
&lt;br /&gt;
Since TTDPatch nightly r2360 and OpenTTD r21455 objects may have &amp;amp;quot;views&amp;amp;quot;, i.e. different graphical representations, e.g. used to show rotated views of an object. Number of views may be 1, 2, or 4. Default value is 1.&lt;br /&gt;
&lt;br /&gt;
For non-square objects, x and y sizes are swapped for odd views. I.e., giving an object size of &amp;amp;nbsp;1*2 (x = 1, y = 2), it will be displayed as 1*2 for num = &amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;0,2] (x-direction) but as 2*1 for num = &amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;1,3] (y-direction).&lt;br /&gt;
&lt;br /&gt;
Use object varaction2 48 to access particular views of an object.&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
	<entry>
		<id>https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Objects&amp;diff=138</id>
		<title>Action0/Objects</title>
		<link rel="alternate" type="text/html" href="https://newgrf-specs.tt-wiki.net/index.php?title=Action0/Objects&amp;diff=138"/>
		<updated>2010-09-17T14:27:29Z</updated>

		<summary type="html">&lt;p&gt;Wallyweb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Action 0 properties for new objects&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Action 0 - Properties for new objects=&lt;br /&gt;
&lt;br /&gt;
Defining properties of new objects.&lt;br /&gt;
&lt;br /&gt;
{maketoc}&lt;br /&gt;
&lt;br /&gt;
Unlike vehicles or new stations, most new objects have no real equivalent in TTD.&lt;br /&gt;
&lt;br /&gt;
The IDs are therefore free to be chosen and will in fact be allocated automatically by the patch. In action 0, you only specify IDs relative to the set, i.e. the ID of the first object type is 00, the second object type is 01 and so on. In total, each game can only have 255 object IDs for all active grf files.&lt;br /&gt;
&lt;br /&gt;
The property you &#039;&#039;&#039;must&#039;&#039;&#039; set for each object ID is 08 (in addition to defining an action 3 for it). Also, all object IDs must get their classes in the right order, starting from ID 00 onwards.&lt;br /&gt;
&lt;br /&gt;
-=Properties=-&lt;br /&gt;
&lt;br /&gt;
||Number|Version|Size|Description&lt;br /&gt;
&lt;br /&gt;
08|a|D|Class ID, see below&lt;br /&gt;
&lt;br /&gt;
09|a|W|Text ID for class&lt;br /&gt;
&lt;br /&gt;
0A|a|W|Text ID for this object&lt;br /&gt;
&lt;br /&gt;
0B|a|B|[[Action0General#Climate_availability|Climate availability]]&lt;br /&gt;
&lt;br /&gt;
0C|a|B|Byte representing size, see below&lt;br /&gt;
&lt;br /&gt;
0D|a|B|Object build cost factor (sets object removal cost factor as well)&lt;br /&gt;
&lt;br /&gt;
0E|a|D|Introduction date, see below&lt;br /&gt;
&lt;br /&gt;
0F|a|D|End of life date, see below&lt;br /&gt;
&lt;br /&gt;
10|a|W|Object flags, see below&lt;br /&gt;
&lt;br /&gt;
11|b|W|Animation information&lt;br /&gt;
&lt;br /&gt;
12|b|B|Animation speed&lt;br /&gt;
&lt;br /&gt;
13|b|W|Animation triggers&lt;br /&gt;
&lt;br /&gt;
14|b|B|Object removal cost factor (set after object build cost factor)&lt;br /&gt;
&lt;br /&gt;
15|b|W|Callback flags, see below&lt;br /&gt;
&lt;br /&gt;
16|b|B|Height of the building||&lt;br /&gt;
&lt;br /&gt;
Check [http://pics.lakie.net/newObject-ActionStructure.png|Lakie&#039;s Graphical Representation of the newObject Specifications|nocache]&lt;br /&gt;
&lt;br /&gt;
The specifications of NewObjects are available since OpenTTD r20670 in TTDPatch since r2340&lt;br /&gt;
&lt;br /&gt;
-=Comments=-&lt;br /&gt;
&lt;br /&gt;
==Object class (08)==&lt;br /&gt;
&lt;br /&gt;
Unlike station classes, there is currently no default yet, planned are TRNS for transmitters and LTHS for lighthouses. &#039;&#039;&#039;You have to set the class ID before any other property.&#039;&#039;&#039; Characters allowed in the IDs are A-Z, 0-9.&lt;br /&gt;
&lt;br /&gt;
1. The following is a &#039;&#039;&#039;Recommendation&#039;&#039;&#039; for Object Class Labels.&lt;br /&gt;
&lt;br /&gt;
2. It is possible to have a label for each object. This would make for a very ungainly menu.&lt;br /&gt;
&lt;br /&gt;
3. A labeling system allows a coder/author to make their works much more user friendly.&lt;br /&gt;
&lt;br /&gt;
4. To keep the numbers more manageable, the classes are as generic as possible.&lt;br /&gt;
&lt;br /&gt;
5. While being generic, assigning objects to a label should be intuitive.&lt;br /&gt;
&lt;br /&gt;
6. Assuming that there will be special circumstances where a coder/author needs to deviate from the norm, &#039;&#039;&#039;the Recommendation is not mandatory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
||&amp;lt;center&amp;gt;RECOMMENDATIONS&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Label|&amp;lt;center&amp;gt;Action4 Text&amp;lt;/center&amp;gt;|&amp;lt;center&amp;gt;Description&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TTDX|&amp;lt;center&amp;gt;Default*TTDX&amp;lt;/center&amp;gt;|Transport Tycoon&#039;s copywritten objects - lighthouse, communication tower, rocks, etc.&lt;br /&gt;
&lt;br /&gt;
OTTD|&amp;lt;center&amp;gt;Default*OpenTTD&amp;lt;/center&amp;gt;|OpenGFX objects - lighthouse, communication tower, rocks, etc.&lt;br /&gt;
&lt;br /&gt;
STRU|&amp;lt;center&amp;gt;Structures&amp;lt;/center&amp;gt;|Multitile engineered objects that don&#039;t quite fit in as industries, houses or stations - dams etc.&lt;br /&gt;
&lt;br /&gt;
INFR|&amp;lt;center&amp;gt;Infrastructure&amp;lt;/center&amp;gt;| - lightpoles, communication towers, transmission towers, road signs, etc.&lt;br /&gt;
&lt;br /&gt;
BLDG|&amp;lt;center&amp;gt;Buildings&amp;lt;/center&amp;gt;|Normally accomodated by industries, houses or stations but the author feels there are limiting circumstances.&lt;br /&gt;
&lt;br /&gt;
NATR|&amp;lt;center&amp;gt;Natural objects&amp;lt;/center&amp;gt;| - caves, coral reefs, swamps, etc.&lt;br /&gt;
&lt;br /&gt;
PARK|&amp;lt;center&amp;gt;Public areas&amp;lt;/center&amp;gt;|Normally accomodated by towns or industries (tourist stuff ...) but the author feels there are limiting circumstances - Parks, statues, etc.&lt;br /&gt;
&lt;br /&gt;
ARTF|&amp;lt;center&amp;gt;Artifacts&amp;lt;/center&amp;gt;|They really don&#039;t fit under any of the above - shipwrecks, etc.&lt;br /&gt;
&lt;br /&gt;
MISC|&amp;lt;center&amp;gt;Miscellaneous&amp;lt;/center&amp;gt;|For the author who is unable to accommodate his/her object under any of the previous labels.||&lt;br /&gt;
&lt;br /&gt;
==Object class text ID (09)==&lt;br /&gt;
&lt;br /&gt;
The text ID for this class (word value). This textid should be either a TTD textid or a D4xx textid (set via D0xx in action4).&lt;br /&gt;
&lt;br /&gt;
When specifying an object, you don&#039;t need to set a class name again if you already did for another one with the same class.&lt;br /&gt;
&lt;br /&gt;
==Object text ID (0A)==&lt;br /&gt;
&lt;br /&gt;
The text ID for the object for query and selection (word value). Same requirements as for property09.&lt;br /&gt;
&lt;br /&gt;
==Object size (0C)==&lt;br /&gt;
&lt;br /&gt;
The object size up to 15x15 tiles.&lt;br /&gt;
&lt;br /&gt;
This byte value is divided into two nibbles. The first defines the size in y direction and the second defines the size in x (i.e., stored as YX).&lt;br /&gt;
&lt;br /&gt;
Note that any value lower than 0x11 will be rejected.&lt;br /&gt;
&lt;br /&gt;
==Build Cost (0D)==&lt;br /&gt;
&lt;br /&gt;
The build cost multiplier. This is multiplied by the number of tiles for evaluation of construction and removal costs of an object.&lt;br /&gt;
&lt;br /&gt;
==Introduction date (0E)==&lt;br /&gt;
&lt;br /&gt;
Introduction date of an object, in days since the year 0. This takes account of leap years; divisible by 4, but not 100 unless 400. A start date of 1920-01-01 is obtained with a value of 701265 (51 B3 0A 00). In TTDPatch anything before 1920 is considered to be always available, and it should allow for objects to work past 2044, the date is also the very first date you can build the object.&lt;br /&gt;
&lt;br /&gt;
==End of life date (0F)==&lt;br /&gt;
&lt;br /&gt;
Last year an object can be build, in days since the year 0. Same requirements as above. Also note that it must be a minimum of a year (365 days) after the introduction date or TTDPatch will ignore it.&lt;br /&gt;
&lt;br /&gt;
==Object flags (10)==&lt;br /&gt;
&lt;br /&gt;
The following flags control object behaviour and are cached for built objects, so changing these flags will have no effect on already constructed objects.&lt;br /&gt;
&lt;br /&gt;
||Bit|Value|Version|Meaning&lt;br /&gt;
&lt;br /&gt;
0|1|a|Only Available in the scenario editor (1)&lt;br /&gt;
&lt;br /&gt;
1|2|a|Irremovable (2)&lt;br /&gt;
&lt;br /&gt;
2|4|a|Anything Can Remove (owned land behaviour)&lt;br /&gt;
&lt;br /&gt;
3|8|a|Allow construction of the object on water&lt;br /&gt;
&lt;br /&gt;
4|16|a|Removal cost is actually income (owned land behaviour)&lt;br /&gt;
&lt;br /&gt;
5|32|a|Do not display foundations if on a slope&lt;br /&gt;
&lt;br /&gt;
6|64|a|Object has animation (3)&lt;br /&gt;
&lt;br /&gt;
7|128|a|Only available during game play (1)&lt;br /&gt;
&lt;br /&gt;
8|256|b|Allows 2cc mapping for objects instead of the default 1cc&lt;br /&gt;
&lt;br /&gt;
9|512|c|Disallows construction on land (also has bit 3 behaviour)&lt;br /&gt;
&lt;br /&gt;
10|1024|c|Draws the water under the object (4)&lt;br /&gt;
&lt;br /&gt;
11|2048|d|Allow bridge over the object taking the building height into account (5)&lt;br /&gt;
&lt;br /&gt;
12|4096|d|Random bits in the &amp;amp;quot;next animation frame&amp;amp;quot; callback||&lt;br /&gt;
&lt;br /&gt;
c - TTDPatch r2331&lt;br /&gt;
&lt;br /&gt;
(1) - Note that bits 0 and 7 are incompatible and setting both will make an object completely unavailable.&lt;br /&gt;
&lt;br /&gt;
(2) - Object cannot be removed through normal dynamite, control must be held and the removal cost will be multiplied by 25 (this is the usual behaviour for most class A objects in TTDPatch).&lt;br /&gt;
&lt;br /&gt;
(3) - Setting this flag will allow the object&#039;s animation counter to be increased, must be set if you plan to make use of animations.&lt;br /&gt;
&lt;br /&gt;
(4) - Only applies when built on top of a water tile, also replaces the ground tile of the object completely. (Does not work when object built on sloped water tiles).&lt;br /&gt;
&lt;br /&gt;
(5) - Only applies to OpenTTD. TTDPatch does not support bridges over objects yet.&lt;br /&gt;
&lt;br /&gt;
==Animation information (11)==&lt;br /&gt;
&lt;br /&gt;
The low byte specifies the number of animation frames minus one, so 00 means 1 frame, 01 means 2 frames etc. The maximum number of frames is 256, although you can have some problems if your animation exceeds FD (253) frames. The high byte must be 0 for non-looping animations and 01 for looping animations. Every other value is reserved for future use. In addition, if the whole word contains FFFF, animation is turned off for this object (this is the default value).&lt;br /&gt;
&lt;br /&gt;
Since you can&#039;t have properties for individual object tiles, this property applies for every tile of the object. If you don&#039;t want to animate some tiles, you should check the current position during [[Callbacks#Animation_control_1B_25_140_|callback 159]] and return FD if the current tile doesn&#039;t need to be animated. If you also need animations of different length per tile, you&#039;ll have to use [[Callbacks#Next_animation_frame_1A_26_141_|callback 158]] for that.&lt;br /&gt;
&lt;br /&gt;
==Animation speed (12)==&lt;br /&gt;
&lt;br /&gt;
The meaning is the same as for [[Action0Houses#Animation_Speed_1B_|house property 1B]], but the lower limit is 0 instead of 2, so the fastest possible animation changes frames every game tick (27ms). The default value is 0.&lt;br /&gt;
&lt;br /&gt;
==Animation triggers (13)==&lt;br /&gt;
&lt;br /&gt;
This is a bit mask of events that should trigger [[Callbacks#Animation_control_1B_25_140_|callback 159]], allowing to change the animation state&lt;br /&gt;
&lt;br /&gt;
||Bit|Value|Meaning|Happens on&lt;br /&gt;
&lt;br /&gt;
0|1|Object is built|all tiles&lt;br /&gt;
&lt;br /&gt;
1|2|Periodic tile loop|single tile&lt;br /&gt;
&lt;br /&gt;
2|4|Synchronised periodic tile loop|all tiles||&lt;br /&gt;
&lt;br /&gt;
The synchronised periodic tile loop is called directly after the (unsynchronised) periodic tile loop of the northern tile.&lt;br /&gt;
&lt;br /&gt;
==Object removal cost factor (14)==&lt;br /&gt;
&lt;br /&gt;
Cost factor for the removal of an object. This must be set after property 0D (object build cost factor) as that overwrites this value.&lt;br /&gt;
&lt;br /&gt;
==Callback flags (15)==&lt;br /&gt;
&lt;br /&gt;
For objects, the following [[Callbacks|callbacks]] can be defined by setting the corresponding bit in property 15:&lt;br /&gt;
&lt;br /&gt;
||Bit|Value|Variable 0C value|Callback&lt;br /&gt;
&lt;br /&gt;
0|1|157|Custom slope check&lt;br /&gt;
&lt;br /&gt;
1|2|158|Decide next animation frame&lt;br /&gt;
&lt;br /&gt;
2|4|15A|Decide animation speed&lt;br /&gt;
&lt;br /&gt;
3|8|15B|Decide colour of building&lt;br /&gt;
&lt;br /&gt;
4|16|15C|Show additional text in the build object window&lt;br /&gt;
&lt;br /&gt;
5|32|15D|Allow/disallow autosloping||&lt;br /&gt;
&lt;br /&gt;
==Building height (16)==&lt;br /&gt;
&lt;br /&gt;
Set the height of the building in heightlevels (8 pixels). For example if the structure is 16 pixels high you set this property to 2.&lt;br /&gt;
&lt;br /&gt;
In OpenTTD this property is used to determine the height of the build object window; the height for the object preview is set to 32 + &amp;amp;quot;value of property 16&amp;amp;quot; * 8. The property is also uses to determine how high a bridge must be if it is allowed by the bit in property 10.&lt;/div&gt;</summary>
		<author><name>Wallyweb</name></author>
	</entry>
</feed>