Alchemy

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.

Line 98

SuhallaDesert_ClearActorSpriteAndCollisionFlags

static s32 SuhallaDesert_ClearActorSpriteAndCollisionFlags( struct ScriptInterpreter *interpreter)

A storm's placement script: clears its sprite and collision flags.

Line 103

SuhallaDesert_ToggleActorActive

static s32 SuhallaDesert_ToggleActorActive(struct ScriptInterpreter *interpreter)

A storm's placement script: toggles its single-sprite storage.

Line 112

Scene_GetExits

const u32 *Scene_GetExits(void)

Where each exit of the three scenes leads.

Line 137

Scene_GetPlacements

const struct ScenePlacement *Scene_GetPlacements(void)

The storms, Iodem, and in the second scene the Djinni and what Reveal shows.

Line 140

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.

Line 157

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.

Line 179

Event_CaughtByFirstStorm

static void Event_CaughtByFirstStorm(void)

The leader walks into the first storm of the scene.

Line 223

Event_CaughtBySecondStorm

static void Event_CaughtBySecondStorm(void)

The leader walks into the second storm.

Line 228

Event_CaughtByThirdStorm

static void Event_CaughtByThirdStorm(void)

The leader walks into the third storm.

Line 233

Event_CaughtByFourthStorm

static void Event_CaughtByFourthStorm(void)

The leader walks into the fourth storm.

Line 238

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.

Line 244

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.

Line 252

Event_FirstStormRises

static void Event_FirstStormRises(void)

The party nears the first storm.

Line 335

Event_SecondStormRises

static void Event_SecondStormRises(void)

The party nears the second storm.

Line 340

Event_ThirdStormRises

static void Event_ThirdStormRises(void)

The party nears the third storm.

Line 345

Event_FourthStormRises

static void Event_FourthStormRises(void)

The party nears the fourth storm.

Line 350

Event_FifthStormRises

static void Event_FifthStormRises(void)

The party nears the fifth storm.

Line 355

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.

Line 364

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).

Line 416

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.

Line 472

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).

Line 482

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.

Line 490

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.

Line 526

SuhallaDesert_PulseRevealPalette

static void SuhallaDesert_PulseRevealPalette(void)

While Reveal lasts: one palette color pulses, brightening and dimming over 64 frames.

Line 569

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.

On this page