Scene

From ZeldaMods (Breath of the Wild)
Revision as of 22:02, 12 October 2019 by imported>Leoetlino (add info about Starting event flows)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Not to be confused with maps, map units or stages.

Scenes[1] are active instances of a stage. By design, exactly one scene is active at a time. The active scene is managed by GameScene, which is responsible for generating and unloading stages and changing to another scene.

Scene changes

In practice, scene changes are essentially warps that trigger loading screens. They can be explicitly triggered with three different actions: ChangeScene, FromCDungeonToMainField and ToCDungeon.

All three actions are very similar; in fact they share the same base class. However, the first one is the most flexible action since the other two can only be used for shrines.

Scene changes can also be triggered from AIDef:Action/AreaRoot.

Actions

ChangeScene

Full article: AIDef:Action/ChangeScene

FromCDungeonToMainField

Full article: AIDef:Action/FromCDungeonToMainField

ToCDungeon

Full article: AIDef:Action/ToCDungeon

Warp cutscene

Demo005_1 is used as the event flow for most warps, for example when fast travelling to shrines, towers, Travel Medallion and Divine Beasts.

Entry point ClearRemains is used when completing a Divine Beast. The main difference between CommonFunc and ClearRemains is the warp effect (sound and visual).

Starting event flows

An event flow can be scheduled to start immediately after a scene change is completed, right before control is yielded to the player. For the scene change actions mentioned above, the parameters EvflName and EntryPointName can be used to specify a custom event flow.

That same system is also used for game-initiated scene changes (e.g. reloading a save or going to the title screen). In such cases, GameScene automatically determines which event flow and entry point to use during GameScene.

  1. "SceneWorkTime" @ 0x7100A89528 (Switch 1.5.0)