Alchemy
Loading...
Searching...
No Matches

effect.c

Go to the documentation of this file.
1/// @file
2/// The battle effect object: everything drawn over the battle while an
3/// ability plays. effect_internal.h holds what every effect shares (includes,
4/// macros and the frame-loop helpers); the effects are in the files under
5/// parts/, included here in the order their code has in the ROM. That order
6/// mixes families, Djinn, summons and shared machinery, and each part is one
7/// run of it, named for what it holds. Camelot's own files are not
8/// recoverable: the ROM shows one object, and these parts are ours, cut where
9/// one family ends and the next begins.
10///
11/// To find the effect a move plays, search for the move's English name: each
12/// handler's "Abilities:" comment lists the abilities that reach it, and each
13/// row of gBattleFx_EffectHandlers (effect_table.c) gives its kind, its part
14/// and its first ability. README.md gives the words and prefixes the parts
15/// use, and ../MATCHING.md the spellings some sites keep to match. The shared
16/// machinery:
17///
18/// Entry points dispatch.c: BattleFx_RunTableEffect,
19/// BattleFx_RunSceneEffect; positions.c:
20/// BattleFx_DispatchByIdRange
21/// Canvas canvas.c: BattleFx_BeginCanvasLayer,
22/// BattleFx_EndCanvasLayer, BattleFx_WipeCanvas,
23/// BattleFx_ProcessPendingGraphicsTransfer
24/// Blitters blitter.c: BattleFx_BuildBlitter; mirrored_wall.c:
25/// BattleFx_FetchRectangleBlitters
26/// Motion positions.c: EffectStep_AdvanceWithGravity2D and 3D,
27/// BattleUnit_ProjectToScreen; hail.c: Camera_ApplyShake
28/// Targets dispatch.c: BattleFx_SelectLivingTargets;
29/// helm_splitter.c: BattleFx_PlaceFormationObjects
30///
31/// README.md in this folder explains the ideas: the canvas, blitters, the
32/// frame loop, particles, pictures and how to change an effect.
33
34#include "effect_internal.h"
35
36// The parts, in ROM order: the order of these includes is the order of the
37// code in the ROM.
38#include "parts/display.c"
39#include "parts/falling.c"
40#include "parts/streaks.c"
41#include "parts/target_strike.c"
42#include "parts/death_plunge.c"
43#include "parts/spider_web.c"
44#include "parts/canvas.c"
45#include "parts/planet_diver.c"
47#include "parts/mirrored_wall.c"
48#include "parts/djinn_beams.c"
49#include "parts/lobbed_shells.c"
50#include "parts/condemn.c"
51#include "parts/bind.c"
52#include "parts/stars.c"
53#include "parts/procne.c"
54#include "parts/tiamat.c"
55#include "parts/nereid.c"
56#include "parts/vortices.c"
57#include "parts/prism.c"
58#include "parts/plasma.c"
59#include "parts/volcano.c"
60#include "parts/target_motes.c"
61#include "parts/djinn_heal.c"
62#include "parts/dispatch.c"
63#include "parts/cybele.c"
64#include "parts/boreas.c"
65#include "parts/drain.c"
66#include "parts/healing.c"
67#include "parts/stat_change.c"
68#include "parts/flare.c"
69#include "parts/quake.c"
70#include "parts/fire.c"
71#include "parts/frost.c"
72#include "parts/ray.c"
73#include "parts/eruption.c"
74#include "parts/burst_shower.c"
75#include "parts/orbiting.c"
76#include "parts/atalanta.c"
77#include "parts/growth.c"
78#include "parts/bolt.c"
79#include "parts/projectiles.c"
81#include "parts/djinn_attacks.c"
82#include "parts/hail.c"
83#include "parts/thor.c"
84#include "parts/spire.c"
85#include "parts/burst_scene.c"
86#include "parts/gaia.c"
87#include "parts/positions.c"
88#include "parts/beams.c"
90#include "parts/torch.c"
91#include "parts/helm_splitter.c"
93#include "parts/ramses.c"
94#include "parts/dragon_cloud.c"
95#include "parts/annihilation.c"
96#include "parts/ragnarok.c"
97#include "parts/titan_blade.c"
98#include "parts/judgment.c"
99#include "parts/kirin.c"
100#include "parts/neptune.c"
101#include "parts/thrash.c"
102#include "parts/undead_sword.c"
103#include "parts/blitter.c"
Annihilation.
The Atalanta summon.
Beam sequences and the ring and spark scene.
Bind and Triangle Strike.
The blitter builder, BattleFx_BuildBlitter.
Bolt.
The Boreas summon.
Gust, Flying Attack and the rush bursts.
The blessings' burst showers.
The canvas layer: transfers, opening and closing, tile maps, lines.
The casting impact scene and its image helpers.
Condemn.
The Cybele summon.
Death Plunge, the blade rain, the element pillar, the element burst and the shattering picture.
Display, scroll and window HBlank DMA helpers.
The Mercury, Jupiter, Venus and Mars Djinn attacks.
Revive, Water of Life, Quartz and Dew.
Djinn healing.
Dragon Cloud.
Break and Drain.
Running scene and table effects, and shared target helpers.
Frost.
Growth, Punji, Vine and Thorn.
What every part of the battle effect object shares: its includes, macros and frame-loop helpers.
Smoke Bomb and Blast.
Ice and Douse: shards and bolts falling on the targets' side.
Fire.
Flare.
Gaia.
Demon Night, Rumble and Haunting.
Hail and Ground.
Healing motes: Ply, Wish, Cure, Cure Poison.
Helm Splitter, formations and the impact burst.
The Judgment summon.
The Kirin summon.
Lobbed shells (Mad Spatter, Decompose, Bone Chiller ...).
The walls of Berserk, Spasm and Recovery.
The Neptune summon.
The Nereid summon.
Swirling stars, orbiting skulls and target bursts.
Meteor and Outer Space.
Planet Diver, Haunt and the orbiting spirals.
Plasma, and the spark groups of Blast and Dynamite.
Effect positions, projection and id dispatch helpers.
Prism.
The Procne summon.
Projectile volleys (Slash, Shuriken, Wing Flutter, Blizzard ...).
Quake.
Ragnarok.
The Ramses summon.
Ray.
Rushing strikes (Bone Charge, Brute Force, Onslaught, Headbutt).
Poison Beat, Spinning Beat and Spider Web.
Spire.
Astral Blast and Shining Star.
Stat boosts and reductions (Impact, Guard, Ward, Dull, Weaken ...).
Streak volleys (Sonic Wave, Shriek, War Cry ...) and mote fountains (Sleep Star, Soothing Star).
Status motes: Taint, Delude, Paralyze, Sleep, Curse ....
Monster bites, fangs and slashes on one target.
The Thor summon.
Thrash, Quick Strike and Vorpal Slash.
Dragon Driver and the Tiamat summon.
Titan Blade.
Torch and Kite.
Undead Sword.
Volcano.
Froth and Whirlwind.