Callback: Animation control
From GRFSpecs
Jump to navigationJump to searchAnimation control (1B/1C/25/140/148/152/159)
These callbacks are called, when an animation trigger happens.
| Callback | Feature | Mask property | Trigger | Variable 10 | Variable 18 | 
|---|---|---|---|---|---|
| 1B | Houses | Property 14 bit 2 | Periodic, see property 16 [1] | Reserved for future use | |
| 1C | Houses | Property 14 bit 3 | Construction stage changes [3] | Reserved for future use | Reserved for future use | 
| 25 | Industry tiles | Property 11 | All triggers, see variable 18 | See property 11 | |
| 140 | Stations, road stops | Station property 18, road stop property 10 | All triggers, see variable 18 | See station property 18 | |
| 148 | Houses | Property 1E | Watched cargo accepted [5] | Reserved for future use | See property 1E | 
| 154 | Airport tiles | Property 11 | All triggers, see variable 18 | Random bits | See property 11 | 
| 159 | Objects | Property 13 | All triggers, see variable 18 | Random bits | See property 13 | 
- ↑ For multi-tile houses property 19 bit 2 controls, whether the trigger is synchronised across all house tiles. See details there.
 - ↑ Lower 16 bits are random per tile. Upper 16 bits are the same for all tiles, if property 19 bit 2 is set.
 - ↑ Called during normal gameplay (3 times per tile), not during map generation.
 - ↑ 4.0 4.1 Lower 16 bits are random per tile. Upper 16 bits are the same for all tiles, if the trigger applies to multiple tiles.
 - ↑ Due to implementation details, up to 250 game ticks can pass between the actual acceptance and triggering this callback.
 
The return value has the format SSFF:
- FF: One of the following values:
 
Value Meaning 00 - FC Jump to this animation frame. FD leave the animation in its current state (do nothing) FE start animation with its current frame FF stop animation in its current frame 
- SS: Sound effect: If non-zero, the sound effect number to play at the tile.
 
Note: Every time the animation frame is changed the map tile will be refreshed, even if the selected graphics stay the same. Therefore using the animation frame as a timer should be avoided, and animation triggers should be preferred instead.