A particle a Psynergy effect moves and draws: its sprite, its position and target, its speed, scale and heading, and its per-frame callback. More...
#include <battle/effect_slot.h>
Data Fields | |
| void * | object |
| the slot's sprite, released with the slot | |
| s32 | x |
| 16.16 fixed-point pixels | |
| s32 | z |
| 16.16 fixed-point pixels | |
| s32 | targetX |
| 16.16 fixed-point pixels; EFFECT_NO_TARGET at rest | |
| s32 | targetZ |
| 16.16 fixed-point pixels; EFFECT_NO_TARGET at rest | |
| s32 | originX |
| 16.16 fixed-point pixels; where the slot started | |
| s32 | originZ |
| 16.16 fixed-point pixels; where the slot started | |
| s32 | speed |
| 16.16 fixed-point pixels per frame | |
| s32 | maxSpeed |
| 16.16 fixed-point pixels per frame | |
| s32 | acceleration |
| 16.16 fixed-point pixels per frame, each frame | |
| s32 | scaleX |
| 16.16 fixed point, 0x10000 full size | |
| s32 | scaleY |
| 16.16 fixed point, 0x10000 full size | |
| u16 | heading |
| 1/65536 turns | |
| s16 | maxTurnStep |
| 1/65536 turns a frame | |
| EffectCallback | callback |
| run each frame once callbackDelay is 0 | |
| u16 | age |
| frames | |
| s16 | callbackDelay |
| frames | |
| s16 | orbitRadius |
| pixels | |
| s16 | orbitAngle |
| 1/32 turns | |
| s8 | state |
| the callback's own step; 0 when it is given | |
| s8 | stopAtTarget |
| nonzero: lands on the target within 8 pixels | |
| s8 | limitTurnStep |
| Clamp steering to maxTurnStep; zero faces the target directly. | |
| s8 | updateMotion |
| nonzero: EffectSlot_UpdateMotion moves it each frame | |
| s8 | render |
| nonzero: drawn each frame | |
| s8 | active |
| nonzero while the slot is in use | |
| u8 | randomValue |
| random when filled; not read by name in TBS | |
| u8 | flags |
| bits: 2 z also lifts the sprite (set when the slot is filled) | |
A particle a Psynergy effect moves and draws: its sprite, its position and target, its speed, scale and heading, and its per-frame callback.
Definition at line 18 of file effect_slot.h.
| void* EffectSlot::object |
the slot's sprite, released with the slot
Definition at line 19 of file effect_slot.h.
Referenced by AltmillerCave_ReleaseWallBurst(), BattleEffect_RunFallbackObjectTransition(), BattleFx_RunMercuryDjinnCapture(), BattleFx_RunVenusDjinnCapture(), Djinn_RunJupiterJoinEffect(), Djinn_RunMarsJoinEffect(), EffectSlot_Initialize(), EffectSlot_SetObjectMode(), FieldFx_RunRetreat(), and Shop_RunPartyMemberIconBurst().
| s32 EffectSlot::x |
16.16 fixed-point pixels
Definition at line 20 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_DrawScaledObject(), BattleFx_RunAngledApproachPhases(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_SetPosition(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::z |
16.16 fixed-point pixels
Definition at line 21 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_DrawScaledObject(), BattleFx_RunAngledApproachPhases(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_SetPosition(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::targetX |
16.16 fixed-point pixels; EFFECT_NO_TARGET at rest
Definition at line 22 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_HasPendingTarget(), EffectSlot_SetPosition(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::targetZ |
16.16 fixed-point pixels; EFFECT_NO_TARGET at rest
Definition at line 23 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_SetPosition(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::originX |
16.16 fixed-point pixels; where the slot started
Definition at line 24 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_RunAngledApproachPhases(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), and EffectSlot_Initialize().
| s32 EffectSlot::originZ |
16.16 fixed-point pixels; where the slot started
Definition at line 25 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_RunAngledApproachPhases(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), and EffectSlot_Initialize().
| s32 EffectSlot::speed |
16.16 fixed-point pixels per frame
Definition at line 26 of file effect_slot.h.
Referenced by BattleFx_UpdateRandomTargetParticle(), EffectSlot_SetPosition(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::maxSpeed |
16.16 fixed-point pixels per frame
Definition at line 27 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_Initialize(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::acceleration |
16.16 fixed-point pixels per frame, each frame
Definition at line 28 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_Initialize(), and EffectSlot_UpdateMotion().
| s32 EffectSlot::scaleX |
16.16 fixed point, 0x10000 full size
Definition at line 29 of file effect_slot.h.
Referenced by AltmillerCave_ReleaseWallBurst(), BattleFx_DrawScaledObject(), BattleFx_RunVenusDjinnCapture(), BattleFx_UpdateRandomTargetParticle(), Djinn_RunJupiterJoinEffect(), Djinn_RunMarsJoinEffect(), EffectSlot_Initialize(), FieldFx_RunRetreat(), and Shop_RunPartyMemberIconBurst().
| s32 EffectSlot::scaleY |
16.16 fixed point, 0x10000 full size
Definition at line 30 of file effect_slot.h.
Referenced by AltmillerCave_ReleaseWallBurst(), BattleFx_DrawScaledObject(), BattleFx_RunVenusDjinnCapture(), BattleFx_UpdateRandomTargetParticle(), Djinn_RunJupiterJoinEffect(), Djinn_RunMarsJoinEffect(), EffectSlot_Initialize(), FieldFx_RunRetreat(), and Shop_RunPartyMemberIconBurst().
| u16 EffectSlot::heading |
| s16 EffectSlot::maxTurnStep |
1/65536 turns a frame
Definition at line 32 of file effect_slot.h.
Referenced by BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), and EffectSlot_UpdateMotion().
| EffectCallback EffectSlot::callback |
run each frame once callbackDelay is 0
Definition at line 33 of file effect_slot.h.
Referenced by EffectSlot_SetCallback(), and EffectSlot_Update().
| u16 EffectSlot::age |
frames
Definition at line 34 of file effect_slot.h.
Referenced by BattleFx_RunAngledApproachPhases(), EffectSlot_SetCallback(), and EffectSlot_Update().
| s16 EffectSlot::callbackDelay |
frames
Definition at line 35 of file effect_slot.h.
Referenced by BattleFx_UpdateRandomTargetParticle(), EffectSlot_SetCallback(), and EffectSlot_Update().
| s16 EffectSlot::orbitRadius |
pixels
Definition at line 36 of file effect_slot.h.
Referenced by BattleFx_RunAngledApproachPhases().
| s16 EffectSlot::orbitAngle |
1/32 turns
Definition at line 37 of file effect_slot.h.
Referenced by BattleFx_RunAngledApproachPhases().
| s8 EffectSlot::state |
the callback's own step; 0 when it is given
Definition at line 38 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_RunAngledApproachPhases(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), Djinn_RunMarsJoinEffect(), EffectSlot_SetCallback(), FieldFx_RunRetreat(), and Shop_RunPartyMemberIconBurst().
| s8 EffectSlot::stopAtTarget |
nonzero: lands on the target within 8 pixels
Definition at line 39 of file effect_slot.h.
Referenced by BattleFx_UpdateRandomTargetParticle(), EffectSlot_HasPendingTarget(), EffectSlot_Initialize(), and EffectSlot_UpdateMotion().
| s8 EffectSlot::limitTurnStep |
Clamp steering to maxTurnStep; zero faces the target directly.
Definition at line 40 of file effect_slot.h.
Referenced by AltmillerCave_UpdateWallFragment(), BattleFx_UpdateOrbitAndReturn(), BattleFx_UpdateRadialBurst(), BattleFx_UpdateRadialCamera(), BattleFx_UpdateRadialLaunch(), BattleFx_UpdateRadialMotion(), BattleFx_UpdateRadialSpread(), BattleFx_UpdateRandomTargetParticle(), EffectSlot_Initialize(), and EffectSlot_UpdateMotion().
| s8 EffectSlot::updateMotion |
nonzero: EffectSlot_UpdateMotion moves it each frame
Definition at line 42 of file effect_slot.h.
Referenced by EffectSlot_Initialize(), and EffectSlot_Update().
| s8 EffectSlot::render |
nonzero: drawn each frame
Definition at line 43 of file effect_slot.h.
Referenced by EffectSlot_Initialize(), and EffectSlot_Update().
| s8 EffectSlot::active |
nonzero while the slot is in use
Definition at line 44 of file effect_slot.h.
Referenced by BattleEffect_CleanupSceneObjects(), BattleFx_ClearActiveSlotsAndScheduleUpdates(), EffectSlot_Initialize(), EffectSlot_Update(), FieldFx_RunRetreat(), and Shop_RunPartyMemberIconBurst().
| u8 EffectSlot::randomValue |
random when filled; not read by name in TBS
Definition at line 45 of file effect_slot.h.
Referenced by EffectSlot_Initialize().
| u8 EffectSlot::flags |
bits: 2 z also lifts the sprite (set when the slot is filled)
Definition at line 47 of file effect_slot.h.
Referenced by BattleFx_DrawScaledObject(), and EffectSlot_Initialize().