Alchemy
Loading...
Searching...
No Matches

FieldEffect Struct Reference

A field effect: a small object on the field that moves at its velocity and grows and spins at its rates, run by its script and update hook. More...

#include <system/field_effect.h>

Data Fields

u8 unk00 [8]
 FieldActor's script pointer, cursor and facing; not named by this view.
s32 x
 16.16 fixed-point pixels
s32 y
 16.16 fixed-point pixels
s32 z
 16.16 fixed-point pixels
u8 unk14 [4]
 FieldActor's terrainHeight; not named by this view.
s32 scaleX
 16.16 fixed point, 0x10000 full size
s32 scaleY
 16.16 fixed point, 0x10000 full size
u8 unk20 [3]
 FieldActor's radius and terrainId; not named by this view.
u8 priorityFlags
 ActorPriorityFlag bits: the spawner clears ACTOR_PRIORITY_AUTOMATIC when EFFECT_USE_PRIORITY sets the sprite's priority.
u8 unk24 [0x0c]
 FieldActor's velocityX to velocityZ; effects move by velocity instead.
s32 scaleRateX
 Added to scaleX each frame by the update hooks, in 16.16 fixed point a frame; zeroed by the spawner.
s32 scaleRateY
 as scaleRateX, for scaleY
u8 unk38 [0x0c]
 FieldActor's targetX to targetZ; not named by this view.
struct Vector3 velocity
 Added to x, y and z each frame by the update hooks, in 16.16 fixed-point pixels per frame; FieldActor's bounce, gravity and riseBaseY.
struct AnimationObject * sprite
 the sprite spin turns
u8 unk54
 FieldActor's spriteStorageKind; not named by this view.
u8 motionFlags
 ActorMotionFlag bits; zeroed by the spawner.
u8 unk56 [3]
 FieldActor's unk56; not named by this view.
u8 collisionFlags
 FieldActor's collisionFlags; not named by this view.
u8 unk5a [0x0a]
 FieldActor's steeringFlags to riseEnabled; not named by this view.
u16 spin
 Added to the sprite's rotation each frame by the update hooks, in 1/65536 turns per frame; Imil's rising effects keep a drift here instead.
u8 unk66 [2]
 FieldActor's work; not named by this view.
s32 countdown
 Frames until a scene's update hook releases the effect: 20 for Altin Peak's spray, 60 for Imil's rising effects.
void(*) update (union FieldObject *object)
 Called each frame while the effect is live: the spawner sets BattleFx_UpdateObjectMotionScaleAndLinkedAngle, or options.update.

Detailed Description

A field effect: a small object on the field that moves at its velocity and grows and spins at its rates, run by its script and update hook.

Definition at line 13 of file field_effect.h.

Field Documentation

◆ unk00

u8 FieldEffect::unk00[8]

FieldActor's script pointer, cursor and facing; not named by this view.

Definition at line 15 of file field_effect.h.

◆ x

s32 FieldEffect::x

◆ y

s32 FieldEffect::y

16.16 fixed-point pixels

Definition at line 17 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), FieldFx_UpdateParticleMotionAndScale(), and ImilFuchinFalls_SpawnDust().

◆ z

s32 FieldEffect::z

16.16 fixed-point pixels

Definition at line 18 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), FieldFx_UpdateParticleMotionAndScale(), and ImilFuchinFalls_SpawnDust().

◆ unk14

u8 FieldEffect::unk14[4]

FieldActor's terrainHeight; not named by this view.

Definition at line 19 of file field_effect.h.

◆ scaleX

s32 FieldEffect::scaleX

16.16 fixed point, 0x10000 full size

Definition at line 20 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), FieldFx_UpdateParticleMotionAndScale(), and ImilFuchinFalls_SpawnDust().

◆ scaleY

s32 FieldEffect::scaleY

16.16 fixed point, 0x10000 full size

Definition at line 21 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), FieldFx_UpdateParticleMotionAndScale(), and ImilFuchinFalls_SpawnDust().

◆ unk20

u8 FieldEffect::unk20[3]

