Alchemy
Loading...
Searching...
No Matches

farcall.h

Go to the documentation of this file.
1#ifndef ALCHEMY_FARCALL_H
2#define ALCHEMY_FARCALL_H
3
4/// @file
5/// Public interfaces to the engine's code banks. Each bank exposes a stable
6/// jump table, so another bank can reach its routines beyond Thumb's call
7/// range. These headers declare ordinary functions; the ordered assembly tables
8/// in src/system/far_call own the entry names and the routines they jump to.
9/// For example, UiText_DrawNumberAtOffsetFar is the window bank's entry for
10/// UiText_DrawNumberAtOffset. Overlays bind their imported names to these
11/// entries in src/system/overlay.inc, using the same 8-byte jump mechanism.
12/// A file with a local declaration defines `OWN_<name>` before including this
13/// header to keep that declaration in scope.
14
15#include "callback_scheduler.h"
16#include "effect_slot.h"
17#include "irq.h"
18#include "types.h"
19#include "edition.h"
20
21struct AffineTransform;
22struct AnimationEntry;
24struct AnimationObject;
27struct BattleAct;
28struct BattleObj;
29struct BattleUnit;
30struct DispatchObject;
31struct EffectLaunch;
32struct EffectPosition;
33struct EffectSlot;
34struct EffectVector;
35struct EnemyDefinition;
36struct FieldActor;
37struct FieldPosition;
38struct FxObject;
39struct ItemDefinition;
40struct LevelUpResult;
41struct MenuSprite;
42struct MotionObject;
43struct ObjectRuntime;
44struct PolarOffsetOutput;
45struct RenderInput;
46struct RenderOutput;
47struct SceneEvent;
48struct ScenePlacement;
50struct ShopCursor;
51struct SpritePlacement;
52struct SpriteScale;
53struct SummonDefinition;
54struct TransitionActorList;
55struct UiWindow;
56struct WorldPosition;
57
58// Entries have their target's parameters. Seven keep empty parameter lists
59// (no prototype): their callers pass different arguments than the target
60// takes, which C89 accepts with no prototype in scope. They are the
61// blank-display runners (the entrance in r0), Unit_LearnPsynergyFar (called
62// with none), Party_ShowJoinedMessageFar (two), UiTimedNotice_CreateFar,
63// Menu_RunWorkspaceResultLoopFar and Runtime_GetBuildStampTimeFar (one
64// each). The near call UiWork_ResetCounters is declared the same way in
65// unit/window/window.h (UiWindow_Create passes it one).
66#include "farcall/runtime.h"
67#include "farcall/field.h"
68#include "farcall/window.h"
69#include "farcall/game.h"
70#include "farcall/object.h"
71#include "farcall/menu.h"
72#include "farcall/shop.h"
73#include "farcall/battle.h"
74#include "farcall/effect.h"
75#include "farcall/scroll.h"
76#include "farcall/palette.h"
77#include "farcall/blank_run.h"
78#include "farcall/blank_load.h"
79#include "farcall/sound.h"
80#include "farcall/resource.h"
81
82#endif
The reel-game entry point.
The display-blanked callback runner.
The task scheduler: tasks, their order and the scheduler's state.
The edition's language, for C to compare (LANGUAGE == LANGUAGE_GERMAN).
Effect slots: the particles Psynergy effects move and draw.
Battle state, unit motion and presentation services.
Battle-effect dispatch, drawing and presentation setup.
Field actors, movement, map drawing and scene services.
Party members, items, Djinn and game-state operations.
Party menus and their interactive selection screens.
Scene events, field Psynergy, objects and effect lifecycles.
Resource animation metadata lookup.
Frame scheduling, memory, resources and core runtime services.
The scrolling slideshow entry point.
Shops, inns and the cursors used by their screens.
Audio mixing, playback commands and music-player updates.
Window construction, text drawing and selection interfaces.
The hardware's interrupt sources and the interrupt handler table.
Title, introduction and splash-screen presentation.
A sprite's rotation and scale: scales in 8.8 fixed point (0x100 is full size), the angle in 1/65536 t...
Definition affine.h:13
One animation layer of a sprite: its animation id, frames, running script and timer.
Definition animspr.h:37
An animation's metadata: the sprite's size, scale and offsets, how its frames are drawn and decoded,...
An animated sprite: its image and shadow, scale, rotation, size and up to four animation layers.
Definition animspr.h:108
An ability's definition, a row of gBattleAction_DefinitionTable: its targeting, kind,...
A unit's chosen action for the turn: its command, the command's parameter, its target and range,...
The command shared by an effect's caller, dispatcher and handlers.
A unit's place on the battlefield: its sprite object, resources and animations, its anchor spot and s...
A unit in battle: a party member's or an enemy's stats, Psynergy, items, Djinn and ailments.
A field object as the object dispatcher's far calls take it.
A point projected onto the screen, with its depth.
Definition effect_step.h:46
A particle a Psynergy effect moves and draws: its sprite, its position and target,...
Definition effect_slot.h:18
A world position, as Camera_WorldToScreen converts it to the screen.
Definition battle.h:73
An enemy's definition: its level and stats, items, element preset, the actions it chooses from and it...
Definition character.h:89
A field actor: a person or thing on the field with a position, motion toward a target,...
Definition field_obj.h:30
A position on the field.
An item's definition: its price, type, who can equip it, its bonuses and unleash, its effects and the...
Definition item.h:104
A level up's result: the level reached, an ability learned and the gain in each stat.
Definition character.h:136
A menu sprite: a list link and its OAM attributes, as two words or as fields.
Definition menu_list.h:24
An effect object that moves and draws one sprite: its position, scale, velocity and target,...
Definition motobj.h:20
One of the 64 field objects in the object pool (heap slot 5): its script, position,...
A 16-byte record of a rectangle.
A render output: a sprite in a window's output list (a character, an icon or a portrait),...
A scene event: its kind and detail, the trigger it answers, its condition and its value (a message or...
An actor a scene places: its sprite, the condition for placing it, how it behaves,...
Definition field_scene.h:81
A field object as the script commands' overlap checks see it.
Cursor that approaches its target, shared by shop, name entry and settings.
Definition cursor.h:13
A sprite's screen position and its two vertical offsets, in 16.16 pixels.
Horizontal and vertical sprite scale; 0x10000 is the original size.
A summon: its name's message and the Djinn of each element it needs.
A window: a framed rectangle of the tilemap with its sprite outputs, its opening or closing animation...
Definition uiwindow.h:11
A position on the world map, as its walkability check reads it.
Definition map.h:74
The integer types, TRUE, UNUSED and the fixed-address macros.