58 particle->callback =
NULL;
62 for (i = 0; i <= 2; i++) {
90 particle->
y -= 0x4ccc;
133 work->
x = target->
pos.
x;
134 work->
z = target->
pos.
z;
144 to->
y =
y + (32 << 16);
147 to->
y =
y + (80 << 16);
150 for (; step < steps; step++) {
160 t += step * (e - t) / 10;
164 t += step * (e - t) / 10;
168 t += step * (e - t) / 10;
184 for (step = 0; step < count; step++) {
189 if (step == count - 1) {
213 for (step = 0; step < count; step++) {
244 t += step * (e - t) / 10;
248 t += step * (e - t) / 10;
252 t += step * (e - t) / 10;
260 }
while (step < steps);
void FieldFx_SpawnRandomAngleTriplet(union FieldObject *fieldObject)
Per-frame update of a falling particle: on reaching altitude, it scatters three small particles.
void FieldFx_RunDouse(void)
An orb of light rises from 16 pixels above the target to 32 pixels above the destination (80 with var...
void BattleFx_UpdateDriftingFallObject(union FieldObject *fieldObject)
Per-frame update: drifts from side to side as it slowly falls, and is released on reaching the ground...
void FieldFx_RunDouseOnTarget(s32 unused)
Runs Douse cast on a target, through FieldFx_RunDouse.
void ObjectDispatch_ReleaseFar(struct DispatchObject *obj)
s32 Map_GetTerrainHeightFar(s32 layer, s32 x, s32 y)
void ObjectDispatch_SelectAnimationFar(void *raw, s32 no)
void ObjectDispatch_InitializeFar(struct DispatchObject *obj, const s32 *script)
void Animation_ApplyChildValuesFar(struct DispatchObject *obj, u32 val)
void AudioCommand_PlayFar(s32 id)
void WaitFrames(s32 frames)
The game's frame loop: runs frames frames and returns.
static __inline__ s32 BattleFx_Interpolate(s32 to, s32 from, s32 step)
const s32 gBattleFx_CommonParticleScript[]
[0] only frees the actor, +1 waits for it to arrive and frees it; +3 is gBattleFx_SourceHoldScript,...
void * gEffectWork
Slot 56: points to a scene-specific structure.
#define SET_POSITION(p, px, py, pz)
Sets the position or the velocity of a particle, a piece of debris or an object in one statement.
void Vector_AddPolarOffset(s32 radius, s32 angle, void *position)
Moves the point position by radius in direction angle on the ground plane: x by the cosine,...
u32 Random16(void)
Advances the game's random number generator (the C library's classic linear congruential one),...
void Motion_SetTargetPositionFromMagnitudeAngle(struct ObjectRuntime *object, s32 magnitude, s32 angle)
Sends an object toward the point magnitude (16.16 pixels) away from it in direction angle: sets its m...
struct ObjectRuntime * Object_Spawn(s32 kind, s32 x, s32 y, s32 z)
Creates an object for an effect, at the caster's ground height, with sprite priority 0 and animation ...
void BattleEffect_InitializeSharedScene(void)
Saves the palettes for the effect (once, unless an effect is already shown) and fades them toward one...
void BattleFx_PrepareBufferInterpolation(void)
Fades the palettes back from an effect's colours to the saved ones (or to palette 0x10001 while an ef...
What every part of psynergy_effects.c shares: its includes and the macros and types more than one par...
A field object as the object dispatcher's far calls take it.
A FieldActor seen with the halfword at 0x5e (here its phase), which FieldActor does not name.
void(*) callback(union FieldObject *object)
per-frame update
s32 altitude
the height it falls to
struct WaveFxSprite * sprite
Douse's effect work: the orb's destination (or the angle toward it), the target, and the flags that c...
s32 z
the ground under the orb's destination
A world position, as Camera_WorldToScreen converts it to the screen.
s32 y
16.16 fixed-point pixels
s32 z
16.16 fixed-point pixels
s32 x
16.16 fixed-point pixels
One of the 64 field objects in the object pool (heap slot 5): its script, position,...
s32 terrainHeight
16.16 fixed-point pixels
s32 x
16.16 fixed-point pixels
s32 y
16.16 fixed-point pixels
A field actor (struct FieldActor), seen with its position as one vector.
A particle's sprite, seen as the two fields Douse and Mind Read set on it.
An object on the field, read as an actor or as an effect.