28#include "text/msg_ids.h"
41#define FLAG_NYUNPA_TEST_DECLINED 0x300
42#define FLAG_FEH_SCHOOL_SAW_TREE_FALL 0x301
50#define JUMPING_STUDENT 12
53#define TRAINING_TREE 19
54#define TRAINING_TREE_TARGET 20
253 s32 alreadyDeclinedTrial;
259 if (alreadyDeclinedTrial != 0) {
423 MESSAGE_SET(MsgXianFlexibilityJumpingVeryImportantIn);
453 for (turnStep = 8; turnStep > 3; turnStep--) {
454 angle = turnStep << 12;
455 tree->sprite->rotation = angle;
467 0xffffcccd, 0x6666, 0, 0, 0);
469 0xffff3334, 0x4ccc, 0, 0, 0);
471 0xffff0000, 0x3333, 0, 0, 0);
482 for (turnStep = 8; turnStep <= 12; turnStep++) {
483 angle = turnStep << 12;
484 tree->sprite->rotation = angle;
491 tree->
scaleX = 0xffff3334;
494 0x10000, 0x3333, 0, 0, 0);
498 0x3333, 0x6666, 0, 0, 0);
509 tree->
z.
fixed += 0xffff0000;
513 }
while (stepIndex < 4);
515 tree->sprite->rotation = rotation;
518 0xffff3334, 0, 0xffffcccd, 0, 0);
520 0x0000cccc, 0, 0xffffcccd, 0, 0);
522 tree->
z.
fixed + (160 << 12), 0x00003333, 0, 0xffff0000, 0, 0);
523 Effect_Spawn(tree->
x.
fixed + (192 << 11), tree->
y.
fixed,
524 tree->
z.
fixed + (160 << 12), 0x00003333, 0, 0xffff0000, 0, 0);
543 }
while (stepIndex < 4);
545 tree->sprite->rotation = 0;
546 tree->
z.
fixed += 0x180000;
552 particleSpeed = 0x3333;
554 particleSpeed, 0, 0);
556 particleSpeed, 0, 0x10000, 0, 0);
558 particleSpeed, 0, 0x10000, 0, 0);
567 quadrantLimit = 0x3fff;
568 if (((leaderFacing + -0x2000) << 16) <= 0x3fff0000) {
572 }
else if ((
u16)(leaderFacing - 0x6000) <= quadrantLimit) {
575 }
else if ((
u16)(leaderFacing + 0x6000) <= quadrantLimit) {
593 rulesMessage = MsgXianCannotPushHands;
719 }
else if ((
u16)(
facing - 0x6000) <= 0x3fffu) {
721 }
else if ((
u16)(
facing + (192 << 7)) <= 0x3fffu) {
744 }
else if ((
u16)(
facing - 0x6000) <= 0x3fff) {
746 }
else if ((
u16)(
facing + 0x6000) <= 0x3fff) {
756 if (leader->
z.
part.pixel <= 209) {
1253 actor->
y.
fixed = 0xc0000;
1356 if ((paletteDraw & 7) == 0)
1365 leader->
y.
fixed + (192 << 13), leader->
z.
fixed, 0, -fallSpeed, 0,
1366 144 << 12, &options);
1569 MESSAGE_SET(MsgXianMasterHamaMeditatingPleaseExtremely);
2110 s32 heardHsuTrapped;
2128 if (heardHsuTrapped == 0) {
2131 trainingTree->
y.
fixed = 0xc0000;
2132 trainingTree->
targetY = 0xc0000;
2133 trainingTree->
scaleX = 0xcccc;
2134 trainingTree->
scaleY = 0x8000;
2135 trainingTree->sprite->rotation = 0x8000;
2150 trainingTree->
y.
fixed = 0xc0000;
2151 trainingTree->
targetY = 0xc0000;
2152 trainingTree->
scaleX = 0xcccc;
2153 trainingTree->
scaleY = 0x8000;
2155 trainingTree->sprite->rotation = 0x8000;
2158 OverlayObject_PrepareObject(0x1300000, 0x180000, 0xe00000, 223);
2195 effectWork[0x23] = 0;
2216 options.
type = 0x0119;
2220 for (shotIndex = 0; shotIndex < 8; shotIndex++) {
2222 if (shotIndex & 1) {
2226 0, 0x9999, 0, 0x00360001, &options);
2265 options.
type = 0x011d;
2266 for (particleIndex = 0; particleIndex < 64; particleIndex++) {
2267 if ((particleIndex & 3) == 0) {
2270 particleX = hama->
x.
fixed +
2273 particleY = hama->
y.
fixed +
2276 Effect_Spawn(particleX, particleY, hama->
z.
fixed, 0, riseSpeed, 0,
2277 152 << 13, &options);
2370 {0,
CONDITION_ALWAYS, 296, 0, 488,
FACING_NORTH, 0, -1, -1, -1, -1, 0},
2371 {1,
CONDITION_ALWAYS, 296, 0, 504,
FACING_NORTH, 0, -1, -1, -1, -1, 0},
2372 {2,
CONDITION_ALWAYS, 296, 0, 304,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
2373 {3,
CONDITION_ALWAYS, 168, 0, 360,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
2374 {5,
CONDITION_ALWAYS, 232, 0, 328,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
2379 {0,
CONDITION_ALWAYS, 168, 0, 552,
FACING_NORTH, 0, -1, -1, -1, -1, 0},
2380 {1,
CONDITION_ALWAYS, 168, 0, 552,
FACING_NORTH, 0, 48, 384, 288, 576, 0},
2381 {2,
CONDITION_ALWAYS, 256, 0, 264,
FACING_NORTH, 0, 48, 80, 368, 288, 0},
2382 {3,
CONDITION_ALWAYS, 472, 0, 552,
FACING_NORTH, 0, 352, 384, 592, 576, 0},
2383 {4,
CONDITION_ALWAYS, 304, 0, 248,
FACING_SOUTH, 0, 48, 80, 368, 288, 0},
Ability numbers, named from the English release.
void ObjectGroup_SetChildValue(struct FieldActor *actor, s32 param)
Sets the param byte of every animated part of an actor's sprite.
struct FieldActor * Object_GetById(s32 actor)
Returns an actor, or NULL if it does not exist.
const struct ScenePlacement * Scene_GetPlacements(void)
const struct SceneEntrance * Scene_GetEntrances(void)
const struct SceneEvent * Scene_GetEvents(void)
const u32 * Scene_GetExits(void)
Both scenes share one exit table.
const struct SceneRegion * Scene_GetRegions(void)
s32 Scene_Initialize(void)
Sets up whichever scene is being entered and runs its arrival events.
const s32 * gEffectScripts[]
Calls through a function pointer, by argument count.
void(*) SchedulerCallback(void)
The engine calls the debug menus import, and their palette swatch tiles.
The engine call layer: one typed inline for each of the thirteen main-image routines below that the s...
static s32 FieldScheduler_AddCallback(SchedulerCallback callback, s32 priority)
Registers a main-image scheduler callback.
Scene commands: the all-caps macros the scene scripts are written in.
#define OBJ_DIR(no, d, t)
#define OBJ_POS_SET(no, x, z)
#define MESSAGE_OPEN(no, f)
#define OBJ_WALK(no, x, z)
#define MESSAGE_PUT(no, f)
#define OBJ_FACE(no, to, t)
#define OBJ_EMOTE(no, e, t)
#define OBJ_SPEED(no, s, a)
void FieldScene_PrepareActors(struct ScenePlacement *entry)
@ EFFECT_USE_PALETTE
options.palette, as its group child value
The scene script layer: the engine services a scene's events call, declared once (Engine_EventBegin,...
static s32 Event_OpenMessage(s32 speaker, s32 flags)
static void Actor_SetDestination(s32 actor, s32 x, s32 z)
void Engine_ActorSetAnimationAndWait(s32 actor, s32 animation)
void Engine_SanctumOpen(s32 priest)
static void Map_AnimateCells(const u16 *steps, s32 destX, s32 destY)
void Engine_PsynergyBegin(s32 ability, s32 flags)
static void Event_ShowMessageAndWait(s32 speaker, s32 flags, s32 frames)
s32 Engine_EventChooseYesNo(s32 actor, s32 flags)
void Engine_MessageShowCentered(s32 message, s32 flags)
void Engine_EventShowMessageAndWait(s32 speaker, s32 flags, s32 frames)
void Engine_CameraSetSpeed(s32 speed, s32 acceleration)
static void Actor_WalkToAndWait(s32 actor, s32 x, s32 z)
static void Camera_SetSpeed(s32 speed, s32 acceleration)
void Engine_PsynergyRaiseHands(void)
void Engine_PsynergyLowerHands(void)
void Engine_CameraMoveToActor(s32 actor, s32 pan)
void Engine_ActorJump(s32 actor, s32 height, s32 frames)
s32 Engine_MathSin(s32 angle)
#define MAP_CELL_STEP(srcX, srcY, width, height, frames)
static void Actor_SetDestinationOffset(s32 actor, s32 dx, s32 dz)
void Engine_ActorSetSpeed(s32 actor, s32 speed, s32 acceleration)
void Engine_ActorFaceDirection(s32 actor, s32 facing, s32 frames)
void Engine_EventCloseScreen(void)
void Engine_ActorWalkToAndWait(s32 actor, s32 x, s32 z)
static void Event_SkipMessages(s32 count)
static void Actor_FaceActor(s32 actor, s32 target, s32 frames)
static void ColorBuffer_ApplyTarget(s32 value, s32 mode)
void Engine_EventWaitForScreen(void)
void Engine_ActorDestroy(s32 actor)
s32 Engine_EventAskYesNo(s32 speaker, s32 flags)
void Engine_EventOpenScreen(void)
void Engine_GameFlagSet(s32 flag)
void Engine_GameFlagClear(s32 flag)
void Engine_CameraWaitForMove(void)
static void Actor_SetActionScript(s32 actor, const s32 *script)
The engine encodes either a built-in action or an action-script address.
void Engine_ActorWaitForMove(s32 actor)
void Engine_CameraFollowActor(s32 actor, s32 keep_position)
static void Map_CopyCellAttributes(s32 srcX, s32 srcY, s32 width, s32 height, s32 destX, s32 destY)
void Engine_ActorRunRepeatedMotion(s32 actor, s32 repeats)
static void Event_ShowMessage(s32 speaker, s32 flags)
void Engine_ActorSetChildValue(s32 actor, s32 value)
#define MAP_CELL_STEPS_END
s32 Engine_GameFlagIsSet(s32 flag)
void Engine_PsynergyPlayEffect(s32 effect)
void Engine_ActorStartRepeatedMotion(s32 actor, s32 repeats)
s32 Engine_MathCos(s32 angle)
static s32 Event_AskYesNo(s32 speaker, s32 flags)
void Engine_ColorBufferInterpolate(s32 frames)
static void Camera_MoveTo(s32 fixed_x, s32 fixed_y, s32 fixed_z, s32 pan)
static void Actor_SetPosition(s32 actor, s32 fixed_x, s32 fixed_z)
void Engine_ActorSetDestinationOffset(s32 actor, s32 dx, s32 dz)
void Engine_ActorFaceEachOther(s32 actor, s32 other, s32 frames)
static void Actor_SetAttachedEffect(s32 actor, s32 effect)
void Engine_PsynergySetTarget(s32 caster, s32 target)
void Engine_ColorBufferApplyTarget(s32 value, s32 mode)
void Engine_ColorBufferApplySource(s32 value, s32 mode)
static struct FieldActor * Actor_Get(s32 actor)
static void ColorBuffer_ApplySource(s32 value, s32 mode)
Field objects and actors, and the scene transition styles.
@ TRANSITION_BACKDROP_FADE
#define ACTOR_NO_TARGET
A target coordinate that is not set: the object has no target.
#define SCENE_TRANSITION(style, variant)
@ ACTOR_FACES_MOTION
turns toward its velocity, 1/16 turn a frame
The scene table formats: entrances, exits, placements and events, and the macros that write them.
#define SCENE_EXITS(scene)
#define IF_FLAG_SET(flag)
#define FIND_PSYNERGY_STONE
#define SCENE_EXIT(exit, scene, entrance)
@ TALK_FACE_PARTY_AND_BACK
#define PSYNERGY_ON_ACTOR(ability)
#define EVENT_SCRIPT(script)
#define TOUCH_WALKING_INTO(facing)
#define FACING_IS_NORTH(facing)
#define TOUCH_FACING(facing)
#define FIND_COINS(coins)
Game flags, named where their meaning is shown.
#define FLAG_FEH_WAITS_TO_SEE_CHI
#define FLAG_FEH_CHI_DEMONSTRATION_DECLINED
#define FLAG_SHOW_LOCATION_NAME
#define FLAG_FUCHIN_FALLS_GROTTO_OPENED
the monk stepped aside
#define FLAG_XIAN_HEARD_HSU_TRAPPED
#define FLAG_FUCHIN_TEMPLE_VISITOR_HEARD_BRIDGE_OPEN
The visitor from Kolima heard that the bridge is open again.
#define FLAG_KEEP_PARTY_POSITION
#define FLAG_NYUNPA_ENLIGHTENED
Nyunpa is enlightened, beyond words: he has passed away.
#define FLAG_FUCHIN_FALLS_ORB_OF_FORCE_FOUND
The Orb of Force's chest in Fuchin Falls has been opened.
#define FLAG_NYUNPA_TAUGHT_FORCE
the power the monks call Ki
#define FLAG_FEIZHI_WENT_TO_HSU
#define FLAG_FUCHIN_FALLS_MONK_ASKED_ABOUT_TEST
#define FLAG_NYUNPA_TEST_ACCEPTED
the test of the waterfall grotto
volatile u32 gFrameCount
Frames WaitFrames has finished.
static void Event_EnterNyunpasHall(void)
Walking north into the temple door (trigger 2): it opens, and Isaac walks into Nyunpa's hall.
static void Event_EnterWaterfallGrotto(void)
Stepping into the grotto's entrance (trigger 3): spray falls over Isaac as the screen fades,...
static void Event_PushTreeByHand(void)
Walking into the training tree: Isaac pushes it over by hand.
static void Event_MonkAsksWhetherTestIsDone(void)
Coming back out of the grotto (trigger 5), Isaac is sent on to Nyunpa and the way back is open again.
static void FuchinTemple_ToppleTreeSouth(void)
Slides the training tree south in four steps before the final displacement.
static void FuchinTemple_StudentWalksAroundTree(void)
Routes the student around the tree according to the leader's facing.
static void Event_NyunpaFeelsMindRead(void)
Reading Nyunpa's mind once the test is accepted: he notices.
static void FuchinTemple_BeginMindReadDemonstration(s32 caster, s32 target)
Starts the Mind Read demonstration for the requested caster and target.
static void FuchinTemple_FeizhiLeavesForHsu(void)
The first time the tree falls from the line, a student runs for Master Feh.
static void Event_ReadNyunpasLastWish(void)
Reading Nyunpa's mind once he is enlightened: he entrusts the world to Isaac.
static void Event_FehAsksToSeeChi(void)
Talking to Feh after the party declined: he asks again to see Isaac's Chi.
static void Event_MonkLetsPartyIntoGrotto(void)
Talking to the monk beneath the falls once Nyunpa has offered the test: he lets the party pass.
static UNUSED void FuchinTemple_HopLeaderWest(void)
Hops the leader one map cell west.
static void Event_StudentAsksAboutFeh(void)
Talking to the student by the training tree (actor 15): the student asks whether the party still wish...
static void Event_MoveTree(void)
Move on the training tree: it topples, and the students react.
static s32 FuchinTemple_FaceLeader(union FieldObject *object)
static void FuchinTemple_AlternateLessonChildEffect(union FieldObject *object)
Alternates the lesson's child effect from the frame counter, not player input.
s32 gFuchinTemple_JumpingStudentScript[]
static UNUSED void FuchinTemple_HopLeaderNorth(void)
Hops the leader one map cell north.
u16 gFuchinTemple_CellStepsA[]
struct SceneEvent gFuchinTempleEvents1[]
s32 gFuchinTemple_HiddenSpriteScript[]
static void FuchinTemple_ToppleTreeWest(void)
Rotates the training tree through its westward arc and scatters particles.
static void Event_MonkSpeaksOfNyunpa(void)
Talking to the monk (actor 12) outside the temple: he speaks of the one seeking enlightenment,...
static void FuchinTemple_ToppleTreeEast(void)
Rotates the training tree through the opposite arc and reverses its horizontal scale.
static void Event_NyunpaOffersTest(void)
Talking to Nyunpa, or reading his mind: he reads the party's mind in turn, guesses that they follow S...
#define HAMA
The second scene by entrance 3: Hama's room in Lama Temple.
static void FuchinTemple_ToppleTreeNorth(void)
Slides the training tree north in four steps, then scatters particles.
struct ScenePlacement gFuchinTemplePlacements1[]
static void Event_StudentAsksAboutAltin(void)
Talking to a student (actor 11) once Hsu is known to be trapped: the student asks about the flood.
u16 gFuchinTemple_CellStepsC[]
struct SceneEvent gFuchinTempleEvents[]
static void FuchinTemple_SpawnGrottoEntryParticle(void)
Emits a falling particle beside the leader during the grotto entrance fade.
static void FuchinTemple_AnimateRevealLesson(void)
Animates Hama and Ivan's lesson effects, fades the palette and clears the callbacks.
struct ScenePlacement gFuchinTemplePlacements[]
static void FuchinTemple_StudentsSeeTreeFall(void)
The students see the tree fall, Feh doubts it came from the line, and the student sets the tree up ag...
static UNUSED void FuchinTemple_HopLeaderByOffset(s32 offsetX, s32 offsetZ)
Hops the leader by a pixel offset, waiting for the movement to finish.
static void FuchinTemple_NyunpaTeachesKi(void)
Back from the grotto, Nyunpa praises Isaac.
static UNUSED void FuchinTemple_HopLeaderSouth(void)
Hops the leader one map cell south.
#define TRAINING_TREE_TARGET
where Force strikes the tree
static void Event_ForceTree(void)
Force on the training tree: it topples.
static void FuchinTemple_StudentExplainsChiRules(s32 mode)
The student by the tree explains the rules: mode 0 when Psynergy felled it but not from the line,...
static void FuchinTemple_FinishMindReadDemonstration(void)
Finishes the demonstration's effect and lowers the caster's hands.
static void FuchinTemple_SpawnNyunpasParticles(void)
Emits eight rising particles from Nyunpa, sounding every other shot.
#define FLAG_NYUNPA_TEST_DECLINED
Nyunpa's test was declined; the students saw the training tree fall.
struct SceneEntrance gFuchinTempleEntrancesOther[]
static void Event_LeaveTemple(void)
Leaving by the first exit.
static s32 FuchinTemple_ClearScriptedActorSpriteFlags(struct ScriptInterpreter *interpreter)
Clears the scripted actor's sprite flags and completes the script command.
u16 gFuchinTemple_CellStepsB[]
static void Event_TalkToJumpingStudent(void)
Talking to the student who practises jumping: he lands, talks about jumping (or Lama Temple,...
static void Event_OpenLockedDoor(void)
Walking north into the door Feh and Feizhi came out of (trigger 3): it is locked until Feizhi has lef...
static void FuchinTemple_FehSeesChi(void)
The tree falls from the line with Feh watching, but Feh sees that it is not Chi.
s32 gFuchinTemple_ShotScript[]
struct ScenePlacement gFuchinTemplePlacementsEntrance3[]
static void Event_StudentWelcomesToSchool(void)
Talking to the student at the door (actor 9): the student asks whether the party came to watch.
struct SceneEntrance gFuchinTempleEntrances1[]
#define FALLS_MONK
the monk beneath the falls, at the waterfall grotto
struct SceneEvent gFuchinTempleEventsEntrance3[]
#define FLAG_FEH_SCHOOL_SAW_TREE_FALL
static void Event_TalkToHealer(void)
Talking to the healer: across the counter from the south, the Sanctum's services; from elsewhere,...
static void FuchinTemple_RunHamasRevealLesson(void)
Entering Hama's room, the party is greeted.
static void Event_VisitorAsksAboutBridge(void)
Talking to the visitor from Kolima outside the temple: he asks how the party got here.
GameState, the game's state: play time, coins, the scene and the leader's position,...
struct GameState gGameState
The work slots of gWorkSlot, read through their own names.
void * gEffectWork
Slot 56: points to a scene-specific structure.
The screen blend's globals and the graphics routines.
Item numbers, named from the English release.
s32 ArcTan2(s32 x, s32 y)
Returns the angle of the vector (x, y), in 1/65536 turns, measured from the y axis: 0 along +y,...
The reel game's title lettering.
Field object scripts: one s32 command word, then its operands, as gScriptObject_CommandTable runs the...
#define SC_LABEL(n)
Branch destination.
#define SC_SET(w, v)
Write a work value.
#define SC_LOOP(n, to)
Repeat up to n times.
#define SC_POS(x, y, z)
Set position.
#define SC_WAIT(n)
Wait n frames.
#define SC_TOP
Script start.
#define SC_END
Return to the main script.
void Party_LearnAbility(s32 unit, s32 ability)
Teaches unit the Psynergy ability and says so with its jingle, waiting for the player to read it.
void BattleFx_PlayQueuedSound(void)
Plays the sound BattleFx_SetQueuedSoundAndPlay remembered, if any.
void BattleFx_SetQueuedSoundAndPlay(s32 soundId)
Plays SE_298, then soundId (SE_289 for -1), and remembers soundId for BattleFx_PlayQueuedSound in the...
Scene numbers, named after their places.
char SceneId_FuchinTemple2
char SceneId_FuchinTemple1
s32 Scheduler_RemoveCallback(SchedulerCallback callback)
Unschedules the task running callback: clears its routine and gives it order 0x7fff,...
The field object script interpreter and the operands its commands read.
Song and sound effect ids, indices into gSound_SongTable.
#define SE_JUMP
An actor jumps: ObjectMotion_Launch plays the high jump above 5 pixels a frame.
struct EventWork * gEventWork
void Engine_EventRequestExit()
void Engine_ActorSetPosition(u32 actor, s32 x, s32 z)
void Engine_AudioPlayCue()
An animated sprite: its image and shadow, scale, rotation, size and up to four animation layers.
u16 rotation
1/65536 turns
The options of a spawned field effect, each used when its EFFECT_USE_ flag (or EFFECT_SCALE_TO_TARGET...
s16 type
the object type to create; 222 without the flag
s32 targetScaleY
16.16 fixed point, 0x10000 full size
s32 targetScaleX
16.16 fixed point, 0x10000 full size
s32 palette
passed to ObjectGroup_SetChildValue
s32 startScaleY
16.16 fixed point, 0x10000 full size
s32 priority
the sprite's priority
const s32 * script
the object script, run in mode 1
s32 startScaleX
16.16 fixed point, 0x10000 full size
s32 startTransition
SCENE_TRANSITION(style, variant).
s32 transitionFrames
frames
u16 message
the next message, advanced as each window opens
A field actor: a person or thing on the field with a position, motion toward a target,...
u8 steeringFlags
ActorSteeringFlag bits.
u8 motionFlags
ActorMotionFlag bits; zero is free flight in 3D, and 3 is set on creation.
union FieldCoordinate x
16.16 fixed-point pixels
s32 targetZ
16.16 fixed-point pixels; ACTOR_NO_TARGET when unset
u8 paused
nonzero skips its script and motion, not its update
union FieldCoordinate y
16.16 fixed-point pixels
s32 velocityY
16.16 fixed-point pixels per frame
s32 gravity
Taken off the vertical velocity each frame while it is above the ground, in 16.16 fixed-point pixels ...
union FieldCoordinate z
16.16 fixed-point pixels
s32 targetY
16.16 fixed-point pixels; ACTOR_NO_TARGET when unset
s32 scaleX
16.16 fixed point, 0x10000 full size
s32 scaleY
16.16 fixed point, 0x10000 full size
void(*) update(union FieldObject *object)
Called each frame before the object's script, while the object is live.
u8 collisionFlags
bits: 7 refuses to move into a solid object | 4 nearer for Psynergy targets | 3 never a talk or Psyne...
A scene entrance: where and facing which way the party arrives, and the camera's bounds there (-1 for...
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,...
s32 x
16.16 fixed-point pixels
s16 condition
-1 always, a flag | 0x1000 set, else the flag clear; off the world map, 48 to 127 also need condition...
s32 z
16.16 fixed-point pixels
A scene's exit region: the box that, while its condition holds, takes the party leader out through it...
The prefix that command handlers read from a field object's 0x70-byte slot.
The system's routines and globals: interrupts, BIOS sound bias, random numbers and sleep.
The integer types, TRUE, UNUSED and the fixed-address macros.
struct FieldCoordinate::@024321007066302143002254325121164243234242211074 part
s32 fixed
16.16 fixed-point pixels
An object on the field, read as an actor or as an effect.