1#ifndef ALCHEMY_EFFECT_SLOT_H
2#define ALCHEMY_EFFECT_SLOT_H
11#define EFFECT_NO_TARGET ((s32)0x80000000)
The edition's language, for C to compare (LANGUAGE == LANGUAGE_GERMAN).
void(*) EffectCallback(struct EffectSlot *)
STATIC_ASSERT, a compile-time check that emits nothing.
#define STATIC_ASSERT(condition)
C89 permits repeated extern declarations of the same array.
#define offsetof(type, member)
A particle a Psynergy effect moves and draws: its sprite, its position and target,...
s32 speed
16.16 fixed-point pixels per frame
s32 scaleY
16.16 fixed point, 0x10000 full size
EffectCallback callback
run each frame once callbackDelay is 0
s8 state
the callback's own step; 0 when it is given
void * object
the slot's sprite, released with the slot
s32 originX
16.16 fixed-point pixels; where the slot started
s32 z
16.16 fixed-point pixels
s32 x
16.16 fixed-point pixels
s16 maxTurnStep
1/65536 turns a frame
s8 limitTurnStep
Clamp steering to maxTurnStep; zero faces the target directly.
s32 originZ
16.16 fixed-point pixels; where the slot started
s32 targetZ
16.16 fixed-point pixels; EFFECT_NO_TARGET at rest
s32 scaleX
16.16 fixed point, 0x10000 full size
s32 targetX
16.16 fixed-point pixels; EFFECT_NO_TARGET at rest
s8 active
nonzero while the slot is in use
s8 updateMotion
nonzero: EffectSlot_UpdateMotion moves it each frame
u8 flags
bits: 2 z also lifts the sprite (set when the slot is filled)
s32 maxSpeed
16.16 fixed-point pixels per frame
u8 randomValue
random when filled; not read by name in TBS
s8 stopAtTarget
nonzero: lands on the target within 8 pixels
s32 acceleration
16.16 fixed-point pixels per frame, each frame
s8 render
nonzero: drawn each frame
The integer types, TRUE, UNUSED and the fixed-address macros.