24#define FIELD_STAGED_ACTOR_IMPORTS
46#include "text/msg_ids.h"
90#define SEARCH_CHEST_FACING(facing) \
91 (SEARCH(SEARCH_CHEST) | EVENT_TOUCH_FACING | (facing))
98 return dividend / divisor;
143 for (particle = 0; particle < 17; particle++) {
146 velocity[0] += velocity[0] / 2;
148 velocity[1], velocity[2],
176 leader->
y.
fixed = 0x820000;
244 if (((leader->
x.
fixed >> 20) == 6 || (leader->
x.
fixed >> 20) == 18) &&
245 (leader->
z.
fixed >> 20) == 20) {
272 StagedActor_AdvancePair();
284 if ((block->
x.
fixed >> 20) == 6) {
285 if ((block->
z.
fixed >> 20) == 20) {
291 if ((block->
x.
fixed >> 20) == 18) {
292 if ((block->
z.
fixed >> 20) == 20) {
320 OverlayObject_PrepareObject(
PIXELS(464), 0,
PIXELS(290), 223);
329 OverlayObject_PrepareObject(
PIXELS(143), 0,
PIXELS(290), 223);
330 OverlayObject_PrepareObject(
PIXELS(121), 0,
PIXELS(286), 253);
961 revealActive = (
s16 *)(
work + 0xcb8);
962 if (revealActive[0] != 0) {
992 x += -0x10000 & directionStep;
993 z += directionStep << 16;
998 return StagedActor_FindAtTile(target, actor);
1021 s32 targetColumn = column, targetRow = row;
1037 s32 heightDifference;
1045 if (heightDifference >= 0) {
1047 if (heightDifference < 0x80000) {
1051 }
else if (leader->
y.
fixed - ahead->
y.
fixed >= 0x80000) {
1055 StagedActor_AdvancePair();
1064 s32 climbDirection = (leader->
facing + 0x2000) & 0xc000;
1065 s32 climbResult = -1;
1075 if (climbResult != 0) {
1114 s32 column = leftBlock->
x.
fixed >> 20, row = leftBlock->
z.
fixed >> 20;
1120 s32 column = rightBlock->
x.
fixed >> 20, row = rightBlock->
z.
fixed >> 20;
1129static void BabiLighthouse_MatchLeaderPriority(
union FieldObject *fieldObject) {
1178 sceneCopy = state->
scene;
1183 x = placedActor->
x.
fixed >> 20;
1185 z = placedActor->
z.
fixed >> 20;
1196 BabiLighthouse_MatchLeaderPriority;
1198 BabiLighthouse_MatchLeaderPriority;
1215 placedActor->
wait = 0;
1216 placedActor->sprite->image.priority = 3;
1218 placedActor->sprite->flags = zero;
1219 placedActor->sprite->rotation = 0xc000;
1224 placedActor->
wait = 30;
1225 placedActor->sprite->image.priority = 3;
1226 placedActor->sprite->flags = zero;
1227 placedActor->sprite->rotation = 0x4000;
1232 placedActor->
wait = 60;
1233 placedActor->sprite->image.priority = 3;
1234 placedActor->sprite->flags = zero;
1235 placedActor->sprite->rotation = 0x8000;
1240 placedActor->
wait = 90;
1241 placedActor->sprite->image.priority = 3;
1242 placedActor->sprite->flags = zero;
1243 placedActor->sprite->rotation = 0x8000;
1259 OverlayObject_PrepareObject(
PIXELS(440), 0,
PIXELS(290), 223);
1264 OverlayObject_PrepareObject(
PIXELS(448), 0,
PIXELS(290), 223);
1269 OverlayObject_PrepareObject(
PIXELS(232), 0,
PIXELS(594), 223);
1336#define DIRECTION_STEP(dx, dz) (((dx) << 16) | ((dz) & 0xffff))
1348 207, 205, 228, 229, 298, 297,
1352 -32, -8, 32, 8, -8, -32, 8, 32, -32, -16, 32, 0,
1353 -8, -32, 8, 32, -32, -8, 32, 8, -8, -32, 8, 32,
1410 {0,
CONDITION_ALWAYS, 136, 0, 376,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
1411 {1,
CONDITION_ALWAYS, 200, 0, 424,
FACING_NORTH, 0, 0, 0, 384, 448, 0},
1412 {2,
CONDITION_ALWAYS, 200, 0, 200,
FACING_SOUTH, 0, 0, 0, 384, 448, 0},
1413 {3,
CONDITION_ALWAYS, 216, 0, 184,
FACING_SOUTH, 0, 0, 0, 384, 448, 0},
1414 {4,
CONDITION_ALWAYS, 104, 0, 312,
FACING_SOUTH, 0, 0, 0, 384, 448, 0},
1415 {5,
CONDITION_ALWAYS, 296, 0, 312,
FACING_SOUTH, 0, 0, 0, 384, 448, 0},
1416 {6,
CONDITION_ALWAYS, 312, 0, 88,
FACING_SOUTH, 0, 0, 0, 384, 448, 0},
1421 {0,
CONDITION_ALWAYS, 136, 0, 376,
FACING_SOUTH, 0, -1, -1, -1, -1, 0},
1422 {1,
CONDITION_ALWAYS, 232, 0, 488,
FACING_SOUTH, 0, 128, 432, 368, 672, 0},
1423 {2,
CONDITION_ALWAYS, 280, 0, 488,
FACING_SOUTH, 0, 128, 432, 368, 672, 0},
1424 {3,
CONDITION_ALWAYS, 248, 0, 648,
FACING_SOUTH, 0, 128, 432, 368, 672, 0},
1425 {4,
CONDITION_ALWAYS, 424, 0, 120,
FACING_SOUTH, 0, 352, 64, 592, 320, 0},
1426 {5,
CONDITION_ALWAYS, 456, 0, 120,
FACING_SOUTH, 0, 352, 64, 592, 320, 0},
1427 {6,
CONDITION_ALWAYS, 504, 0, 120,
FACING_SOUTH, 0, 352, 64, 592, 320, 0},
1428 {7,
CONDITION_ALWAYS, 472, 0, 288,
FACING_NORTH, 0, 352, 64, 592, 320, 0},
1429 {8,
CONDITION_ALWAYS, 120, 0, 120,
FACING_SOUTH, 0, 48, 64, 288, 320, 0},
1430 {9,
CONDITION_ALWAYS, 184, 0, 288,
FACING_NORTH, 0, 48, 64, 288, 320, 0},
1431 {10,
CONDITION_ALWAYS, 728, 0, 168,
FACING_SOUTH, 0, 624, 96, 864, 256, 0},
1432 {11,
CONDITION_ALWAYS, 776, 0, 184,
FACING_SOUTH, 0, 624, 96, 864, 256, 0},
1433 {12,
CONDITION_ALWAYS, 488, 0, 184,
FACING_SOUTH, 0, 352, 64, 592, 320, 0},
1434 {13,
CONDITION_ALWAYS, 248, 0, 584,
FACING_SOUTH, 0, 128, 432, 368, 672, 0},
1435 {14,
CONDITION_ALWAYS, 440, 0, 216,
FACING_SOUTH, 0, 352, 64, 592, 320, 0},
1436 {15,
CONDITION_ALWAYS, 216, 0, 584,
FACING_SOUTH, 0, 128, 432, 368, 672, 0},
1437 {16,
CONDITION_ALWAYS, 456, 0, 168,
FACING_SOUTH, 0, 352, 64, 592, 320, 0},
1438 {17,
CONDITION_ALWAYS, 232, 0, 536,
FACING_SOUTH, 0, 128, 432, 368, 672, 0},
1443 {1,
CONDITION_ALWAYS, 248, 0, 120,
FACING_SOUTH, 0, 96, 48, 384, 432, 0},
1444 {2,
CONDITION_ALWAYS, 136, 0, 368,
FACING_NORTH, 0, 96, 48, 384, 432, 0},
1445 {3,
CONDITION_ALWAYS, 168, 0, 344,
FACING_SOUTH, 0, 96, 48, 384, 432, 0},
1450 {0,
CONDITION_ALWAYS, 328, 0, 240,
FACING_NORTH, 0, 0, 0, 464, 400, 0},
1451 {1,
CONDITION_ALWAYS, 112, 0, 360,
FACING_NORTH, 0, 0, 0, 464, 400, 0},
1452 {2,
CONDITION_ALWAYS, 136, 0, 32,
FACING_SOUTH, 0, 0, 0, 464, 400, 0},
1553 MSGNO(MsgBabiLighthouseWereTheOnesWhoAttackedBut)},
1555 MSGNO(MsgBabiLighthouseTheOtherFourDidntSeemTo)},
1557 MSGNO(MsgBabiLighthouseWhatCouldTheyBePlanningFor)},
1559 MSGNO(MsgBabiLighthouseNoneOfThemHadAnyTorches)},
1601 MSGNO(MsgBabiLighthouseNobodyThinksTheDoorCanBe)},
1603 MSGNO(MsgBabiLighthouseIDontKnowWhatTheyreWaiting)},
1612 MSGNO(MsgBabiLighthouseIfAnythingHappensToActorTolbi)},
1614 MSGNO(MsgBabiLighthouseIfThisDoorOpensMaybeWe)},
1616 MSGNO(MsgBabiLighthouseIBetTheMonstersAroundHere)},
1618 MSGNO(MsgBabiLighthouseThisIsABigWasteOf)},
1620 MSGNO(MsgBabiLighthouseIDontWantToHinderActors)},
1644 MSGNO(MsgBabiLighthouseWeHaventBeenOrderedToStart)},
1646 MSGNO(MsgBabiLighthouseThereWereStrangeFolkGoingTo)},
1648 MSGNO(MsgBabiLighthouseItsOddThatBabiWouldBuild)},
1650 MSGNO(MsgBabiLighthouseCuttingTheseStonesAndStackingThem)},
1652 MSGNO(MsgBabiLighthouseThereWasABigFightThat)},
1654 MSGNO(MsgBabiLighthouseIfFaranWentAfterThemThen)},
1656 MSGNO(MsgBabiLighthouseWhyWouldTheyWantToRush)},
1658 MSGNO(MsgBabiLighthouseNowThatIThinkOfIt)},
Ability numbers, named from the English release.
void Motion_LaunchFromFocusedObject(u32 objectId, s32 xOffset, s32 zOffset, s32 action)
Places an actor on the leader and sends it walking (xOffset, zOffset) pixels away at speed 0....
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 struct SceneRegion * Scene_GetRegions(void)
#define SEARCH_CHEST_FACING(facing)
A chest searched while facing the given way.
s32 gStagedActor_DirectionSteps[]
Pixel step by direction: X in the upper halfword, Z in the lower.
s32 gStagedActor_FootprintBounds[]
#define DIRECTION_STEP(dx, dz)
Pixel step by direction: X in the upper halfword, Z in the lower.
u32 gStagedActor_FootprintKinds[]
static void BabiLighthouse_ExplainTruthDoor(void)
The door opens before Iodem and Faran the first time: everyone marvels, the door closes again,...
static void BabiLighthouse_HideTruthDoorSwitch(void)
Reveal's light ends and the switch is hidden again.
static void BabiLighthouse_RiseAndCloseScreen(void)
Raises the leader, then closes the screen before a room transition.
struct SceneEntrance gBabiLighthouse_EntrancesOther[]
static void BabiLighthouse_RiseToAlternateExit(void)
Raises the leader and takes exit 15 without preparing an extra effect.
static void BabiLighthouse_ClimbDownOrAdvancePair(void)
Walking south off room 3's ledge: pushes the block below on the leader's side if it stands at the led...
static void BabiLighthouse_RefreshTruthDoorTiles(void)
Reveal shows the door's switch, flipped one way or the other as the door stands.
const u32 * BabiLighthouse_GetExits(void)
The four scenes share one exit table.
struct SceneEvent gBabiLighthouse_Events1[]
static void BabiLighthouse_UpdateMovedBlock(void)
After Move or Carry on the building site's block: in its cell at (20, 12) it settles at a height of 4...
struct SceneEvent gBabiLighthouse_EventsOther[]
static void BabiLighthouse_InspectLockedDoor(void)
Searching room 2's door. "It seems to be locked.".
u32 gBabiLighthouse_Exits[]
static void BabiLighthouse_RiseToExit(void)
Raises the leader and takes exit 11 without preparing an extra effect.
static void BabiLighthouse_StartDjinnBattle(void)
Talking to the Djinni in room 2 starts the battle for Djinni 66.
static void BabiLighthouse_RefreshMovableBlockTiles(void)
Redraws room 3's ledge cells, then blocks the cells under its two blocks.
static void BabiLighthouse_RisePastPairedEffects(void)
Prepares two effects, raises the leader, then takes exit 13.
static void BabiLighthouse_RegroupPartyMember(s32 actorId)
A companion walks back to the leader and rejoins the party.
static void BabiLighthouse_AdvancePairAndJump(void)
Walking into one of room 3's blocks pushes it.
static void BabiLighthouse_FallToExit(s32 exit)
Arriving at one of room 2's drop entrances: the leader drops in and falls on, out through the given e...
struct SceneRegion gBabiLighthouse_Regions3[]
static void BabiLighthouse_RisePastSingleEffect(void)
Prepares one effect, raises the leader, then takes exit 12.
s32 BabiLighthouse_SetupScene(void)
Sets up the scene being entered: Retreat leads back to room 3; the site's block, room 3's blocks,...
struct ScenePlacement gBabiLighthouse_PlacementsOther[]
const s32 * gEffectScripts[]
struct SceneEntrance gBabiLighthouse_Entrances3[]
struct SceneEvent gBabiLighthouse_Events2[]
struct ScenePlacement gBabiLighthouse_NoPlacements[]
static void BabiLighthouse_OpenGrowthPassage(void)
Growth on room 3's sprout: it grows into a vine the party can climb.
s32 gBabiLighthouse_TrembleScript[]
static void BabiLighthouse_EnableChildOption(void)
Carry's first phase on the building site's block sets the effect's childOption; what that changes is ...
static void BabiLighthouse_JumpFromLedge(void)
After Move on one of room 3's blocks, or a push: a leader left standing on a block's ledge cell jumps...
static void BabiLighthouse_ClimbOrAdvancePair(void)
Tries vertical climbing first, then advances the staged pair when appropriate.
struct ScenePlacement gBabiLighthouse_Placements2[]
static void BabiLighthouse_AdvanceNearbyPair(void)
Advances the staged pair only when the actor ahead is less than eight pixels away vertically.
static void BabiLighthouse_DiscussPursuit(void)
Walking up to room 1's stone door the first time: Faran asks whether the kidnappers really went throu...
static void BabiLighthouse_OpenTruthDoor(void)
The stone door's halves slide open (SE_GATE_MOVE); the first time, Iodem and Faran see it.
struct SceneEntrance gBabiLighthouse_Entrances2[]
@ FLAG_GROWTH_PASSAGE_OPEN
Growth has grown room 3's sprout into a vine.
@ FLAG_BEYOND_DOOR
The party is on the far side of room 1's stone door.
static void BabiLighthouse_CloseTruthDoor(void)
Walking through the open door: it slides shut behind the party, now on its other side.
static void BabiLighthouse_InspectTruthDoorSwitch(void)
Searching the door's switch: under Reveal's light it is flipped and the door opens; otherwise it read...
static __inline__ s32 UNUSED Entrance_Divide(s32 dividend, s32 divisor)
Unused: a signed division nothing calls.
struct ScenePlacement gBabiLighthouse_Placements1[]
struct SceneEntrance gBabiLighthouse_Entrances1[]
static void BabiLighthouse_LandWithParticles(void)
Arriving by falling from the floor above: the leader drops in, lands with a thud that shakes the scre...
struct ScenePlacement gBabiLighthouse_Placements3[]
static struct FieldActor * BabiLighthouse_FindActorAhead(struct FieldActor *actor)
Finds the staged actor one direction-table step ahead, including terrain height.
struct SceneEvent gBabiLighthouse_Events3[]
Calls through a function pointer, by argument count.
s32 Field_ClimbUp(void)
Climbing up (the player presses up at a climbable wall).
s32 Field_ClimbDown(void)
Climbing down (the player presses down at a climbable wall).
The engine calls the debug menus import, and their palette swatch tiles.
Djinn numbers, named from the English release.
static void FieldBattleFx_RunRisingObjectSequence(s32 actor, s32 mode, s32 action)
Field effects, their scripts and the flags that spawn them.
@ EFFECT_USE_PALETTE
options.palette, as its group child value
@ EFFECT_USE_UPDATE
options.update
@ EFFECT_USE_START_SCALE
options.startScaleX and startScaleY
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)
static void Actor_FaceDirection(s32 actor, s32 facing, s32 frames)
void Engine_ActorSetAnimationAndWait(s32 actor, s32 animation)
void Engine_ActorSetSpritePriority(s32 actor, s32 priority)
s32 Engine_EventChooseYesNo(s32 actor, s32 flags)
void Engine_MessageShowCentered(s32 message, s32 flags)
static void Actor_WalkToAndWait(s32 actor, s32 x, s32 z)
static void Camera_SetSpeed(s32 speed, s32 acceleration)
void Engine_ActorJump(s32 actor, s32 height, s32 frames)
s32 Engine_MathSin(s32 angle)
void Engine_EventCloseScreen(void)
static void Map_CopyCellsTo(s32 srcX, s32 srcY, s32 destX, s32 destY, s32 width, s32 height)
static void Actor_WalkTo(s32 actor, s32 x, s32 z)
void Engine_EventWaitForScreen(void)
static void Actor_ShowEmote(s32 actor, s32 emote, s32 frames)
static void Actor_WalkByAndWait(s32 actor, s32 dx, s32 dz)
void Engine_EventOpenScreen(void)
void Engine_GameFlagSet(s32 flag)
void Engine_MapRenderWaitForValues(void)
void Engine_CameraWaitForMove(void)
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)
static void Map_SetShake(s32 horizontal, s32 vertical, s32 decay)
Sets shake amplitudes in fixed-point pixels and the per-frame decay factor.
static void Actor_SetChildValue(s32 actor, s32 value)
s32 Engine_GameFlagIsSet(s32 flag)
void Engine_ActorStartRepeatedMotion(s32 actor, s32 repeats)
s32 Engine_MathCos(s32 angle)
static void Actor_WalkBy(s32 actor, s32 dx, s32 dz)
static void Actor_SetSpeed(s32 actor, s32 speed, s32 acceleration)
void Engine_MapRedraw(void)
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)
static void Map_CopyCellsLayered(s32 srcX, s32 srcY, s32 destX, s32 destY, s32 width, s32 height)
void Engine_ActorSetDestinationOffset(s32 actor, s32 dx, s32 dz)
void Engine_ActorFaceEachOther(s32 actor, s32 other, s32 frames)
void Engine_EventWait(s32 frames)
static void Actor_SetAttachedEffect(s32 actor, s32 effect)
static struct FieldActor * Actor_Get(s32 actor)
Field objects and actors, and the scene transition styles.
#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 PSYNERGY_PHASE_ON_ACTOR(ability, phase)
A Psynergy event on an actor at one phase of the cast, as PSYNERGY_IN_AREA is for an area.
#define SCENE_EXITS(scene)
#define PSYNERGY_IN_AREA(ability, phase)
#define IF_FLAG_SET(flag)
#define SCENE_EXIT(exit, scene, entrance)
@ TALK_FACE_PARTY_AND_BACK
#define PSYNERGY_ON_ACTOR(ability)
#define EVENT_SCRIPT(script)
#define EVENT_TOUCH_WALKING
#define TOUCH_WALKING_INTO(facing)
#define PLACEMENT_SHARE_PREVIOUS_SPRITE
The scene service layer: one typed inline for each engine service a scene calls by its own name,...
static void FieldMotion_LaunchFromFocusedObject(s32 actor, s32 dx, s32 dz, s32 facing)
static void FieldObjectMotion_OffsetPositionAndResetMotion(s32 a0, s32 a1, s32 a2)
Game flags, named where their meaning is shown.
#define FLAG_DJINNI_0
the flag of Djinni 0, set once it is caught
#define FLAG_BABI_LIGHTHOUSE_ROOM2_ENTRANCE_10_USED
Arrival through room 2's entrance 10 changes its tiles and collision; entrances 10 and 11 restore tho...
#define FLAG_KEEP_PARTY_POSITION
#define FLAG_BABI_LIGHTHOUSE_PURSUIT_ASKED
Iodem and Faran have asked the party to follow Sheba's kidnappers.
#define FLAG_BABI_LIGHTHOUSE_DOOR_SHOWN
The party has opened the door before Iodem and Faran, who stay behind.
#define FLAG_IODEM_AT_BABI_LIGHTHOUSE
Set with it: Iodem has come to Babi Lighthouse, and from then on he no longer leaves the party in Suh...
#define FLAG_BABI_LIGHTHOUSE_LUCKY_PEPPER
the building site's chest
#define FLAG_BABI_LIGHTHOUSE_DOOR_OPEN
The stone door that Reveal's switch opens stands open.
BattleFxScene, the work of a battle or field Psynergy effect scene, and its arc objects.
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.
The main-image routines scene overlays import.
Item numbers, named from the English release.
Small statement macros both games use for positions, velocities and bounds.
#define SET_VECTOR(v, x, y, z)
Sets the x, y and z of a three-part vector: a position about to be projected, a per-frame step,...
Declares nothing of its own: it only includes edition.h and types.h.
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.
void Battle_ResetEffectCounter(void)
Clears the field's busy flag and, while Reveal is active, ends it: Reveal used with ACT_PACKED runs i...
void Field_RequestDjinnBattle(s32 flag, s32 no)
Sets up the battle with Djinni number no.
Scene numbers, named after their places.
char SceneId_BabiLighthouse2
char SceneId_BabiLighthouse1
char SceneId_BabiLighthouse4
char SceneId_BabiLighthouse3
Declares nothing of its own: it only includes types.h.
Song and sound effect ids, indices into gSound_SongTable.
void Engine_ActorSetAnimation()
struct EventWork * gEventWork
void Engine_EventRequestExit()
void Engine_EventEnd(void)
void Engine_AudioPlayCue()
void Engine_EventBegin(void)
void Engine_EventSetMessage()
void Engine_EventShowMessage()
The pushable actors' movement probes and footprint bounds.
An animated sprite: its image and shadow, scale, rotation, size and up to four animation layers.
struct AnimationSpritePart image
u16 priority
2 when created
The work of a Psynergy effect scene: its caster and target, where it takes place, the map state it re...
s8 childOption
Set by some scenes before an effect; Carry, Frost, Force and Reveal treat the target differently with...
The options of a spawned field effect, each used when its EFFECT_USE_ flag (or EFFECT_SCALE_TO_TARGET...
s32 palette
passed to ObjectGroup_SetChildValue
s32 startScaleY
16.16 fixed point, 0x10000 full size
s32 startScaleX
16.16 fixed point, 0x10000 full size
void(*) update(union FieldObject *object)
replaces the update hook
s32 startTransition
SCENE_TRANSITION(style, variant).
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,...
s32 targetX
16.16 fixed-point pixels; ACTOR_NO_TARGET when unset
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
s32 bounce
The share of its falling speed kept as it bounces on landing, 16.16 fixed point (0x4000 when created)...
union FieldCoordinate y
16.16 fixed-point pixels
u8 priorityFlags
ActorPriorityFlag bits, read by the scrolling camera.
s32 terrainHeight
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
void(*) update(union FieldObject *object)
Called each frame before the object's script, while the object is live.
u16 wait
the object script's wait, in frames (ScriptMotionObject)
u16 work
The side of the player's next footprint (2 after a stop), or scene scratch.
u8 collisionFlags
bits: 7 refuses to move into a solid object | 4 nearer for Psynergy targets | 3 never a talk or Psyne...
u8 terrainId
The map layer (0 to 3) its ground height is read from, which the scrolling camera updates from the ce...
s32 z
16.16 fixed-point pixels
The game's state: play time, coins, the scene and the leader's position, the active party and the opt...
s32 z
16.16 fixed-point pixels
s16 retreatEntrance
where Retreat goes; the group's first entrance
s16 retreatScene
where Retreat goes; the group's first entrance
s32 x
16.16 fixed-point pixels
u8 movementMode
1 while the leader is climbing, 0 otherwise
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,...
A scene's exit region: the box that, while its condition holds, takes the party leader out through it...
The system's routines and globals: interrupts, BIOS sound bias, random numbers and sleep.
s32 Map_GetTerrainHeight(s32 layer, s32 x, s32 y)
Returns the ground height of a layer at (x, y) in 16.16 pixels: the height function of the cell's ter...
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.
The patch levels: our groups of the measured changes from the Japanese release.