Difference between revisions of "NML:Airports"
Line 66: | Line 66: | ||
| |
| |
||
| |
| |
||
− | {{ottd|1.1|r19204}} The id of airport tile to override, see [[AirportTypes]]. This property ''must'' be set first, before any other properties or graphics. |
+ | {{ottd|1.1|r19204}} The id of airport tile to override, see [[AirportTypes]]. '''This property ''must'' be set first, before any other properties or graphics.''' |
|- |
|- |
||
| substitute |
| substitute |
||
Line 93: | Line 93: | ||
{{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. |
{{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== |
Revision as of 11:17, 11 April 2015
Vehicles, Stations, Canals, Bridges, Towns, Houses, Industries (Tiles), Cargos, Airports+Tiles, Objects, Railtypes, Roadtypes, Tramtypes, Terrain
- common props | vars | CBs
- train | roadveh | ship | aircr props
- common variables
- industry props | vars | CBs
- tile props | vars | CBs
- airport props | vars | CBs
- tile props | vars | CBs
Airports and airport tiles can only be defined in OpenTTD 1.1 or later.
Airport (tile) IDs
Airport and airport tile IDs are local to the NewGRF, you are free to choose any ID in the 0..255-range. For airport tiles, you should start your item definition with the 'substitute'-property, which allocates a new airport tile. The value of this property should be the ID of a default airport tile, which will be used instead of your item if it is not available for whatever reason (for example, missing NewGRF).
Furthermore, you can set the 'override'-property, which will cause the existing airport tile to be replaced with your item. For airports, there only is an 'override'-property, which acts as a combined substitute and override.
Airport properties
name | value range | comment |
---|---|---|
override |
1.1 The id of airport to replace / override, see AirportTypes. This property must be set first, before any other properties or graphics. | |
layouts | list of layouts | |
name | string | |
years_available | [start year, last year] |
1.1 List of the availablility years: first and last year it can be built |
ttd_airport-type | 0 ... 3 | |
catchment_area |
1.1 Catchment area of the airport in tiles around its perimeter | |
noise_level | ||
maintenance_cost |
Airport tile properties
name | value range | comment |
---|---|---|
override |
1.1 The id of airport tile to override, see AirportTypes. This property must be set first, before any other properties or graphics. | |
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
A number of variables are shared between airports and stations. These are listed on the stations page.
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 | XXX = [NONE | 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) |