Difference between revisions of "NML:Airports"
(content of nml r1625) |
(some fancy OpenTTD version labels like on the NewGRF specs) |
||
Line 1: | Line 1: | ||
− | Airports and airport tiles can only be defined in OpenTTD 1.1 |
+ | Airports and airport tiles can only be defined in OpenTTD {{ottd|1.1|r19459}} or later. |
+ | |||
==Airport properties== |
==Airport properties== |
||
Line 11: | Line 12: | ||
| string |
| string |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19459}} Name of the airport |
|- |
|- |
||
| override |
| override |
||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19459}} the id of airport to replace / override |
|- |
|- |
||
| layouts |
| layouts |
||
| list of layouts |
| list of layouts |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r20377}} |
|- |
|- |
||
| years_available |
| years_available |
||
| [start year, last year] |
| [start year, last year] |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19459}} list of the availablility years: first and last year it can be built |
|- |
|- |
||
| ttd_airport-type |
| ttd_airport-type |
||
| 0 ... 3 |
| 0 ... 3 |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19459}} substitute TTDPatch airport type |
|- |
|- |
||
| catchment_area |
| catchment_area |
||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19459}} catchment area of the airport in tiles around its perimeter |
|- |
|- |
||
| noise_level |
| noise_level |
||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19459}} noise generation of this airport |
|} |
|} |
||
+ | |||
==Airport tile properties== |
==Airport tile properties== |
||
Line 54: | Line 56: | ||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19204}} the id of airport tile to override |
|- |
|- |
||
| substitute |
| substitute |
||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19204}} the id of airport tile to replace |
|- |
|- |
||
| callback_flags |
| callback_flags |
||
| bitmask |
| bitmask |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19204}} Do not set this, unless you use [[NML:Old style callbacks|old-style callbacks]]. |
|- |
|- |
||
| animation_info |
| animation_info |
||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19204}} |
|- |
|- |
||
| animation_speed |
| animation_speed |
||
| |
| |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19204}} see [[NML:Animation speed|speed settings]] |
|- |
|- |
||
| animation_triggers |
| animation_triggers |
||
| bitmask(ANIM_TRIGGER_APT_XXX, ... ) |
| bitmask(ANIM_TRIGGER_APT_XXX, ... ) |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r19204}} Bitmask of triggers that will trigger the <code style="color:darkgreen">anim_control</code> callback, see the [[#Animation triggers|table]] below. |
|} |
|} |
||
+ | |||
==Airport variables== |
==Airport variables== |
||
Line 92: | Line 95: | ||
| 0 .. (number of layouts - 1) |
| 0 .. (number of layouts - 1) |
||
| |
| |
||
− | 1.1 |
+ | {{ottd|1.1|r20364}} Layout number of the airport (index in the layouts array) |
|} |
|} |
||
+ | |||
==Airport tile variables== |
==Airport tile variables== |
||
Line 127: | Line 131: | ||
| |
| |
||
|} |
|} |
||
+ | |||
The following variables require a signed x,y offset as parameters. The offset is relative to the current tile. Offset 0,0 means the current tile. |
The following variables require a signed x,y offset as parameters. The offset is relative to the current tile. Offset 0,0 means the current tile. |
||
Line 173: | Line 178: | ||
| 0x00aa: The tile is an airport tile that is part of this GRF, the tile id is aa.<br /> 0xFFbb: The tile is an original airport tile with id bb.<br /> 0xFFFE: The tile is an airport tile defined in another GRF.<br /> 0xFFFF: The tile is not an airport tile or it belongs to another GRF. |
| 0x00aa: The tile is an airport tile that is part of this GRF, the tile id is aa.<br /> 0xFFbb: The tile is an original airport tile with id bb.<br /> 0xFFFE: The tile is an airport tile defined in another GRF.<br /> 0xFFFF: The tile is not an airport tile or it belongs to another GRF. |
||
|} |
|} |
||
+ | |||
==Airport callbacks== |
==Airport callbacks== |
||
Line 195: | Line 201: | ||
Note that, although the airport isn't built yet, the <code style="color:darkgreen">layout</code> variable is always available and set to the layout the user has selected in the GUI. |
Note that, although the airport isn't built yet, the <code style="color:darkgreen">layout</code> variable is always available and set to the layout the user has selected in the GUI. |
||
+ | |||
==Airport tile callbacks== |
==Airport tile callbacks== |
||
Line 224: | Line 231: | ||
| Return CB_RESULT_FOUNDATIONS to draw standard foundations (default) or CB_RESULT_NO_FOUNDATIONS to not draw them. |
| Return CB_RESULT_FOUNDATIONS to draw standard foundations (default) or CB_RESULT_NO_FOUNDATIONS to not draw them. |
||
|} |
|} |
||
+ | |||
===Animation triggers=== |
===Animation triggers=== |
Revision as of 14:57, 21 August 2011
Airports and airport tiles can only be defined in OpenTTD 1.1 or later.
Airport properties
Airport tile properties
name | value range | comment |
---|---|---|
override | ||
substitute | ||
callback_flags | bitmask |
1.1 Do not set this, unless you use old-style callbacks. |
animation_info | ||
animation_speed |
1.1 see speed settings | |
animation_triggers | bitmask(ANIM_TRIGGER_APT_XXX, ... ) |
1.1 Bitmask of triggers that will trigger the |
Airport variables
name | value range | comment |
---|---|---|
layout | 0 .. (number of layouts - 1) |
1.1 Layout number of the airport (index in the layouts array) |
Airport tile variables
name | value range | comment |
---|---|---|
terrain_type | ||
town_radius_group | ||
relative_x | 0..255 | X-coordinate (top right -> bottom left) of the tile relative to the northernmost tile. |
relative_y | 0..255 | Y-coordinate (top left -> bottom right) of the tile relative to the northernmost tile. |
relative_pos | 0xYYXX |
A combination of relative_x and relative_y in the format 0xYYXX. Useful if you want to check for a single position. The builtin function relative_coord(x, y) may be useful when making comparisons. |
animation_frame |
The following variables require a signed x,y offset as parameters. The offset is relative to the current tile. Offset 0,0 means the current tile.
name | value range | comment |
---|---|---|
nearby_tile_slope | SLOPE_XXX |
See tile slopes for an overview of possible values |
nearby_tile_is_same_airport | 1 if the tile is part of the same airport, 0 otherwise | |
nearby_tile_is_water | 1 if the tile is water, 0 otherwise | |
nearby_tile_terrain_type | TILETYPE_XX | TILETYPE_NORMAL, TILETYPE_DESERT, TILETYPE_RAIN_FOREST, TILETYPE_SNOW |
nearby_tile_water_class | WATER_CLASS_XXX | SEA | CANAL | RIVER] Note that tiles for which nearby_tile_is_water is 0 may still have a water class, e.g. industry tiles with water beneath them.
|
nearby_tile_height | 0..120 | The height of the lowest corner of the given tile. |
nearby_tile_class | ||
nearby_tile_animation_frame | 0..255 | Animation frame of the given tile |
nearby_tile_airporttile_id | 0x00aa, 0xFFbb, 0xFFFE or 0xFFFF | 0x00aa: The tile is an airport tile that is part of this GRF, the tile id is aa. 0xFFbb: The tile is an original airport tile with id bb. 0xFFFE: The tile is an airport tile defined in another GRF. 0xFFFF: The tile is not an airport tile or it belongs to another GRF. |
Airport callbacks
callback | return value | comment |
---|---|---|
default | Sprite set (with 1 sprite) | Preview graphics to use in the build menu. One sprite per layout may be given, use the layout to distinguish between layouts.
|
additional_text | String | Additional text to show in the buy menu. String may differ per layout, use the layout variable for this.
|
layout_name | String | Name of the airport layout in the variable layout
|
Note that, although the airport isn't built yet, the layout
variable is always available and set to the layout the user has selected in the GUI.
Airport tile callbacks
callback | return value | comment |
---|---|---|
default | Sprite layout | Graphics for an airport tile |
anim_next_frame | Next animation frame or CB_RESULT_XXX | Called for every animation frame, returns the next frame to display. Alternatively, return CB_RESULT_NEXT_FRAME or CB_RESULT_STOP_ANIMATION to show the next frame or stop animation, respectively. extra_callback_info1 contains random bits. Returning a sound effect in the high byte will cause that sound effect to be played.
|
anim_control | Next animation frame or CB_RESULT_XXX |
Called whenever an animation trigger happens. Return the animation frame to show, or CB_RESULT_XXX with XXX = [CB_RESULT_START_ANIMATION | STOP_ANIMATION | DO_NOTHING] to respectively start the animation in its current frame, stop the animation or do nothing. |
anim_speed | 0 .. 16 | Decide the time an animation frame should last. Return value is interpreted as (num_ticks = 2^anim_speed), which each tick lasting 30 ms. Avoid using this callback if possible, since it has to be called each tick for every animated tile. This can be used to create animation frames that last between 30 ms and 33 minutes. |
foundations | CB_RESULT[_NO]_FOUNDATIONS | Return CB_RESULT_FOUNDATIONS to draw standard foundations (default) or CB_RESULT_NO_FOUNDATIONS to not draw them. |
Animation triggers
Animation trigger | Description |
---|---|
ANIM_TRIGGER_APT_BUILT | Airport is built (all tiles at the same time) |
ANIM_TRIGGER_APT_TILELOOP | Airport tile is processed in the tileloop (at different times for different tiles) |
ANIM_TRIGGER_APT_NEW_CARGO | New cargo arrives at the airport (all tiles at the same time) |
ANIM_TRIGGER_APT_CARGO_TAKEN | All cargo of a cargo type is removed from the airport (all tiles at the same time) |
ANIM_TRIGGER_APT_250_TICKS | Every 250 ticks (all tiles at the same time) |