FieldActor's radius and terrainId; not named by this view.

Definition at line 22 of file field_effect.h.

◆ priorityFlags

u8 FieldEffect::priorityFlags

ActorPriorityFlag bits: the spawner clears ACTOR_PRIORITY_AUTOMATIC when EFFECT_USE_PRIORITY sets the sprite's priority.

Definition at line 25 of file field_effect.h.

Referenced by ImilFuchinFalls_SpawnDust().

◆ unk24

u8 FieldEffect::unk24[0x0c]

FieldActor's velocityX to velocityZ; effects move by velocity instead.

Definition at line 27 of file field_effect.h.

◆ scaleRateX

s32 FieldEffect::scaleRateX

Added to scaleX each frame by the update hooks, in 16.16 fixed point a frame; zeroed by the spawner.

Definition at line 30 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), Effect_InitializeMotion(), FieldFx_UpdateParticleMotionAndScale(), and ImilFuchinFalls_SpawnDust().

◆ scaleRateY

s32 FieldEffect::scaleRateY

◆ unk38

u8 FieldEffect::unk38[0x0c]

FieldActor's targetX to targetZ; not named by this view.

Definition at line 32 of file field_effect.h.

◆ velocity

struct Vector3 FieldEffect::velocity

Added to x, y and z each frame by the update hooks, in 16.16 fixed-point pixels per frame; FieldActor's bounce, gravity and riseBaseY.

Definition at line 35 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), Effect_InitializeMotion(), Event_MovePillarSwitchBlock(), FieldFx_UpdateParticleMotionAndScale(), ImilFuchinFalls_SpawnDust(), and VenusLighthouseAerie_CombineSaturosAndMenardi().

◆ sprite

struct AnimationObject* FieldEffect::sprite

◆ unk54

u8 FieldEffect::unk54

FieldActor's spriteStorageKind; not named by this view.

Definition at line 37 of file field_effect.h.

◆ motionFlags

u8 FieldEffect::motionFlags

ActorMotionFlag bits; zeroed by the spawner.

Definition at line 38 of file field_effect.h.

Referenced by ImilFuchinFalls_SpawnDust().

◆ unk56

u8 FieldEffect::unk56[3]

FieldActor's unk56; not named by this view.

Definition at line 39 of file field_effect.h.

◆ collisionFlags

u8 FieldEffect::collisionFlags

FieldActor's collisionFlags; not named by this view.

Definition at line 40 of file field_effect.h.

◆ unk5a

u8 FieldEffect::unk5a[0x0a]

FieldActor's steeringFlags to riseEnabled; not named by this view.

Definition at line 42 of file field_effect.h.

◆ spin

u16 FieldEffect::spin

Added to the sprite's rotation each frame by the update hooks, in 1/65536 turns per frame; Imil's rising effects keep a drift here instead.

Definition at line 45 of file field_effect.h.

Referenced by Effect_AdvanceMotion(), Effect_InitializeMotion(), FieldFx_UpdateParticleMotionAndScale(), and Imil_UpdateRisingEffect().

◆ unk66

u8 FieldEffect::unk66[2]

FieldActor's work; not named by this view.

Definition at line 46 of file field_effect.h.

◆ countdown

s32 FieldEffect::countdown

Frames until a scene's update hook releases the effect: 20 for Altin Peak's spray, 60 for Imil's rising effects.

Definition at line 49 of file field_effect.h.

Referenced by AltinPeak_DriftSpray(), AltinPeak_ShowFirstBeastRoute(), AltinPeak_SpawnSpray(), AltinPeak_UpdateBeastHops(), Beast_Hop(), Beast_SpawnSpray(), Imil_UpdateRisingEffect(), and Spray_Drift().

◆ update

void(*) FieldEffect::update(union FieldObject *object)

Called each frame while the effect is live: the spawner sets BattleFx_UpdateObjectMotionScaleAndLinkedAngle, or options.update.

Definition at line 52 of file field_effect.h.

Referenced by AltinPeak_SpawnSpray(), ImilFuchinFalls_SpawnDust(), and Vault_SpawnDriftingEffect().