Difference between revisions of "Callback: Animation control"
From GRFSpecs
Jump to navigationJump to search (house construction stage trigger) |
(ottd 15 additions) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
|1C||Houses |
|1C||Houses |
||
|[[Action0/Houses#House_callback_flags_.2814.2C1D.29|Property 14 bit 3]] |
|[[Action0/Houses#House_callback_flags_.2814.2C1D.29|Property 14 bit 3]] |
||
− | |[[VariationalAction2/Houses#Construction_stage_and_pseudo-random_values_.2840.29|Construction stage]] changes <ref>During normal gameplay called 4 times per tile. During map generation called 1 time. For the first call to happen, you also have to set [[Action0/Houses#Building_flags_.2809.29|property 9 bit 5]].</ref> |
+ | |[[VariationalAction2/Houses#Construction_stage_and_pseudo-random_values_.2840.29|Construction stage]] changes <ref>During normal gameplay called 4 times per tile. During map generation called 1 time.<br>{{ttdp|}} For the first call to happen, you also have to set [[Action0/Houses#Building_flags_.2809.29|property 9 bit 5]].</ref> |
⚫ | |||
− | |Reserved for future use |
||
+ | |{{ottdp|15|no}} First call <ref>Var 18 bit 0 is set, if the callback is called the first time for a new house. In-game the construction stage will be zero, at map generation and in scenario editor, it will be 3.<br>Other bits of var 18 are reserved, and must be masked.</ref> |
||
− | |Reserved for future use |
||
|- |
|- |
||
|25||Industry tiles |
|25||Industry tiles |
||
Line 22: | Line 22: | ||
|All triggers, see variable 18 |
|All triggers, see variable 18 |
||
|{{ottdp| |2.5|ttdprev=beta 2}} Random bits <ref name="randombits">Lower 16 bits are random per tile. Upper 16 bits are the same for all tiles, if the trigger applies to multiple tiles.</ref> |
|{{ottdp| |2.5|ttdprev=beta 2}} Random bits <ref name="randombits">Lower 16 bits are random per tile. Upper 16 bits are the same for all tiles, if the trigger applies to multiple tiles.</ref> |
||
− | | |
+ | |Trigger and more, see [[Action0/Industry_Tiles#Triggers_for_callback_25_.2811.29|property 11]] |
|- |
|- |
||
|140||Stations, road stops |
|140||Stations, road stops |
||
Line 28: | Line 28: | ||
|All triggers, see variable 18 |
|All triggers, see variable 18 |
||
|{{ottdp| |2.5|ttdprev=beta 2}} Random bits <ref name="randombits" /> |
|{{ottdp| |2.5|ttdprev=beta 2}} Random bits <ref name="randombits" /> |
||
− | | |
+ | |Trigger and more, see [[Action0/Stations#Animation_triggers_.2818.29|station property 18]] |
|- |
|- |
||
|148||Houses |
|148||Houses |
||
Line 39: | Line 39: | ||
|[[Action0/Airport_Tiles#Animation_triggers_via_callback_152_.2811.29|Property 11]] |
|[[Action0/Airport_Tiles#Animation_triggers_via_callback_152_.2811.29|Property 11]] |
||
|All triggers, see variable 18 |
|All triggers, see variable 18 |
||
+ | |Random bits <ref name="randombits15">{{ottdp|15|no}} Lower 16 bits are random per tile. Upper 16 bits are the same for all tiles, if the trigger applies to multiple tiles.</ref> |
||
⚫ | |||
− | | |
+ | |Trigger and more, see [[Action0/Airport_Tiles#Animation_triggers_via_callback_152_.2811.29|property 11]] |
|- |
|- |
||
|159||Objects |
|159||Objects |
||
|[[Action0/Objects#Animation_triggers_.2813.29|Property 13]] |
|[[Action0/Objects#Animation_triggers_.2813.29|Property 13]] |
||
|All triggers, see variable 18 |
|All triggers, see variable 18 |
||
− | |Random bits |
+ | |Random bits <ref name="randombits15" /> |
− | | |
+ | |Trigger and more, see [[Action0/Objects#Animation_triggers_.2813.29|property 13]] |
|} |
|} |
||
<references /> |
<references /> |
Latest revision as of 14:24, 26 April 2025
Animation 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] | ![]() ![]() |
![]() ![]() |
25 | Industry tiles | Property 11 | All triggers, see variable 18 | ![]() ![]() |
Trigger and more, see property 11 |
140 | Stations, road stops | Station property 18, road stop property 10 | All triggers, see variable 18 | ![]() ![]() |
Trigger and more, see station property 18 |
148 | Houses | Property 1E | Watched cargo accepted [6] | Reserved for future use | See property 1E |
154 | Airport tiles | Property 11 | All triggers, see variable 18 | Random bits [7] | Trigger and more, see property 11 |
159 | Objects | Property 13 | All triggers, see variable 18 | Random bits [7] | Trigger and more, 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.
- ↑ During normal gameplay called 4 times per tile. During map generation called 1 time.
For the first call to happen, you also have to set property 9 bit 5.
- ↑ Var 18 bit 0 is set, if the callback is called the first time for a new house. In-game the construction stage will be zero, at map generation and in scenario editor, it will be 3.
Other bits of var 18 are reserved, and must be masked. - ↑ 5.0 5.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.
- ↑ 7.0 7.1
15
Lower 16 bits are random per tile. Upper 16 bits are the same for all tiles, if the trigger applies to multiple tiles.
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.