Alchemy
Loading...
Searching...
No Matches

imil_fuchin_falls.c File Reference

The Djinni's ice room by Imil and Fuchin Falls, in seven maps: the ice room, then Fuchin Falls' four platform rooms, the room of the Ki inscription and the dragon statue's room. More...

Go to the source code of this file.

Data Structures

struct  CaveEffectScripts
 The three action scripts cave dust can run, chosen by its spawn flags. More...
struct  CaveDustOptions
 EffectOptions cut after its scales: the caller's frame holds only these 24 bytes. More...

Enumerations

enum  ImilFuchinFallsActor {
  ACTOR_IMIL_DJINNI = 8 , ACTOR_FIRST_PLATFORM = 8 , ACTOR_SECOND_PLATFORM = 9 , ACTOR_THIRD_PLATFORM = 10 ,
  ACTOR_FOURTH_PLATFORM = 11 , ACTOR_FUCHIN_DJINNI = 11
}
enum  { IMIL_SLIDE_ANIMATION_STEP = 3 * 16 }

Functions

static void Fuchin_RebuildFirstRoomPlatforms (void)
 Restores platform positions and collision cells in the first puzzle room.
static void Fuchin_RebuildSecondRoomPlatforms (void)
 Restores platform positions and collision cells in the second puzzle room.
static void Fuchin_RebuildThirdRoomPlatforms (void)
 Restores the interacting platform stops and collision cells in the third room.
static void Fuchin_RebuildFourthRoomPlatforms (void)
 Restores both halves of the fourth puzzle room from its saved platform stops.
static void Imil_WalkTowardDjinni (void)
 Shows the Imil Djinni and walks the leader toward it.
static void ImilFuchinFalls_PrepareRoom (void)
 Restores room props and the cave light for this entrance.
static void ImilFuchinFalls_RebuildPlatformRoom (void)
 Restores the collision templates for the current platform room.
static void ImilFuchinFalls_HopBy (s32 dx, s32 dz)
 Jumps the leader by a pixel offset while using the hopping animations.
static void ImilFuchinFalls_PlaceDragonsEye (void)
 Creates the collectible eye and uploads its item icon.
static void Imil_SlideActorAcrossIce (void)
 Slides along the ice until terrain or a collision boundary ends the move.
 STATIC_ASSERT (offsetof(struct CaveDustOptions, priority)==offsetof(struct EffectOptions, priority))
 STATIC_ASSERT (offsetof(struct CaveDustOptions, palette)==offsetof(struct EffectOptions, palette))
 STATIC_ASSERT (offsetof(struct CaveDustOptions, startScaleX)==offsetof(struct EffectOptions, startScaleX))
 STATIC_ASSERT (offsetof(struct CaveDustOptions, startScaleY)==offsetof(struct EffectOptions, startScaleY))
 STATIC_ASSERT (offsetof(struct CaveDustOptions, targetScaleX)==offsetof(struct EffectOptions, targetScaleX))
 STATIC_ASSERT (offsetof(struct CaveDustOptions, targetScaleY)==offsetof(struct EffectOptions, targetScaleY))
static void Imil_RecruitDjinni (void)
 Talking to the Djinni in the ice room adds it to the party.
static void Fuchin_StartDjinnBattle (void)
 Talking to the Djinni in the second platform room starts its battle.
const struct SceneEntrance * ImilFuchinFalls_GetEntrances (void)
const struct SceneRegion * ImilFuchinFalls_GetRegions (void)
const u32 * ImilFuchinFalls_GetExits (void)
 Returns the exit connections shared by these rooms.
const struct ScenePlacement * ImilFuchinFalls_GetPlacements (void)
static void Fuchin_FinishPlatformMove (void(*rebuildPlatforms)(void))
 Lets the platform settle before rebuilding its room's collision cells.
