GameScene: Difference between revisions

→‎precalc: update information on preCalc, now that it's mostly clear what it does (and how panic blood moons work)
imported>Leoetlino
imported>Leoetlino
(→‎precalc: update information on preCalc, now that it's mostly clear what it does (and how panic blood moons work))
Line 229: Line 229:
*Update current map name based on player position (when Link is not in a dungeon).
*Update current map name based on player position (when Link is not in a dungeon).
*Run StageMgr and StageSelect code.
*Run StageMgr and StageSelect code.
*??? (runs only if this->field_8CB is non zero)
*If a flag is set, run the final step of stage generation. (Unused?)
*If stage status is "NeedsGeneration":
*If stage status is "NeedsGeneration":
**Call some [[MCMgr]] function at 0x71007A9198.
**Call some [[MCMgr]] function at 0x71007A9198.
Line 238: Line 238:
**Run save upload subsystem if needed.
**Run save upload subsystem if needed.
**Call GameScene::unloadStage.
**Call GameScene::unloadStage.
*??? (something involving the previous stage binder{{check}})
*If no stage is being unloaded, call <code>this->activeStageBinder->getStage()->preCalc</code>.
*??? (something involving GameScene Subsystem #12)
*??? (something involving GameScene Subsystem #12)
*Call some [[MCMgr]] function at 0x71007A9198, again.
*Call some [[MCMgr]] function at 0x71007A9198, again.
*??? (runs if the GameScene state is StageMgr)
*If the current state is StageMgr:
**Reset the current stage binder by setting a flag for StageMgr if needed (after a Blood Moon{{check}})
**If a forced blood moon is ready
***If panic blood moons can be triggered (see [[Blood moon#Panic blood moon inhibitors]]), call the Blood Moon demo (Demo011_0).
***Report the panic blood moon via the [[telemetry]] system.
**If any [[Blood moon#Panic Blood Moons|panic condition]] is true, request a panic blood moon by setting a SkyMgr flag. SkyMgr will start a 90 frame timer (3 seconds) and set a ready flag once it has expired. The timer is reset every time the panic blood moon is temporarily inhibited.


=== calc ===
=== calc ===
Anonymous user