suhalla_desert.c
The Suhalla Desert in three scenes.
games/tbs/src/scene/suhalla_desert.c on GitHub
The Suhalla Desert in three scenes. Sandstorms rise as the party nears them; one that catches the leader spins the party and, unless Douse stops it and its monster is fought, carries the party off to the world map. In the second scene one storm gives chase, and Reveal shows what the sand hides. Travelling with the party, Iodem warns of the storms, and, once he has heard the wounded soldiers in Suhalla, asks whether to search on for Sheba or press on to Lalivero.
Functions
Event_FightDjinni
static void Event_FightDjinni(void)
Talking to the Djinni starts its battle.
Used by gSuhallaGateEvents2.
SuhallaDesert_ClearActorSpriteAndCollisionFlags
static s32 SuhallaDesert_ClearActorSpriteAndCollisionFlags( struct ScriptInterpreter *interpreter)
A storm's placement script: clears its sprite and collision flags.
SuhallaDesert_ToggleActorActive
static s32 SuhallaDesert_ToggleActorActive(struct ScriptInterpreter *interpreter)
A storm's placement script: toggles its single-sprite storage.
Scene_GetExits
const u32 *Scene_GetExits(void)
Where each exit of the three scenes leads.
Scene_GetPlacements
const struct ScenePlacement *Scene_GetPlacements(void)
The storms, Iodem, and in the second scene the Djinni and what Reveal shows.
SuhallaDesert_UpdateCaptureTimer
static void SuhallaDesert_UpdateCaptureTimer(void)
Each frame while caught: spins the leader, and counts down to raising event 99, the storm carrying the party away.
Used by SuhallaDesert_CatchInStorm.
SuhallaDesert_CatchInStorm
static void SuhallaDesert_CatchInStorm(s32 stormId)
The leader walks into a storm: drawn to its centre and lifted, the party spins until Douse stops the storm or it carries them away.
Used by Event_CaughtByFifthStorm, Event_CaughtByFirstStorm, Event_CaughtByFourthStorm, Event_CaughtBySecondStorm, Event_CaughtByThirdStorm.
Event_CaughtByFirstStorm
static void Event_CaughtByFirstStorm(void)
The leader walks into the first storm of the scene.
Event_CaughtBySecondStorm
static void Event_CaughtBySecondStorm(void)
The leader walks into the second storm.
Event_CaughtByThirdStorm
static void Event_CaughtByThirdStorm(void)
The leader walks into the third storm.
Event_CaughtByFourthStorm
static void Event_CaughtByFourthStorm(void)
The leader walks into the fourth storm.
Event_CaughtByFifthStorm
static void Event_CaughtByFifthStorm(void)
The leader walks into the first scene's fifth storm, or the chasing storm reaches the moving leader.
SuhallaDesert_RaiseStorm
static void SuhallaDesert_RaiseStorm(s32 stormId)
As the party nears a storm it rises, growing to full size with the sand haze fading in the first time. The first time a storm rises with Iodem in the party, he steps out and warns of the sandstorms: "If we don't get past here, we'll never make it to Babi Lighthouse."
Used by Event_FifthStormRises, Event_FirstStormRises, Event_FourthStormRises, Event_SecondStormRises, Event_ThirdStormRises.
Event_FirstStormRises
static void Event_FirstStormRises(void)
The party nears the first storm.
Event_SecondStormRises
static void Event_SecondStormRises(void)
The party nears the second storm.
Event_ThirdStormRises
static void Event_ThirdStormRises(void)
The party nears the third storm.
Event_FourthStormRises
static void Event_FourthStormRises(void)
The party nears the fourth storm.
Event_FifthStormRises
static void Event_FifthStormRises(void)
The party nears the fifth storm.
Event_IodemAsksWhetherToPressOn
static void Event_IodemAsksWhetherToPressOn(void)
Near the second scene's way out to the world map, once Iodem has heard the wounded soldiers: he steps out of the party. "Sheba is nowhere to be found. Should we search the desert once more or press on to Lalivero?" Whatever the answer, Iodem decides to go on to Tolbi's guard gate ahead and leave the search to its soldiers, and rejoins the party.
SuhallaDesert_ChaseLeader
static s32 SuhallaDesert_ChaseLeader(struct ScriptInterpreter *interpreter)
The chasing storm's script: it follows the leader, throwing up sand every eight frames, and catches a moving leader it comes within 8 pixels of (event 55).
Event_StormGivesChase
static void Event_StormGivesChase(void)
In the second scene, until the chasing storm has been doused: it appears behind the party and gives chase.
Event_DouseCastAtStorm
static void Event_DouseCastAtStorm(void)
Douse cast at the storm that caught the leader: sets the Psynergy effect's child option (its meaning unknown).
Event_DouseStorm
static void Event_DouseStorm(s32 unused, s32 stormId)
Douse stops the storm that caught the leader: it is doused for good, and the monster in it attacks. The second scene's fourth and chasing storms hold other monsters.
Event_StormCarriesPartyAway
static void Event_StormCarriesPartyAway(void)
The spinning runs out: the storm rises into the sky with the party, the screen closes, and the party lands on the world map.
SuhallaDesert_PulseRevealPalette
static void SuhallaDesert_PulseRevealPalette(void)
While Reveal lasts: one palette color pulses, brightening and dimming over 64 frames.
Also, functions without a comment: Scene_GetEntrances, Scene_GetRegions.
Macros, without a comment: SUHALLA_REVEAL_PALETTE_COLOR.
Globals, without a comment: sSuhallaDesertSavedColor.
Declarations, without a comment: SuhallaDesert_SetUpFirstSceneStorms, SuhallaDesert_SetUpSecondSceneStorms, QueueSceneSound.