static void Fuchin_FirstRoom_MoveFirstPlatformEast (void)
static void Fuchin_FirstRoom_MoveFirstPlatformWest (void)
static void Fuchin_FirstRoom_MoveSecondPlatformSouth (void)
static void Fuchin_FirstRoom_MoveSecondPlatformNorth (void)
static void Fuchin_FirstRoom_MoveThirdPlatformSouth (void)
static void Fuchin_FirstRoom_MoveThirdPlatformNorth (void)
static void Fuchin_SecondRoom_MoveFirstPlatformToEastEnd (void)
static void Fuchin_SecondRoom_MoveFirstPlatformToWestEnd (void)
static void Fuchin_SecondRoom_NudgeFirstPlatformWest (void)
static void Fuchin_SecondRoom_MoveFirstPlatformEast (void)
static void Fuchin_SecondRoom_MoveSecondPlatformSouth (void)
static void Fuchin_SecondRoom_MoveSecondPlatformNorth (void)
static void Fuchin_SecondRoom_MoveThirdPlatformSouth (void)
static void Fuchin_SecondRoom_MoveThirdPlatformNorth (void)
static void Fuchin_ThirdRoom_MoveFirstPlatformWest (void)
static void Fuchin_ThirdRoom_MoveFirstPlatformEastFromMiddle (void)
static void Fuchin_ThirdRoom_MoveFirstPlatformWestIfClear (void)
static void Fuchin_ThirdRoom_MoveFirstPlatformEastFromWestEnd (void)
static void Fuchin_ThirdRoom_MoveSecondPlatformWest (void)
static void Fuchin_ThirdRoom_MoveSecondPlatformEast (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformNorthFromSouthEnd (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromNorthEnd (void)
static void Fuchin_ThirdRoom_NudgeThirdPlatformNorth (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromUpperStop (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformNorthFromMiddle (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromMiddle (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformNorthFromLowerStop (void)
static void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromLowerStop (void)
static void Fuchin_ThirdRoom_MoveFourthPlatformNorth (void)
static void Fuchin_ClearFourthPlatformStops (void)
 Clears all saved intermediate stops for the fourth platform.
static void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromNorthEnd (void)
static void Fuchin_ThirdRoom_NudgeFourthPlatformNorth (void)
static void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromUpperStop (void)
static void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromMiddle (void)
static void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromLowerStop (void)
static void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromLastStop (void)
static void Fuchin_FourthRoom_MoveFirstPlatformSouth (void)
static void Fuchin_FourthRoom_MoveFirstPlatformNorth (void)
static void Fuchin_FourthRoom_MoveSecondPlatformWest (void)
static void Fuchin_FourthRoom_MoveSecondPlatformEast (void)
static void Fuchin_FourthRoom_MoveThirdPlatformEast (void)
static void Fuchin_FourthRoom_MoveThirdPlatformWest (void)
static void Fuchin_AnimateFirstPlatform (void)
 Advances the first platform through its two rolling animations.
static void Fuchin_AnimateSecondPlatform (void)
 Advances the second platform through its two rolling animations.
static void Fuchin_AnimateThirdPlatform (void)
 Advances the third platform through its two rolling animations.
static void Fuchin_AnimateFourthPlatform (void)
 Advances the fourth platform through its two rolling animations.
static struct FieldActor * Fuchin_CreateForegroundActor (s32 x, s32 y, s32 z, s32 resourceId)
 Creates a stationary foreground actor with its palette and priority set.
const struct SceneEvent * ImilFuchinFalls_GetEvents (void)
static void Imil_LeaveDjinnRoom (void)
 Faces the leader south and leaves the Imil Djinn room.
static void Imil_MoveAcrossIce (void)
 Starts sliding the selected actor in the held direction.
static void Fuchin_PlacePlatformAtCell (s32 id, s32 column, s32 row)
 Centers a platform on its cell and gives it underfoot priority.
static void Fuchin_FollowLeaderWithLight (void)
 Attaches the active cave light to the party leader.
static void Fuchin_StopLightFollowingLeader (void)
 Detaches the active cave light from the party leader.
s32 ImilFuchinFalls_Initialize (void)
 Entering the Djinni's ice room the first time, the leader walks toward the Djinni; otherwise each room restores its platforms, eye and lighting.
static void ImilFuchinFalls_HopOnTrigger (void)
 Hops across a platform edge when its current stop permits it.
static void Fuchin_HopNorth (void)
 Hops the leader one gap north.
static void Fuchin_HopWest (void)
 Hops the leader one gap west.
static void Fuchin_CollectDragonsEye (void)
 Gives the eye to the party and removes its displayed actor.
static void Fuchin_UpdateDustMotion (union FieldObject *raw)
 Applies the dust velocity and scale change for one frame.
static s32 Fuchin_SetDustPalette (struct ScriptInterpreter *interpreter)
 Selects the dust palette when its object script finishes looping.
void ImilFuchinFalls_SpawnDust (s32 x, s32 y, s32 z, s32 velocityX, s32 velocityY, s32 velocityZ, u32 flags, const struct EffectOptions *extra)
 Creates scripted cave dust with the requested velocity, palette and scale.
static void ImilFuchinFalls_BlowCaveMouthDust (void)
 Emits cave-mouth dust every fourth frame while the dragon awakens.
static void Fuchin_LightDragonWithEye (void)
 Inserts the eye, lights the dragon room and reveals its hidden path.
static void Fuchin_ReadDragonFlameInscription (void)
 Reads the inscription describing the dragon flame.
static void Fuchin_ReadKiInscription (void)
 Reads the inscription about the secret power of Ki.
static void Fuchin_ReadShadowInscription (void)
 Reads the inscription about light revealing shadows.
static void Fuchin_SearchDragonStatue (void)
 Describes the dragon eyes or offers to insert the carried eye.
static void Fuchin_EndRevealLighting (void)
 Restores the dark cave lighting when Reveal expires.
static void Imil_TurnSkaterTowardHeldDirection (union FieldObject *object)
 Turns the sliding actor gradually toward the held direction.

Variables

s32 gImilFuchinFalls_TrackLeader
s32 * gImilFuchinFalls_DustScripts []
s16 gImilFuchinFalls_KeyHeadings []
s16 gImilFuchinFalls_SlideHeadings []
struct FieldActor * gImilFuchinFalls_DragonsEye = NULL
struct SceneEntrance gImilFuchinFalls_NoEntrances []
struct SceneEntrance gImilFuchinFalls_DjinniRoomEntrances []
struct SceneEntrance gImilFuchinFalls_FirstRoomEntrances []
struct SceneEntrance gImilFuchinFalls_SecondRoomEntrances []
struct SceneEntrance gImilFuchinFalls_ThirdRoomEntrances []
struct SceneEntrance gImilFuchinFalls_FourthRoomEntrances []
struct SceneEntrance gImilFuchinFalls_KiRoomEntrances []
struct SceneEntrance gImilFuchinFalls_DragonRoomEntrances []
u32 gImilFuchinFalls_Exits []
struct ScenePlacement gImilFuchinFalls_NoPlacements []
struct ScenePlacement gImilFuchinFalls_DjinniRoomPlacements []
struct ScenePlacement gImilFuchinFalls_FirstRoomPlacements []
struct ScenePlacement gImilFuchinFalls_SecondRoomPlacements []
struct ScenePlacement gImilFuchinFalls_ThirdRoomPlacements []
struct ScenePlacement gImilFuchinFalls_FourthRoomPlacements []
struct ScenePlacement gImilFuchinFalls_DragonRoomPlacements []
struct SceneEvent gImilFuchinFalls_NoEvents []
struct SceneEvent gImilFuchinFalls_DjinniRoomEvents []
struct SceneEvent gImilFuchinFalls_FirstRoomEvents []
struct SceneEvent gImilFuchinFalls_SecondRoomEvents []
struct SceneEvent gImilFuchinFalls_ThirdRoomEvents []
struct SceneEvent gImilFuchinFalls_FourthRoomEvents []
struct SceneEvent gImilFuchinFalls_KiRoomEvents []
struct SceneEvent gImilFuchinFalls_DragonRoomEvents []
s32 gImilFuchinFalls_DustScript0 []
s32 gImilFuchinFalls_DustScript1 []
s32 gImilFuchinFalls_DustScript2 []

Detailed Description

The Djinni's ice room by Imil and Fuchin Falls, in seven maps: the ice room, then Fuchin Falls' four platform rooms, the room of the Ki inscription and the dragon statue's room.

Flags 0x301 to 0x315 belong to the cave and hold the platforms' stops: 0x301 to 0x303 the first room's, 0x304 to 0x307 the second's, 0x308 to 0x312 the third's and 0x313 to 0x315 the fourth's.

Definition in file imil_fuchin_falls.c.

Enumeration Type Documentation

◆ ImilFuchinFallsActor

Enumerator
ACTOR_IMIL_DJINNI 

in the ice room

ACTOR_FIRST_PLATFORM 

The platforms, in each platform room.

ACTOR_SECOND_PLATFORM 
ACTOR_THIRD_PLATFORM 
ACTOR_FOURTH_PLATFORM 
ACTOR_FUCHIN_DJINNI 

in the second platform room

Definition at line 53 of file imil_fuchin_falls.c.

◆ anonymous enum

anonymous enum
Enumerator
IMIL_SLIDE_ANIMATION_STEP 

three times normal animation speed

Definition at line 63 of file imil_fuchin_falls.c.

Function Documentation

◆ Fuchin_RebuildFirstRoomPlatforms()

◆ Fuchin_RebuildSecondRoomPlatforms()

◆ Fuchin_RebuildThirdRoomPlatforms()

◆ Fuchin_RebuildFourthRoomPlatforms()

◆ Imil_WalkTowardDjinni()

void Imil_WalkTowardDjinni ( void )
static

Shows the Imil Djinni and walks the leader toward it.

Definition at line 1111 of file imil_fuchin_falls.c.

Referenced by Imil_WalkTowardDjinni(), and ImilFuchinFalls_Initialize().

◆ ImilFuchinFalls_PrepareRoom()

void ImilFuchinFalls_PrepareRoom ( void )
static

Restores room props and the cave light for this entrance.

Definition at line 1124 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_Initialize(), and ImilFuchinFalls_PrepareRoom().

◆ ImilFuchinFalls_RebuildPlatformRoom()

void ImilFuchinFalls_RebuildPlatformRoom ( void )
static

Restores the collision templates for the current platform room.

Definition at line 1178 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_PrepareRoom(), and ImilFuchinFalls_RebuildPlatformRoom().

◆ ImilFuchinFalls_HopBy()

void ImilFuchinFalls_HopBy ( s32 dx,
s32 dz )
static

Jumps the leader by a pixel offset while using the hopping animations.

Definition at line 1223 of file imil_fuchin_falls.c.

Referenced by Fuchin_HopNorth(), Fuchin_HopWest(), ImilFuchinFalls_HopBy(), and ImilFuchinFalls_HopOnTrigger().

◆ ImilFuchinFalls_PlaceDragonsEye()

void ImilFuchinFalls_PlaceDragonsEye ( void )
static

Creates the collectible eye and uploads its item icon.

Definition at line 1235 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_PlaceDragonsEye(), and ImilFuchinFalls_PrepareRoom().

◆ Imil_SlideActorAcrossIce()

void Imil_SlideActorAcrossIce ( void )
static

Slides along the ice until terrain or a collision boundary ends the move.

Definition at line 1506 of file imil_fuchin_falls.c.

Referenced by Imil_MoveAcrossIce(), and Imil_SlideActorAcrossIce().

◆ STATIC_ASSERT() [1/6]

STATIC_ASSERT ( offsetof(struct CaveDustOptions, priority) = =offsetof(struct EffectOptions, priority))

◆ STATIC_ASSERT() [2/6]

STATIC_ASSERT ( offsetof(struct CaveDustOptions, palette) = =offsetof(struct EffectOptions, palette))

◆ STATIC_ASSERT() [3/6]

STATIC_ASSERT ( offsetof(struct CaveDustOptions, startScaleX) = =offsetof(struct EffectOptions, startScaleX))

◆ STATIC_ASSERT() [4/6]

STATIC_ASSERT ( offsetof(struct CaveDustOptions, startScaleY) = =offsetof(struct EffectOptions, startScaleY))

◆ STATIC_ASSERT() [5/6]

STATIC_ASSERT ( offsetof(struct CaveDustOptions, targetScaleX) = =offsetof(struct EffectOptions, targetScaleX))

◆ STATIC_ASSERT() [6/6]

STATIC_ASSERT ( offsetof(struct CaveDustOptions, targetScaleY) = =offsetof(struct EffectOptions, targetScaleY))

◆ Imil_RecruitDjinni()

void Imil_RecruitDjinni ( void )
static

Talking to the Djinni in the ice room adds it to the party.

Definition at line 110 of file imil_fuchin_falls.c.

Referenced by Imil_RecruitDjinni().

◆ Fuchin_StartDjinnBattle()

void Fuchin_StartDjinnBattle ( void )
static

Talking to the Djinni in the second platform room starts its battle.

Definition at line 115 of file imil_fuchin_falls.c.

Referenced by Fuchin_StartDjinnBattle().

◆ ImilFuchinFalls_GetEntrances()

const struct SceneEntrance * ImilFuchinFalls_GetEntrances ( void )

Definition at line 119 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ ImilFuchinFalls_GetRegions()

const struct SceneRegion * ImilFuchinFalls_GetRegions ( void )

Definition at line 146 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetRegions().

◆ ImilFuchinFalls_GetExits()

const u32 * ImilFuchinFalls_GetExits ( void )

Returns the exit connections shared by these rooms.

Definition at line 149 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetExits().

◆ ImilFuchinFalls_GetPlacements()

const struct ScenePlacement * ImilFuchinFalls_GetPlacements ( void )

Definition at line 151 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ Fuchin_FinishPlatformMove()

◆ Fuchin_FirstRoom_MoveFirstPlatformEast()

void Fuchin_FirstRoom_MoveFirstPlatformEast ( void )
static

Definition at line 184 of file imil_fuchin_falls.c.

Referenced by Fuchin_FirstRoom_MoveFirstPlatformEast().

◆ Fuchin_FirstRoom_MoveFirstPlatformWest()

void Fuchin_FirstRoom_MoveFirstPlatformWest ( void )
static

Definition at line 194 of file imil_fuchin_falls.c.

Referenced by Fuchin_FirstRoom_MoveFirstPlatformWest().

◆ Fuchin_FirstRoom_MoveSecondPlatformSouth()

void Fuchin_FirstRoom_MoveSecondPlatformSouth ( void )
static

Definition at line 207 of file imil_fuchin_falls.c.

Referenced by Fuchin_FirstRoom_MoveSecondPlatformSouth().

◆ Fuchin_FirstRoom_MoveSecondPlatformNorth()

void Fuchin_FirstRoom_MoveSecondPlatformNorth ( void )
static

Definition at line 216 of file imil_fuchin_falls.c.

Referenced by Fuchin_FirstRoom_MoveSecondPlatformNorth().

◆ Fuchin_FirstRoom_MoveThirdPlatformSouth()

void Fuchin_FirstRoom_MoveThirdPlatformSouth ( void )
static

Definition at line 225 of file imil_fuchin_falls.c.

Referenced by Fuchin_FirstRoom_MoveThirdPlatformSouth().

◆ Fuchin_FirstRoom_MoveThirdPlatformNorth()

void Fuchin_FirstRoom_MoveThirdPlatformNorth ( void )
static

Definition at line 234 of file imil_fuchin_falls.c.

Referenced by Fuchin_FirstRoom_MoveThirdPlatformNorth().

◆ Fuchin_SecondRoom_MoveFirstPlatformToEastEnd()

void Fuchin_SecondRoom_MoveFirstPlatformToEastEnd ( void )
static

Definition at line 243 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveFirstPlatformToEastEnd().

◆ Fuchin_SecondRoom_MoveFirstPlatformToWestEnd()

void Fuchin_SecondRoom_MoveFirstPlatformToWestEnd ( void )
static

Definition at line 252 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveFirstPlatformToWestEnd().

◆ Fuchin_SecondRoom_NudgeFirstPlatformWest()

void Fuchin_SecondRoom_NudgeFirstPlatformWest ( void )
static

Definition at line 262 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_NudgeFirstPlatformWest().

◆ Fuchin_SecondRoom_MoveFirstPlatformEast()

void Fuchin_SecondRoom_MoveFirstPlatformEast ( void )
static

Definition at line 271 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveFirstPlatformEast().

◆ Fuchin_SecondRoom_MoveSecondPlatformSouth()

void Fuchin_SecondRoom_MoveSecondPlatformSouth ( void )
static

Definition at line 286 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveSecondPlatformSouth().

◆ Fuchin_SecondRoom_MoveSecondPlatformNorth()

void Fuchin_SecondRoom_MoveSecondPlatformNorth ( void )
static

Definition at line 295 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveSecondPlatformNorth().

◆ Fuchin_SecondRoom_MoveThirdPlatformSouth()

void Fuchin_SecondRoom_MoveThirdPlatformSouth ( void )
static

Definition at line 304 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveThirdPlatformSouth().

◆ Fuchin_SecondRoom_MoveThirdPlatformNorth()

void Fuchin_SecondRoom_MoveThirdPlatformNorth ( void )
static

Definition at line 314 of file imil_fuchin_falls.c.

Referenced by Fuchin_SecondRoom_MoveThirdPlatformNorth().

◆ Fuchin_ThirdRoom_MoveFirstPlatformWest()

void Fuchin_ThirdRoom_MoveFirstPlatformWest ( void )
static

Definition at line 327 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_MoveFirstPlatformWest().

◆ Fuchin_ThirdRoom_MoveFirstPlatformEastFromMiddle()

void Fuchin_ThirdRoom_MoveFirstPlatformEastFromMiddle ( void )
static

◆ Fuchin_ThirdRoom_MoveFirstPlatformWestIfClear()

void Fuchin_ThirdRoom_MoveFirstPlatformWestIfClear ( void )
static

Definition at line 351 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_MoveFirstPlatformWestIfClear().

◆ Fuchin_ThirdRoom_MoveFirstPlatformEastFromWestEnd()

void Fuchin_ThirdRoom_MoveFirstPlatformEastFromWestEnd ( void )
static

◆ Fuchin_ThirdRoom_MoveSecondPlatformWest()

void Fuchin_ThirdRoom_MoveSecondPlatformWest ( void )
static

Definition at line 376 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_MoveSecondPlatformWest().

◆ Fuchin_ThirdRoom_MoveSecondPlatformEast()

void Fuchin_ThirdRoom_MoveSecondPlatformEast ( void )
static

Definition at line 385 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_MoveSecondPlatformEast().

◆ Fuchin_ThirdRoom_MoveThirdPlatformNorthFromSouthEnd()

void Fuchin_ThirdRoom_MoveThirdPlatformNorthFromSouthEnd ( void )
static

◆ Fuchin_ThirdRoom_MoveThirdPlatformSouthFromNorthEnd()

void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromNorthEnd ( void )
static

◆ Fuchin_ThirdRoom_NudgeThirdPlatformNorth()

void Fuchin_ThirdRoom_NudgeThirdPlatformNorth ( void )
static

Definition at line 443 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_NudgeThirdPlatformNorth().

◆ Fuchin_ThirdRoom_MoveThirdPlatformSouthFromUpperStop()

void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromUpperStop ( void )
static

◆ Fuchin_ThirdRoom_MoveThirdPlatformNorthFromMiddle()

void Fuchin_ThirdRoom_MoveThirdPlatformNorthFromMiddle ( void )
static

◆ Fuchin_ThirdRoom_MoveThirdPlatformSouthFromMiddle()

void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromMiddle ( void )
static

◆ Fuchin_ThirdRoom_MoveThirdPlatformNorthFromLowerStop()

void Fuchin_ThirdRoom_MoveThirdPlatformNorthFromLowerStop ( void )
static

◆ Fuchin_ThirdRoom_MoveThirdPlatformSouthFromLowerStop()

void Fuchin_ThirdRoom_MoveThirdPlatformSouthFromLowerStop ( void )
static

◆ Fuchin_ThirdRoom_MoveFourthPlatformNorth()

void Fuchin_ThirdRoom_MoveFourthPlatformNorth ( void )
static

Definition at line 526 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_MoveFourthPlatformNorth().

◆ Fuchin_ClearFourthPlatformStops()

◆ Fuchin_ThirdRoom_MoveFourthPlatformSouthFromNorthEnd()

void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromNorthEnd ( void )
static

◆ Fuchin_ThirdRoom_NudgeFourthPlatformNorth()

void Fuchin_ThirdRoom_NudgeFourthPlatformNorth ( void )
static

Definition at line 566 of file imil_fuchin_falls.c.

Referenced by Fuchin_ThirdRoom_NudgeFourthPlatformNorth().

◆ Fuchin_ThirdRoom_MoveFourthPlatformSouthFromUpperStop()

void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromUpperStop ( void )
static

◆ Fuchin_ThirdRoom_MoveFourthPlatformSouthFromMiddle()

void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromMiddle ( void )
static

◆ Fuchin_ThirdRoom_MoveFourthPlatformSouthFromLowerStop()

void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromLowerStop ( void )
static

◆ Fuchin_ThirdRoom_MoveFourthPlatformSouthFromLastStop()

void Fuchin_ThirdRoom_MoveFourthPlatformSouthFromLastStop ( void )
static

◆ Fuchin_FourthRoom_MoveFirstPlatformSouth()

void Fuchin_FourthRoom_MoveFirstPlatformSouth ( void )
static

Definition at line 614 of file imil_fuchin_falls.c.

Referenced by Fuchin_FourthRoom_MoveFirstPlatformSouth().

◆ Fuchin_FourthRoom_MoveFirstPlatformNorth()

void Fuchin_FourthRoom_MoveFirstPlatformNorth ( void )
static

Definition at line 623 of file imil_fuchin_falls.c.

Referenced by Fuchin_FourthRoom_MoveFirstPlatformNorth().

◆ Fuchin_FourthRoom_MoveSecondPlatformWest()

void Fuchin_FourthRoom_MoveSecondPlatformWest ( void )
static

Definition at line 632 of file imil_fuchin_falls.c.

Referenced by Fuchin_FourthRoom_MoveSecondPlatformWest().

◆ Fuchin_FourthRoom_MoveSecondPlatformEast()

void Fuchin_FourthRoom_MoveSecondPlatformEast ( void )
static

Definition at line 641 of file imil_fuchin_falls.c.

Referenced by Fuchin_FourthRoom_MoveSecondPlatformEast().

◆ Fuchin_FourthRoom_MoveThirdPlatformEast()

void Fuchin_FourthRoom_MoveThirdPlatformEast ( void )
static

Definition at line 650 of file imil_fuchin_falls.c.

Referenced by Fuchin_FourthRoom_MoveThirdPlatformEast().

◆ Fuchin_FourthRoom_MoveThirdPlatformWest()

void Fuchin_FourthRoom_MoveThirdPlatformWest ( void )
static

Definition at line 659 of file imil_fuchin_falls.c.

Referenced by Fuchin_FourthRoom_MoveThirdPlatformWest().

◆ Fuchin_AnimateFirstPlatform()

void Fuchin_AnimateFirstPlatform ( void )
static

Advances the first platform through its two rolling animations.

Definition at line 669 of file imil_fuchin_falls.c.

Referenced by Fuchin_AnimateFirstPlatform().

◆ Fuchin_AnimateSecondPlatform()

void Fuchin_AnimateSecondPlatform ( void )
static

Advances the second platform through its two rolling animations.

Definition at line 675 of file imil_fuchin_falls.c.

Referenced by Fuchin_AnimateSecondPlatform().

◆ Fuchin_AnimateThirdPlatform()

void Fuchin_AnimateThirdPlatform ( void )
static

Advances the third platform through its two rolling animations.

Definition at line 681 of file imil_fuchin_falls.c.

Referenced by Fuchin_AnimateThirdPlatform().

◆ Fuchin_AnimateFourthPlatform()

void Fuchin_AnimateFourthPlatform ( void )
static

Advances the fourth platform through its two rolling animations.

Definition at line 687 of file imil_fuchin_falls.c.

Referenced by Fuchin_AnimateFourthPlatform().

◆ Fuchin_CreateForegroundActor()

struct FieldActor * Fuchin_CreateForegroundActor ( s32 x,
s32 y,
s32 z,
s32 resourceId )
static

Creates a stationary foreground actor with its palette and priority set.

Definition at line 693 of file imil_fuchin_falls.c.

Referenced by Fuchin_CreateForegroundActor(), and ImilFuchinFalls_PrepareRoom().

◆ ImilFuchinFalls_GetEvents()

const struct SceneEvent * ImilFuchinFalls_GetEvents ( void )

Definition at line 708 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ Imil_LeaveDjinnRoom()

void Imil_LeaveDjinnRoom ( void )
static

Faces the leader south and leaves the Imil Djinn room.

Definition at line 736 of file imil_fuchin_falls.c.

Referenced by Imil_LeaveDjinnRoom().

◆ Imil_MoveAcrossIce()

void Imil_MoveAcrossIce ( void )
static

Starts sliding the selected actor in the held direction.

Definition at line 749 of file imil_fuchin_falls.c.

Referenced by Imil_MoveAcrossIce().

◆ Fuchin_PlacePlatformAtCell()

void Fuchin_PlacePlatformAtCell ( s32 id,
s32 column,
s32 row )
static

◆ Fuchin_FollowLeaderWithLight()

void Fuchin_FollowLeaderWithLight ( void )
static

Attaches the active cave light to the party leader.

Definition at line 1079 of file imil_fuchin_falls.c.

Referenced by Fuchin_FollowLeaderWithLight().

◆ Fuchin_StopLightFollowingLeader()

void Fuchin_StopLightFollowingLeader ( void )
static

Detaches the active cave light from the party leader.

Definition at line 1088 of file imil_fuchin_falls.c.

Referenced by Fuchin_StopLightFollowingLeader().

◆ ImilFuchinFalls_Initialize()

s32 ImilFuchinFalls_Initialize ( void )

Entering the Djinni's ice room the first time, the leader walks toward the Djinni; otherwise each room restores its platforms, eye and lighting.

Definition at line 1098 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_Initialize().

◆ ImilFuchinFalls_HopOnTrigger()

void ImilFuchinFalls_HopOnTrigger ( void )
static

Hops across a platform edge when its current stop permits it.

Definition at line 1200 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_HopOnTrigger().

◆ Fuchin_HopNorth()

void Fuchin_HopNorth ( void )
static

Hops the leader one gap north.

Definition at line 1217 of file imil_fuchin_falls.c.

Referenced by Fuchin_HopNorth().

◆ Fuchin_HopWest()

void Fuchin_HopWest ( void )
static

Hops the leader one gap west.

Definition at line 1220 of file imil_fuchin_falls.c.

Referenced by Fuchin_HopWest().

◆ Fuchin_CollectDragonsEye()

void Fuchin_CollectDragonsEye ( void )
static

Gives the eye to the party and removes its displayed actor.

Definition at line 1259 of file imil_fuchin_falls.c.

Referenced by Fuchin_CollectDragonsEye().

◆ Fuchin_UpdateDustMotion()

void Fuchin_UpdateDustMotion ( union FieldObject * raw)
static

Applies the dust velocity and scale change for one frame.

Definition at line 1277 of file imil_fuchin_falls.c.

Referenced by Fuchin_UpdateDustMotion(), and ImilFuchinFalls_SpawnDust().

◆ Fuchin_SetDustPalette()

s32 Fuchin_SetDustPalette ( struct ScriptInterpreter * interpreter)
static

Selects the dust palette when its object script finishes looping.

Definition at line 1288 of file imil_fuchin_falls.c.

Referenced by Fuchin_SetDustPalette().

◆ ImilFuchinFalls_SpawnDust()

void ImilFuchinFalls_SpawnDust ( s32 x,
s32 y,
s32 z,
s32 velocityX,
s32 velocityY,
s32 velocityZ,
u32 flags,
const struct EffectOptions * extra )

Creates scripted cave dust with the requested velocity, palette and scale.

Definition at line 1295 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_BlowCaveMouthDust(), and ImilFuchinFalls_SpawnDust().

◆ ImilFuchinFalls_BlowCaveMouthDust()

void ImilFuchinFalls_BlowCaveMouthDust ( void )
static

Emits cave-mouth dust every fourth frame while the dragon awakens.

Definition at line 1348 of file imil_fuchin_falls.c.

Referenced by Fuchin_LightDragonWithEye(), and ImilFuchinFalls_BlowCaveMouthDust().

◆ Fuchin_LightDragonWithEye()

void Fuchin_LightDragonWithEye ( void )
static

Inserts the eye, lights the dragon room and reveals its hidden path.

Definition at line 1373 of file imil_fuchin_falls.c.

Referenced by Fuchin_LightDragonWithEye().

◆ Fuchin_ReadDragonFlameInscription()

void Fuchin_ReadDragonFlameInscription ( void )
static

Reads the inscription describing the dragon flame.

Definition at line 1421 of file imil_fuchin_falls.c.

Referenced by Fuchin_ReadDragonFlameInscription().

◆ Fuchin_ReadKiInscription()

void Fuchin_ReadKiInscription ( void )
static

Reads the inscription about the secret power of Ki.

Definition at line 1428 of file imil_fuchin_falls.c.

Referenced by Fuchin_ReadKiInscription().

◆ Fuchin_ReadShadowInscription()

void Fuchin_ReadShadowInscription ( void )
static

Reads the inscription about light revealing shadows.

Definition at line 1435 of file imil_fuchin_falls.c.

Referenced by Fuchin_ReadShadowInscription().

◆ Fuchin_SearchDragonStatue()

void Fuchin_SearchDragonStatue ( void )
static

Describes the dragon eyes or offers to insert the carried eye.

Definition at line 1442 of file imil_fuchin_falls.c.

Referenced by Fuchin_SearchDragonStatue().

◆ Fuchin_EndRevealLighting()

void Fuchin_EndRevealLighting ( void )
static

Restores the dark cave lighting when Reveal expires.

Definition at line 1457 of file imil_fuchin_falls.c.

Referenced by Fuchin_EndRevealLighting().

◆ Imil_TurnSkaterTowardHeldDirection()

void Imil_TurnSkaterTowardHeldDirection ( union FieldObject * object)
static

Turns the sliding actor gradually toward the held direction.

Definition at line 1476 of file imil_fuchin_falls.c.

Referenced by Imil_SlideActorAcrossIce(), and Imil_TurnSkaterTowardHeldDirection().

Variable Documentation

◆ gImilFuchinFalls_TrackLeader

s32 gImilFuchinFalls_TrackLeader

◆ gImilFuchinFalls_DustScripts

s32* gImilFuchinFalls_DustScripts[]
Initial value:

Definition at line 1598 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_SpawnDust().

◆ gImilFuchinFalls_KeyHeadings

s16 gImilFuchinFalls_KeyHeadings[]
Initial value:
= {
0xffff, FACING_EAST, FACING_WEST, 0xffff, FACING_NORTH, 0xffff, 0xffff, FACING_NORTH,
FACING_SOUTH, 0xffff, 0xffff, FACING_SOUTH, 0xffff, FACING_EAST, FACING_WEST, 0xffff,
}
@ FACING_NORTHEAST
Definition field_scene.h:33
@ FACING_EAST
Definition field_scene.h:26
@ FACING_SOUTHEAST
Definition field_scene.h:27
@ FACING_NORTH
Definition field_scene.h:32
@ FACING_SOUTHWEST
Definition field_scene.h:29
@ FACING_NORTHWEST
Definition field_scene.h:31
@ FACING_SOUTH
Definition field_scene.h:28
@ FACING_WEST
Definition field_scene.h:30

Definition at line 1605 of file imil_fuchin_falls.c.

Referenced by Imil_TurnSkaterTowardHeldDirection().

◆ gImilFuchinFalls_SlideHeadings

s16 gImilFuchinFalls_SlideHeadings[]

◆ gImilFuchinFalls_DragonsEye

struct FieldActor* gImilFuchinFalls_DragonsEye = NULL

◆ gImilFuchinFalls_NoEntrances

struct SceneEntrance gImilFuchinFalls_NoEntrances[]
Initial value:
= {
{ 0, CONDITION_ALWAYS, 256, 0, 600, FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
}
@ SCENE_TABLE_END
Definition field_scene.h:43
@ CONDITION_ALWAYS
Definition field_scene.h:44

Definition at line 1620 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_DjinniRoomEntrances

struct SceneEntrance gImilFuchinFalls_DjinniRoomEntrances[]
Initial value:
= {
{ 0, CONDITION_ALWAYS, 172, 0, 149, FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
{ 1, CONDITION_ALWAYS, 264, 0, 289, FACING_NORTH, 0, 135, 62, 376, 328, 0 },
}

Definition at line 1625 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_FirstRoomEntrances

struct SceneEntrance gImilFuchinFalls_FirstRoomEntrances[]
Initial value:
= {
{ 0, CONDITION_ALWAYS, 248, 0, 600, FACING_SOUTH, 0, 64, 64, 416, 656, 0 },
{ 1, CONDITION_ALWAYS, 248, 0, 632, FACING_NORTH, 0, 64, 368, 416, 656, 0 },
{ 2, CONDITION_ALWAYS, 376, 0, 488, FACING_SOUTH, 0, 64, 368, 416, 656, 0 },
{ 3, CONDITION_ALWAYS, 120, 0, 488, FACING_SOUTH, 0, 64, 368, 416, 656, 0 },
{ 4, CONDITION_ALWAYS, 232, 0, 408, FACING_SOUTH, 0, 64, 368, 416, 656, 0 },
{ 5, CONDITION_ALWAYS, 232, 0, 344, FACING_NORTH, 0, 64, 48, 416, 376, 0 },
{ 6, CONDITION_ALWAYS, 376, 0, 152, FACING_NORTH, 0, 64, 48, 416, 376, 0 },
{ 7, CONDITION_ALWAYS, 120, 0, 200, FACING_SOUTH, 0, 64, 48, 416, 376, 0 },
{ 8, CONDITION_ALWAYS, 248, 0, 104, FACING_SOUTH, 0, 64, 48, 416, 376, 0 },
}

Definition at line 1631 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_SecondRoomEntrances

struct SceneEntrance gImilFuchinFalls_SecondRoomEntrances[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 248, 0, 120, FACING_SOUTH, 0, 96, 64, 416, 480, 0 },
{ 2, CONDITION_ALWAYS, 152, 0, 200, FACING_NORTH, 0, 96, 64, 416, 480, 0 },
}

Definition at line 1644 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_ThirdRoomEntrances

struct SceneEntrance gImilFuchinFalls_ThirdRoomEntrances[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 248, 0, 104, FACING_SOUTH, 0, 128, 64, 368, 256, 0 },
{ 2, CONDITION_ALWAYS, 184, 0, 328, FACING_SOUTH, 0, 96, 256, 416, 656, 0 },
{ 3, CONDITION_ALWAYS, 152, 0, 432, FACING_SOUTH, 0, 96, 256, 416, 656, 0 },
{ 4, CONDITION_ALWAYS, 184, 0, 552, FACING_SOUTH, 0, 96, 256, 416, 656, 0 },
{ 5, CONDITION_ALWAYS, 280, 0, 616, FACING_NORTH, 0, 96, 256, 416, 656, 0 },
}

Definition at line 1650 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_FourthRoomEntrances

struct SceneEntrance gImilFuchinFalls_FourthRoomEntrances[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 328, 0, 72, FACING_SOUTH, 0, 64, 16, 416, 416, 0 },
{ 2, CONDITION_ALWAYS, 248, 0, 392, FACING_NORTH, 0, 64, 16, 416, 416, 0 },
{ 3, CONDITION_ALWAYS, 248, 0, 472, FACING_SOUTH, 0, 64, 416, 416, 800, 0 },
{ 4, CONDITION_ALWAYS, 344, 0, 632, FACING_NORTH, 0, 64, 416, 416, 800, 0 },
}

Definition at line 1659 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_KiRoomEntrances

struct SceneEntrance gImilFuchinFalls_KiRoomEntrances[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 264, 0, 232, FACING_NORTH, 0, 128, 16, 384, 256, 0 },
{ 2, CONDITION_ALWAYS, 248, 0, 472, FACING_SOUTH, 0, 64, 256, 416, 720, 0 },
{ 3, CONDITION_ALWAYS, 216, 0, 664, FACING_NORTH, 0, 64, 256, 416, 720, 0 },
{ 4, CONDITION_ALWAYS, 280, 0, 664, FACING_NORTH, 0, 64, 256, 416, 720, 0 },
}

Definition at line 1667 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_DragonRoomEntrances

struct SceneEntrance gImilFuchinFalls_DragonRoomEntrances[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 280, 0, 120, FACING_SOUTH, 0, 64, 0, 416, 344, 0 },
{ 2, CONDITION_ALWAYS, 216, 0, 120, FACING_SOUTH, 0, 64, 0, 416, 344, 0 },
{ 3, CONDITION_ALWAYS, 104, 0, 280, FACING_SOUTH, 0, 64, 0, 416, 344, 0 },
{ 4, CONDITION_ALWAYS, 200, 0, 344, FACING_NORTH, 0, 64, 16, 416, 344, 0 },
{ 5, CONDITION_ALWAYS, 248, 0, 312, FACING_NORTH, 0, 64, 16, 416, 344, 0 },
{ 6, CONDITION_ALWAYS, 296, 0, 344, FACING_NORTH, 0, 64, 16, 416, 344, 0 },
{ 7, CONDITION_ALWAYS, 200, 0, 440, FACING_SOUTH, 0, 32, 344, 432, 736, 0 },
{ 8, CONDITION_ALWAYS, 248, 0, 440, FACING_SOUTH, 0, 32, 344, 432, 736, 0 },
{ 9, CONDITION_ALWAYS, 296, 0, 424, FACING_SOUTH, 0, 32, 344, 432, 736, 0 },
{ 10, CONDITION_ALWAYS, 376, 0, 472, FACING_SOUTH, 0, 32, 344, 432, 736, 0 },
{ 11, CONDITION_ALWAYS, 248, 0, 536, FACING_NORTH, 0, 32, 344, 432, 736, 0 },
{ 12, CONDITION_ALWAYS, 120, 0, 696, FACING_SOUTH, 0, 32, 344, 432, 752, 0 },
}

Definition at line 1675 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEntrances().

◆ gImilFuchinFalls_Exits

u32 gImilFuchinFalls_Exits[]

Definition at line 1691 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetExits().

◆ gImilFuchinFalls_NoPlacements

struct ScenePlacement gImilFuchinFalls_NoPlacements[]
Initial value:
= {
}

Definition at line 1738 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_DjinniRoomPlacements

struct ScenePlacement gImilFuchinFalls_DjinniRoomPlacements[]
Initial value:
= {
{ 0x5c, 0x59, ACTOR_STAND,
PIXELS(263), 0, PIXELS(204), FACING_SOUTH, TALK_FACE_PARTY, 0 },
}
@ TALK_FACE_PARTY
@ ACTOR_STAND
#define PIXELS(value)

Definition at line 1742 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_FirstRoomPlacements

struct ScenePlacement gImilFuchinFalls_FirstRoomPlacements[]
Initial value:
= {
{ 0xed, CONDITION_ALWAYS, 7,
{ 0xec, CONDITION_ALWAYS, 7,
{ 0xec, CONDITION_ALWAYS, 7,
}
@ TALK_KEEP_FACING

Definition at line 1748 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_SecondRoomPlacements

struct ScenePlacement gImilFuchinFalls_SecondRoomPlacements[]
Initial value:
= {
{ 0xed, CONDITION_ALWAYS, 7,
{ 0xec, CONDITION_ALWAYS, 7,
{ 0xec, CONDITION_ALWAYS, 7,
{ 0x5d, 0x6e, ACTOR_STAND,
PIXELS(344), 0, PIXELS(280), FACING_SOUTH, TALK_FACE_PARTY, 0 },
}

Definition at line 1758 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_ThirdRoomPlacements

struct ScenePlacement gImilFuchinFalls_ThirdRoomPlacements[]
Initial value:
= {
{ 0xed, CONDITION_ALWAYS, 7,
{ 0xed, CONDITION_ALWAYS, 7,
{ 0xec, CONDITION_ALWAYS, 7,
{ 0xec, CONDITION_ALWAYS, 7,
}

Definition at line 1770 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_FourthRoomPlacements

struct ScenePlacement gImilFuchinFalls_FourthRoomPlacements[]
Initial value:
= {
{ 0xec, CONDITION_ALWAYS, 7,
{ 0xed, CONDITION_ALWAYS, 7,
{ 0xed, CONDITION_ALWAYS, 7,
}

Definition at line 1782 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_DragonRoomPlacements

struct ScenePlacement gImilFuchinFalls_DragonRoomPlacements[]
Initial value:
= {
{ 0xdf, CONDITION_ALWAYS, 7,
}

Definition at line 1792 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetPlacements().

◆ gImilFuchinFalls_NoEvents

struct SceneEvent gImilFuchinFalls_NoEvents[]
Initial value:
= {
}
#define SCENE_EVENTS_END

Definition at line 1798 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_DjinniRoomEvents

struct SceneEvent gImilFuchinFalls_DjinniRoomEvents[]
Initial value:
= {
}
@ EVENT_TOUCH
@ EVENT_TALK
#define EVENT_SCRIPT(script)
static void Imil_LeaveDjinnRoom(void)
Faces the leader south and leaves the Imil Djinn room.
static void Imil_MoveAcrossIce(void)
Starts sliding the selected actor in the held direction.
static void Imil_RecruitDjinni(void)
Talking to the Djinni in the ice room adds it to the party.
@ ACTOR_IMIL_DJINNI
in the ice room

Definition at line 1802 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_FirstRoomEvents

struct SceneEvent gImilFuchinFalls_FirstRoomEvents[]
Initial value:
= {
{ 0x21, 27, CONDITION_ALWAYS, 7 },
{ SEARCH(SEARCH_CHEST), 100, 0xef1, 0x500001 },
}
@ EVENT_EXIT
#define SEARCH(target)
#define TOUCH_WALKING_INTO(facing)
@ SEARCH_UNNAMED
@ SEARCH_CHEST
static void Fuchin_FirstRoom_MoveSecondPlatformNorth(void)
static void Fuchin_ReadDragonFlameInscription(void)
Reads the inscription describing the dragon flame.
static void Fuchin_FirstRoom_MoveThirdPlatformNorth(void)
static void Fuchin_AnimateThirdPlatform(void)
Advances the third platform through its two rolling animations.
static void Fuchin_FirstRoom_MoveSecondPlatformSouth(void)
static void Fuchin_FirstRoom_MoveFirstPlatformWest(void)
static void Fuchin_FirstRoom_MoveThirdPlatformSouth(void)
static void Fuchin_AnimateFirstPlatform(void)
Advances the first platform through its two rolling animations.
static void Fuchin_FirstRoom_MoveFirstPlatformEast(void)
static void Fuchin_AnimateSecondPlatform(void)
Advances the second platform through its two rolling animations.

Definition at line 1809 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_SecondRoomEvents

struct SceneEvent gImilFuchinFalls_SecondRoomEvents[]
Initial value:
= {
}
static void Fuchin_SecondRoom_MoveThirdPlatformNorth(void)
static void Fuchin_StartDjinnBattle(void)
Talking to the Djinni in the second platform room starts its battle.
static void Fuchin_SecondRoom_NudgeFirstPlatformWest(void)
static void ImilFuchinFalls_HopOnTrigger(void)
Hops across a platform edge when its current stop permits it.
static void Fuchin_SecondRoom_MoveFirstPlatformToWestEnd(void)
static void Fuchin_SecondRoom_MoveFirstPlatformToEastEnd(void)
static void Fuchin_SecondRoom_MoveThirdPlatformSouth(void)
static void Fuchin_SecondRoom_MoveFirstPlatformEast(void)
static void Fuchin_SecondRoom_MoveSecondPlatformSouth(void)
static void Fuchin_SecondRoom_MoveSecondPlatformNorth(void)
@ ACTOR_FUCHIN_DJINNI
in the second platform room

Definition at line 1835 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_ThirdRoomEvents

struct SceneEvent gImilFuchinFalls_ThirdRoomEvents[]

Definition at line 1860 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_FourthRoomEvents

struct SceneEvent gImilFuchinFalls_FourthRoomEvents[]

Definition at line 1911 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_KiRoomEvents

struct SceneEvent gImilFuchinFalls_KiRoomEvents[]
Initial value:
= {
}
#define FIND_ITEM(item)
#define FLAG_FUCHIN_FALLS_ORB_OF_FORCE_FOUND
The Orb of Force's chest in Fuchin Falls has been opened.
Definition flags.h:618
static void Fuchin_ReadKiInscription(void)
Reads the inscription about the secret power of Ki.
@ ITEM_ORB_OF_FORCE
Definition item_ids.h:56

Definition at line 1944 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_DragonRoomEvents

struct SceneEvent gImilFuchinFalls_DragonRoomEvents[]
Initial value:
= {
{0x31, 3, CONDITION_ALWAYS, 3},
{0x31, 10, CONDITION_ALWAYS, 10},
{0x31, 12, CONDITION_ALWAYS, 12},
}
@ ABILITY_REVEAL
Definition ability_ids.h:19
#define PSYNERGY_IN_AREA(ability, phase)
#define USE_ITEM(item)
#define FLAG_FUCHIN_FALLS_DRAGONS_EYE_SET
The Dragon's Eye is set in the dragon statue, which opened the hidden path.
Definition flags.h:243
static void Fuchin_EndRevealLighting(void)
Restores the dark cave lighting when Reveal expires.
static void Fuchin_SearchDragonStatue(void)
Describes the dragon eyes or offers to insert the carried eye.
static void Fuchin_ReadShadowInscription(void)
Reads the inscription about light revealing shadows.
static void Fuchin_StopLightFollowingLeader(void)
Detaches the active cave light from the party leader.
static void Fuchin_LightDragonWithEye(void)
Inserts the eye, lights the dragon room and reveals its hidden path.
static void Fuchin_FollowLeaderWithLight(void)
Attaches the active cave light to the party leader.
@ ITEM_DRAGONS_EYE
Definition item_ids.h:71

Definition at line 1956 of file imil_fuchin_falls.c.

Referenced by ImilFuchinFalls_GetEvents().

◆ gImilFuchinFalls_DustScript0

s32 gImilFuchinFalls_DustScript0[]
Initial value:
= {
SC_WAIT(1), SC_POS(0, 0, 0), SC_WAIT(1),
}
static s32 Fuchin_SetDustPalette(struct ScriptInterpreter *interpreter)
Selects the dust palette when its object script finishes looping.
#define SC_LOOP(n, to)
Repeat up to n times.
Definition objcmd.h:28
#define SC_POS(x, y, z)
Set position.
Definition objcmd.h:18
#define SC_FREE
Release.
Definition objcmd.h:43
#define SC_WAIT(n)
Wait n frames.
Definition objcmd.h:16
#define SC_TOP
Script start.
Definition objcmd.h:13
#define SC_CALL(fn)
Definition objcmd.h:50

Definition at line 1984 of file imil_fuchin_falls.c.

◆ gImilFuchinFalls_DustScript1

s32 gImilFuchinFalls_DustScript1[]
Initial value:

Definition at line 1990 of file imil_fuchin_falls.c.

◆ gImilFuchinFalls_DustScript2

s32 gImilFuchinFalls_DustScript2[]
Initial value:

Definition at line 1996 of file imil_fuchin_falls.c.