35#include "text/msg_ids.h"
52#define FLAG_VALE_WELCOMED_HOME 0x302
55#define FLAG_VALE_PSYNERGY_STONE_GONE_TOLD 0x306
91#define VALE_HOME_TURN_AND_WAIT ValeHome_FaceDirectionAndWait
99#define VALE_HOME_TURN_AND_WAIT ValeHome_TurnAndWaitValue
216 message = MsgValeArentWorriedCrossing;
244 for (i = 0; i < 40; i++) {
250 for (i = 0; i != 180; i++) {
252 if ((1 & shakes) != 0) {
330 s32 savedMotionFlags;
343 for (i = 0; i < 40; i++) {
354 for (i = 0; i < 40; i++) {
571 verticalScale = 3 *
Q16_ONE / 2;
573 actor->
scaleY = verticalScale;
575 actor->
scaleY = verticalScale;
577 actor->
scaleY = verticalScale;
654 if (leader !=
NULL) {
656 leader->
z.
part.pixel);
688 if (leader !=
NULL) {
752 if (skipReply != 0) {
894 s32 southSouthwestFacing;
896 s32 northNortheastFacing;
1029 actor->sprite->rotation = 0x1555;
1054 actor->
gravity = gravityQ8 << 8;
1060 actor->
gravity = gravityQ8 << 8;
1092 const s32 *faceActions;
1093 const s32 *actor31Actions;
1094 const s32 *departureActions;
1211 if (actor !=
NULL) {
1426 work->transitionFrames = 60;
1488 for (i = 0; i < 2; ++i) {
1494 sprite =
child->sprite;
1495 child->motionFlags = 0;
1497 child->linkedObject = parent;
1498 if (sprite !=
NULL) {
1517 effect->
update = Effect_AnimateVerticalNegative;
1525 effect->
update = Effect_AnimateVerticalPositive;
1623 0x1000000, 0x2020101, 0x3030302, 0x5040404, 0x6060505, 0x1000006, 0x3020201, 0x5040403,
1745 SC_CALL(Scene_TurnTowardTarget),
1875 { 0,
CONDITION_ALWAYS, 248, 0, 295,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1876 { 1,
CONDITION_ALWAYS, 248, 0, 295,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1877 { 2,
CONDITION_ALWAYS, 352, 0, 308,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1878 { 3,
CONDITION_ALWAYS, 230, 0, 423,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1879 { 4,
CONDITION_ALWAYS, 374, 0, 435,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1880 { 5,
CONDITION_ALWAYS, 200, 0, 562,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1881 { 6,
CONDITION_ALWAYS, 102, 0, 627,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1882 { 7,
CONDITION_ALWAYS, 358, 0, 678,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1883 { 8,
CONDITION_ALWAYS, 27, 0, 338,
FACING_EAST, 0, -1, -1, -1, -1, 0 },
1884 { 10,
CONDITION_ALWAYS, 217, 0, 843,
FACING_NORTH, 0, -1, -1, -1, -1, 0 },
1885 { 11,
CONDITION_ALWAYS, 186, 0, 474,
FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
1886 { 12,
CONDITION_ALWAYS, 180, 0, 618,
FACING_NORTH, 0, -1, -1, -1, -1, 0 },
1887 { 15,
CONDITION_ALWAYS, 184, 0, 472,
FACING_NORTH, 0, -1, -1, -1, -1, 0 },
1888 { 19,
CONDITION_ALWAYS, 27, 0, 338,
FACING_EAST, 0, -1, -1, -1, -1, 0 },
2240 MAP_CELL_STEP(0, 57, 2, 2, 1),
MAP_CELL_STEP(0, 59, 2, 2, 1),
MAP_CELL_STEP(2, 59, 2, 2, 1),
MAP_CELL_STEPS_END,
Ability numbers, named from the English release.
void ObjectMotion_Launch(u32 objectId, s32 speed, s32 frames)
The event command "actor jump": throws the actor upward at speed pixels per frame with a jump sound (...
void Object_RefreshSelectorById(u32 objectId)
Waits, at most 300 frames, for an actor's script to reach its end (command 0x10).
void Object_LinkObjectAndSetCallback(u32 objectId, u32 linkedObjectId)
Makes an actor follow another (the linked action script): writes its linkedObject.
struct FieldActor * Object_GetById(s32 actor)
Returns an actor, or NULL if it does not exist.
s32 AnimationObjects_SelectAnimation(struct AnimationObject *sprite, s32 animation)
Starts animation flags & 0x7f on every layer of a sprite (bit 7 keeps each layer's place and timer),...
Animated sprites: their layers, frames and colour modes, and the resource slots they draw from.
void Camera_WaitForArrival(void)
The event command "camera wait for move": waits (at most 600 frames) for the camera to arrive,...
struct FieldActor * Camera_GetEventObject(void)
The event command "get view centre": returns the camera object.
Character numbers, with each character's Japanese name.
The engine calls the debug menus import, and their palette swatch tiles.
static s32 FieldScheduler_AddCallback(SchedulerCallback callback, s32 priority)
Registers a main-image scheduler callback.
FacingObject, the view of an object that turns to face a target.
Field effects, their scripts and the flags that spawn them.
The scene script layer: the engine services a scene's events call, declared once (Engine_EventBegin,...
#define SPEAKER_PORTRAIT_LEFT
u32 Math_RemainderUnsigned(u32 dividend, u32 divisor)
void Engine_ActorFaceActor(s32 actor, s32 target, s32 frames)
static void Actor_FaceDirection(s32 actor, s32 facing, s32 frames)
void Engine_ActorSetAnimationAndWait(s32 actor, s32 animation)
static void Map_AnimateCells(const u16 *steps, s32 destX, s32 destY)
#define SPEAKER_WINDOW_ABOVE
void Engine_ActorSetSpritePriority(s32 actor, s32 priority)
static void Event_ShowMessageAndWait(s32 speaker, s32 flags, s32 frames)
static void Actor_SetBuiltinAction(s32 actor, s32 action)
s32 Engine_EventChooseYesNo(s32 actor, s32 flags)
void Engine_MessageShowCentered(s32 message, s32 flags)
void Engine_ObjectSetPartPalettes(struct FieldActor *object, s32 palette)
s32 Engine_PartyGiveItem(s32 item, s32 flags)
void Engine_EventShowMessageAndWait(s32 speaker, s32 flags, s32 frames)
#define SPEAKER_PORTRAIT_RIGHT
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_CameraMoveTo(s32 fixed_x, s32 fixed_y, s32 fixed_z, s32 pan)
#define MAP_CELL_STEP(srcX, srcY, width, height, frames)
void Engine_ActorSetSpeed(s32 actor, s32 speed, s32 acceleration)
void Engine_ActorFaceDirection(s32 actor, s32 facing, s32 frames)
void Engine_EventCloseScreen(void)
void Engine_ActorSetDestination(s32 actor, s32 x, s32 z)
static void Actor_RunActionScriptAndWait(s32 actor, const s32 *script)
Runs a script, waiting at most 300 frames for its final command.
static void Map_CopyCellsTo(s32 srcX, s32 srcY, s32 destX, s32 destY, s32 width, s32 height)
void Engine_ActorWalkToAndWait(s32 actor, s32 x, s32 z)
#define SPEAKER_WINDOW_BELOW
static void Actor_WalkTo(s32 actor, s32 x, s32 z)
void Engine_EventWaitForScreen(void)
static void Actor_ShowEmote(s32 actor, s32 emote, s32 frames)
s32 Engine_EventAskYesNo(s32 speaker, s32 flags)
void Engine_EventOpenScreen(void)
s32 Engine_EventOpenMessage(s32 speaker, s32 flags)
void Engine_GameFlagSet(s32 flag)
void Engine_GameFlagClear(s32 flag)
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)
static void Map_CopyCellAttributes(s32 srcX, s32 srcY, s32 width, s32 height, s32 destX, s32 destY)
void Engine_ActorStop(s32 actor)
void Engine_ActorRunRepeatedMotion(s32 actor, s32 repeats)
void Engine_ActorWalkTo(s32 actor, s32 x, s32 z)
static void Event_ShowMessage(s32 speaker, s32 flags)
void Engine_ActorSetAttachedEffect(s32 actor, s32 effect)
static void Event_PlayCue(s32 cue)
void Engine_ActorSetChildValue(s32 actor, s32 value)
#define MAP_CELL_STEPS_END
static void Actor_SetChildValue(s32 actor, s32 value)
s32 Engine_GameFlagIsSet(s32 flag)
void Engine_ActorStartRepeatedMotion(s32 actor, s32 repeats)
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)
void Engine_ActorFaceEachOther(s32 actor, s32 other, s32 frames)
void Engine_EventWait(s32 frames)
static void Actor_SetAttachedEffect(s32 actor, s32 effect)
Field objects and actors, and the scene transition styles.
@ TRANSITION_BACKDROP_FADE
@ ACTOR_PRIORITY_AUTOMATIC
The sprite takes its priority from the map cell under it.
#define ACTOR_NO_TARGET
A target coordinate that is not set: the object has no target.
#define SCENE_TRANSITION(style, variant)
The scene table formats: entrances, exits, placements and events, and the macros that write them.
#define SCENE_EXITS(scene)
#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)
The scene service layer: one typed inline for each engine service a scene calls by its own name,...
static void FieldObject_SetTargetAndCallback(s32 object, s32 target, const s32 *actions)
static s32 FieldScheduler_AddOrUpdateCallback(SchedulerCallback callback, s32 priority)
Calls the main-image scheduler through engine_call.h.
static void Event_SetMessage(s32 message)
16.16 fixed-point constants, sine and cosine, and the library division.
#define Q16_ONE
One in the engine's signed 16.16 fixed-point format.
Game flags, named where their meaning is shown.
#define FLAG_MET_SATUROS_AND_MENARDI
#define FLAG_VALE_STORM_SECOND_ROCK_FELL
#define FLAG_NO_ENCOUNTERS
No random encounters while set (Encounter_SelectEnemyGroup), unless flag 0x15f is set; debug entrance...
#define FLAG_OVERHEARD_KRADEN
Kraden wondered aloud about the strangers.
#define FLAG_VALE_STORM_RIVER_GATHERING_SEEN
Jenna came back to the river and the scene there ended with ValeStorm_ShowBoulderSweepingDownriver.
#define FLAG_GARET_CAME_HOME
Back from Kalay, Garet surprised his family at home.
#define FLAG_VALE_STORM_FOURTH_ROCK_FELL
#define FLAG_SOL_SANCTUM_FIRST_SMALL_JEWEL_FOUND
The chests: the Small Jewel for each minotaur relief, and a Herb.
#define FLAG_VALE_STORM_HEARD_GARET
Isaac heard Garet struggling with his things.
#define FLAG_KEEP_MUSIC
The next scene keeps the music that is playing; scene.c clears FLAG_KEEP_MUSIC as it does,...
#define FLAG_VALE_STORM_FIRST_ROCK_FELL
The four rocks that fall across the paths (actors 11 to 14).
#define FLAG_SOL_SANCTUM_SECOND_GEM_PLACED
#define FLAG_VALE_THIRD_WHIRLWIND_TARGET_CLEARED
#define FLAG_VALE_STORM_GARET_JOINED
#define FLAG_REACHED_KALAY
Set whenever Kalay is entered; Vale's villagers then talk of the party's journey.
#define FLAG_SANCTUM_VISIT_PLANNED
#define FLAG_SOL_SANCTUM_CENTER_STATUE_MOVED
#define FLAG_IN_PARTY(character)
Flags 0 to 7: the character with that id (character_ids.h) is in the party (Party_AddActiveOwner).
#define FLAG_SOL_SANCTUM_MERCURY_STAR_BAGGED
#define FLAG_VALE_ASKED_IF_GOING_TO_KRADEN
A villager asked whether Isaac is going to Kraden's cottage.
#define FLAG_VALE_FIRST_WHIRLWIND_TARGET_CLEARED
Whirlwind cleared the three targets (actors 8 to 10) in the village.
#define FLAG_VALE_BOULDER_FELL
#define FLAG_NOTHING_HAPPENS
Set before an action on the field; still set afterwards, nothing came of it and the game says so.
#define FLAG_SOL_SANCTUM_ERUPTED
The volcano has erupted and the sanctum's rooms rumble and shake.
#define FLAG_VALE_FAREWELL_HERB_RECEIVED
The item shopkeeper gave Isaac a Herb as a farewell gift.
#define FLAG_SOL_SANCTUM_SECOND_SMALL_JEWEL_FOUND
#define FLAG_VALE_ROCKSLIDE_SURVIVOR_ESCAPED
He found he was unhurt and ran to the plaza.
#define FLAG_VALE_SECOND_WHIRLWIND_TARGET_CLEARED
#define FLAG_SOL_SANCTUM_STAR_ROOM_PASSAGE_OPEN
The floor has opened over the way up to the Elemental Star room.
#define FLAG_SOL_SANCTUM_LUNA_PICTURE_CHANGED
Kraden has seen the picture of Luna change to Sol.
#define FLAG_SOL_SANCTUM_FLOOR_SYMBOL_SEEN
Kraden has seen the symbol on the floor change.
#define FLAG_SOL_SANCTUM_STAR_ROOM_COLLAPSED
#define FLAG_SOL_SANCTUM_INNER_STATUES_SEEN
Kraden has seen the statues out of his reach behind the blocks.
#define FLAG_SOL_SANCTUM_NORTHEAST_SEAL_OPEN
#define FLAG_VALE_STORM
The prologue's stormy night: lightning over Vale, the rockslide and the monsters loose in the village...
#define FLAG_VALE_STORM_BUMPED_INTO_VILLAGER
A villager running out of his house shoved Isaac.
#define FLAG_SOL_SANCTUM_SOUTHEAST_SEAL_OPEN
#define FLAG_SOL_SANCTUM_FOUND
Crossbone Isle's pursuer room: a pursuer is after the leader.
#define FLAG_SOL_SANCTUM_ENTERED
#define FLAG_KOLIMA_CURSE_LIFTED
#define FLAG_VALE_ANGRY_VILLAGER_ARGUED
A villager has scolded Garet once.
#define FLAG_VALE_RETURNED_FROM_MT_ALEPH
Isaac and Garet followed the elders into the sanctum.
#define FLAG_SOL_SANCTUM_STATUE_TRAP_SPRUNG
The statues' lights have flashed as Kraden stood among them.
#define FLAG_CHILDHOOD
the prologue: Isaac and Garet are children
#define FLAG_VALE_WARNED_AGAINST_MT_ALEPH
A villager stopped Isaac and warned him off the mountain.
#define FLAG_SOL_SANCTUM_SOUTHWEST_SEAL_OPEN
#define FLAG_VALE_STORM_GARET_LEFT
Garet ran off, leaving Isaac alone. "Isaac!".
#define FLAG_SOL_SANCTUM_VENUS_STAR_BAGGED
#define FLAG_SOL_SANCTUM_ALL_SEALS_OPEN
#define FLAG_TRET_DEFEATED
#define FLAG_SOL_SANCTUM_STARS_GIVEN_TO_ALEX
The Jupiter Star is bagged and Alex holds the four Elemental Stars.
#define FLAG_VALE_STORM_THIRD_ROCK_FELL
#define FLAG_SOL_SANCTUM_NORTHWEST_SEAL_OPEN
A statue stands on its seal and the seal's light shines.
#define FLAG_VALE_STORM_SENT_TO_AID_ELDERS
On the stormy night, the villagers sent Isaac to aid the elders holding back the Boulder.
#define FLAG_SOL_SANCTUM_FIRST_GEM_PLACED
#define FLAG_VALE_STORM_SAW_RIVER_RESCUE
Isaac saw the villagers trying to pull Felix from the river.
#define FLAG_SOL_SANCTUM_STAR_ROOM_EXPLAINED
#define FLAG_SOL_SANCTUM_LUNA_SOL_ROOMS_SEEN
Kraden has seen the Luna and Sol rooms and asked the party to search on.
#define FLAG_SEARCHING_FOR_HIDDEN_PASSAGE
volatile u32 gFrameCount
Frames WaitFrames has finished.
GameState, the game's state: play time, coins, the scene and the leader's position,...
#define Battle_SetStart(mode)
Sets the battle start type.
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.
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_SYNC
Wait for arrival.
#define SC_WANDER_HOME(a, b, c)
#define SC_SE(n)
Sound effect.
#define SC_MOVE(x, y, z)
Move toward the target.
#define SC_WAIT(n)
Wait n frames.
#define SC_TOP
Script start.
#define SC_END
Return to the main script.
void Event_PrepareObjectAndApplyValue(s32 unit, s32 announce)
Adds unit to the party.
void Field_RequestBattleFromEncounterTable(s32 zoneNo, s32 slotNo)
Sets up a battle with enemy group slot of encounter table zone.
void Event_SetDefeatDestination(s32 scene, s32 entrance)
Sets where the party wakes up after losing a battle (gGameState.defeatScene and defeatEntrance).
void Event_SetNextDestination(s32 scene, s32 entrance)
Sets the scene and entrance that the field goes to next (gGameState.nextScene and nextEntrance).
Scene numbers, named after their places.
s32 Scheduler_RemoveCallback(SchedulerCallback callback)
Unschedules the task running callback: clears its routine and gives it order 0x7fff,...
static void Event_SayThenWait(s32 speaker, s32 frames)
Shows the selected message from one speaker and waits the requested frames.
Song and sound effect ids, indices into gSound_SongTable.
void Engine_ActorSetAnimation()
struct EventWork * gEventWork
void Engine_EventRequestExit()
void Engine_ActorSetPosition(u32 actor, s32 x, s32 z)
void Engine_EventEnd(void)
void Engine_AudioPlayCue()
void Engine_EventBegin(void)
void Engine_ActorShowEmote()
void Engine_EventSetMessage()
void Engine_EventShowMessage()
Vale, its home, storm and Babi scenes, Sol Sanctum's eruption and Venus Lighthouse's aerie: Psynergy ...
void Scene_EndCutscenePsynergy(void)
Ends the cutscene's Psynergy and releases its effect work.
void Scene_BeginCutscenePsynergy(void)
Prepares the effect work and spark tiles of Move (ability 140) for the cutscene's Psynergy.
Vale's storm and Vale's homes: going indoors through a door.
static void Vale_RequestBackdropExit(s32 no)
Takes exit no in the backdrop fade over 16 frames, first stopping the storm's lightning while the sto...
void BattleParty_ApplyDrain(s32 amount, s32 unused)
Gives each character in the party amount PP (PP regenerates as the party walks).
u8 frame
frame shown, frameBase plus the facing offset; 255 none
An animated sprite: its image and shadow, scale, rotation, size and up to four animation layers.
struct AnimationSpritePart image
u8 flags
bits: 1 outlined in ObjectSystemWork's edge and fill colours | 0 shadow drawn (set when created)
u8 slot
VRAM cache entry holding its tiles.
struct AnimationEntry * entries[4]
its layers; empty ones null
u8 retainCacheEntry
Keeps the VRAM cache entry when it is released or off screen.
u16 fullColor
256 colours; set for both parts when created
u16 tile
first sprite tile in VRAM
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...
u16 tileSlot
resource entry holding the spark tiles
void * child
the target's object, or NULL
The running scene's event work: its placement and event tables, its actors, the triggers and exit it ...
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,...
s32 targetX
16.16 fixed-point pixels; ACTOR_NO_TARGET when unset
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 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.
u16 work
The side of the player's next footprint (2 after a stop), or scene scratch.
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...
u16 offset
bytes from the start of OBJ VRAM
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
void Party_RestoreHpPp(s32 cureConditions)
Restores every party member's HP and PP; with cureConditions 1 it also cures poison and haunting.
s32 gValeHome_Actor23Actions[]
static void Event_ClearFirstWhirlwindTarget(void)
Whirlwind clears the first target (actor 8).
const struct SceneEvent * ValeHome_GetEvents(void)
Selects the events: after Kalay, after the party has left, the farewell's (entrance 12),...
s32 gValeHome_FaceTargetActions[]
static void Event_OpenNortheastDoor(void)
Opens the northeast doorway in two stages and walks inside.
static void Event_OpenCentralWestDoor(void)
Enters through the western door in the village's middle row.
static void Event_LeaveThroughWestPassage(void)
Leaves by the west passage: stepping on cell code 9 on the stormy night takes exit 8.
struct ScenePlacement gValeHome_Placements[]
static void ValeHome_TurnAndWait(s32 actor, s32 facing, s32 frames)
static void Event_OpenCentralEastDoor(void)
Enters through the eastern door in the village's middle row.
static void Event_DemonstrateLevitation(void)
A villager with some Psynergy left lifts actor 20 into the air.
static void Event_AskAboutTheTravelers(void)
A villager asks whether the travelers went to meet the mayor.
s32 gValeHome_Actor24BounceActions[]
static void Event_OpenWestEdgeDoor(void)
s32 gValeHome_Actor23BounceActions[]
struct ScenePlacement gValeHome_PlacementsAfterKalay[]
const struct ScenePlacement * ValeHome_GetPlacements(void)
Selects the placements: the stormy night's, the farewell's (entrance 12), after Kalay,...
struct SceneEntrance gValeHome_Entrances[]
u32 gValeHome_Actor22ActionsHead[]
static void ValeHome_UpdateActor15Psynergy(void)
Updates the levitating villager's Psynergy display.
struct SceneEvent gValeHome_EventsAfterKalay[]
static void Event_OpenSoutheastDoor(void)
static void Event_PsynergyStoneIsGone(void)
The villager searching the ground stops and tells Isaac the Psynergy Stone is gone.
static void Event_DepartForQuest(void)
The villagers give their supplies and farewells before the party leaves Vale.
static void Event_ClearThirdWhirlwindTarget(void)
Whirlwind clears the third target (actor 10).
s32 gValeHome_Actor12Actions[]
s32 gValeHome_Actor25Actions[]
static void Event_MeetSurvivingTravelers(void)
On the stormy night, Isaac overhears the two travelers who survived Sol Sanctum.
static void ValeHome_SpawnEffectPair(struct FieldActor *parent)
Creates the two vertical Psynergy effects using the shared sprite tiles.
s32 gValeHome_Actor22Actions[]
static void Event_AskAboutJourney(void)
A villager asks whether Isaac can use Psynergy, then about the Wise One, then about the journey.
struct ScenePlacement gValeHome_StormPlacements[]
static void Event_UsePsynergyStone(void)
Searching the Psynergy Stone restores the party's PP.
static void Event_OpenSouthwestDoor(void)
s32 gValeHome_Actor31Actions[]
#define FLAG_VALE_PSYNERGY_STONE_GONE_TOLD
Back from Kalay, the villager searching for the Psynergy Stone has told Isaac it is gone.
u16 gValeHome_DoorOpens[]
static void ValeHome_UpdateActor17Psynergy(void)
Updates the demonstrating villager's Psynergy display.
static void ValeHome_UpdateActor20Psynergy(void)
Updates the palette of the levitated actor.
static void Event_WelcomeIsaacHome(void)
Back from Kalay, a villager welcomes Isaac home; later he only says this is Vale.
static void Event_TalkAboutHelping(void)
On the stormy night, a villager tells Isaac which way the others went, or, once he has been sent to t...
#define FLAG_VALE_WELCOMED_HOME
Back from Kalay, a villager has welcomed Isaac home.
static void ValeHome_FlashPsynergyPalette(struct FieldActor *actor)
Flashes the caster's palette and emits paired effects every sixteen frames.
s32 gValeHome_Actor11Actions[]
s32 gValeHome_LeaderActions[]
s32 gValeHome_Actor24Actions[]
const u32 * ValeHome_GetExits(void)
Returns the stormy night's exits while FLAG_VALE_STORM is set, else the day's.
const struct SceneEntrance * ValeHome_GetEntrances(void)
static void Event_AskAboutMeditation(void)
A villager asks whether Isaac meditates on the mountain each day.
s32 ValeHome_Initialize(void)
Arriving: hide the cleared Whirlwind targets, run entrances 97 to 99 (the return from the travelers' ...
struct ScenePlacement gValeHome_DeparturePlacements[]
static s32 ValeHome_TurnAndWaitValue(s32 actor, s32 facing, s32 frames)
static void Event_DemonstratePsynergy(void)
Before the party sets out, a villager shows Isaac his Psynergy and shakes the ground; later he asks w...
static void ValeHome_CyclePsynergyPaletteAndSpawnEffects(struct FieldActor *actor)
Cycles six palette banks and emits the caster's paired effects.
static void ValeHome_FaceDirectionAndWait(s32 actorId, s32 facing, s32 frames)
s32 gValeHome_Actor17Actions[]
u32 gValeHome_StormExits[]
static void Event_LeaveThroughSouthPassage(void)
Leaves by the south passage once the party has begun its journey.
static void Event_TravelersLeaveAfterBattle(void)
After the battle the travelers leave Isaac and his companion lying in the storm, and the storm ends.
static void Event_RecallThreeYearsAgo(void)
A villager recalls the difficult time three years ago and asks Isaac about it.
struct SceneEvent gValeHome_DepartureEvents[]
static void ValeHome_FightTravelers(void)
The travelers catch Isaac eavesdropping and fight; win or lose, the party returns by entrance 19.
static void Event_OpenNorthwestDoor(void)
struct SceneEvent gValeHome_StormEvents[]
@ ACTOR_STORM_GARET
Garet as a child, who follows Isaac through the night. "Isaac! Wait!".
@ ACTOR_FIRST_TRAVELER
The two travelers who survived Sol Sanctum, Saturos and Menardi by their sprites (0x20 and 0x21,...
static void ValeHome_RejoinParty(s32 actorId)
Walks a separate scene actor back to the leader, then hides it.
s32 gValeHome_Actor21Actions[]
const struct SceneRegion * ValeHome_GetRegions(void)
static void Event_SentToAidElders(void)
On the stormy night, villagers send Isaac and his companion to aid the elders holding back the Boulde...
s32 gValeHome_Actor30Actions[]
static void Event_OpenDoorAndWalkThrough(s32 cellX, s32 cellZ, s32 x, s32 z)
Opens a door's map cells and sends the leader through its threshold.
static void ValeHome_SetProgressFlagsAndExit(void)
Arriving by entrance 99, a debug entrance: sets a preset of story flags, which differs by edition,...
static void Event_TalkAboutFallenStone(void)
A villager tells how the stone fell, and the camera looks at it.
static void Event_ClearSecondWhirlwindTarget(void)
Whirlwind clears the second target (actor 9).
s32 gValeHome_Actor25StepActions[]
struct SceneEvent gValeHome_Events[]
struct SceneEvent gValeHome_EventsAfterLeaving[]
#define VALE_HOME_TURN_AND_WAIT
static void ValeHome_CyclePsynergyPalette(struct FieldActor *actor)
Cycles the levitated actor through six palette banks.
s32 gValeHome_LeaderStepActions[]
s32 gValeHome_Actor0And1Actions[]
The patch levels: our groups of the measured changes from the Japanese release.
s32 Resource_ResetEntry(u32 no)
Frees cache entry no: its blocks go back and the entry is marked free (offset 0xffff).
The sprite VRAM block cache and its owners.
struct VramBlockCacheEntry gVramBlockCache[]
void FieldFx_ResumeLightning(void)
Restarts the lightning: the next flash in 128 frames, repeating.
void FieldFx_StartLightning(void)
Starts the storm's lightning (FieldFx_UpdateLightning): builds the dark (0x10003) and lit (0x10005) p...
void FieldFx_StopLightning(void)
Stops the lightning: no flash for 0x7fff frames, and none after.
void FieldFx_StartGroundParticles(void)
Starts the ground particles (FieldFx_UpdateGroundParticles) with sound 170: loads their tiles and put...
void FieldFx_LastLightning(void)
One last flash of lightning in 12 frames, then no more.
void UiWork_FinalizePendingCore(void)
Closes each message channel's window whose text has ended, then waits ten frames.