Difference between revisions of "Action0/Airport Tiles"

From GRFSpecs
Jump to navigationJump to search
(wrong CB reference)
(→‎Animation triggers via callback 152 (11): added new animation trigger)
 
(One intermediate revision by one other user not shown)
Line 67: Line 67:
   
 
{| |-
 
{| |-
!Bit!!Value!!Version!!Meaning
+
!Bit!!Value!!Version!!Meaning!!Var 18
 
|-
 
|-
|0||1||{{ottdp|1.1|ottdrev=r19204}}||airport was just constructed
+
|0||1||{{ottdp|1.1|ottdrev=r19204}}||airport was just constructed||
 
|-
 
|-
|1||2||{{ottdp|1.1|ottdrev=r19204}}||the tile is processed in the periodic processing loop
+
|1||2||{{ottdp|1.1|ottdrev=r19204}}||the tile is processed in the periodic processing loop||
 
|-
 
|-
|2||4||{{ottdp|1.1|ottdrev=r19204}}||new cargo arrives at the station (for all airport tiles the same)
+
|2||4||{{ottdp|1.1|ottdrev=r19204}}||new cargo arrives at the station (for all airport tiles the same)||<ref name="cargotype">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't in the table. If you don't have a cargo translation table, the cargo type will simply be the climate-dependent cargo type number.</ref>
 
|-
 
|-
|3||8||{{ottdp|1.1|ottdrev=r19204}}||a cargo type gets removed from the station (for all airport tiles the same)
+
|3||8||{{ottdp|1.1|ottdrev=r19204}}||a cargo type gets removed from the station (for all airport tiles the same)||<ref name="cargotype"/>
 
|-
 
|-
|4||10||{{ottdp|1.1|ottdrev=r19204}}||every 250 ticks (for all airport tiles the same)
+
|4||10||{{ottdp|1.1|ottdrev=r19204}}||every 250 ticks (for all airport tiles the same)||
  +
|-
  +
|5||20||{{ottdp|1.9}}||Triggered when an airplane (not a helicopter!) lands at airport (single tile only)||
 
|}
 
|}
  +
  +
<references/>
   
 
== Example ==
 
== Example ==

Latest revision as of 22:48, 22 December 2019

Introduction

Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch Airport tiles work like industry tiles and similarly to town buildings, except that they are not stand-alone. This means an airport tile can't stand alone, it's always part of an airport.

Properties

Number Version Size Description
08 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch B Substitute airport tile type
09 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch B Airport tile override
0E Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch B Callback flags
0F Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch W Animation information
10 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch B Animation speed.
11 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch B Animation triggers

Descriptions

Substitute tile type (08)

This tile type will be used instead of your new one if your definition isn't available for any reason. Assigning this property copies the properties of the old type just like it does with houses. If this tile's action 3 appears before this property is set, the action 3 will have no effect.

Airport tile override (09)

Works like the house override property for houses and industry tiles.

Callback flags (0E)

Bit value version meaning
0 1 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch use callback 153 to decide the next animation frame
1 2 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch use callback 154 to decide animation speed
2 4 Not supported by OpenTTD Not supported by TTDPatch (reserved)
3 8 Not supported by OpenTTD Not supported by TTDPatch (reserved)
4 10 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch use callback xx to check if a slope is suitable (not yet implemented)
5 20 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch use callback 150 to decide if default foundations need to be drawn
6 40 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch use callback xx to allow or deny autosloping below the tile (not yet implemented)

Please note that callback 152 doesn't have a bit here. To use callback 152, simply set the wanted bits in property 11 and it will work as intended.

Animation information (0F)

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 tile (this is the default value).

Animation speed (10)

The meaning is the same as for 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.

Animation triggers via callback 152 (11)

This shares some flags with industry tiles and others with stations. Call callback 152 when:

Bit Value Version Meaning Var 18
0 1 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch airport was just constructed
1 2 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch the tile is processed in the periodic processing loop
2 4 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch new cargo arrives at the station (for all airport tiles the same) [1]
3 8 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch a cargo type gets removed from the station (for all airport tiles the same) [1]
4 10 Supported by OpenTTD 1.1 (r19204)1.1 Not supported by TTDPatch every 250 ticks (for all airport tiles the same)
5 20 Supported by OpenTTD 1.91.9 Not supported by TTDPatch Triggered when an airplane (not a helicopter!) lands at airport (single tile only)
  1. 1.0 1.1 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't in the table. If you don't have a cargo translation table, the cargo type will simply be the climate-dependent cargo type number.

Example