Blood moon: Difference between revisions

Jump to navigation Jump to search
imported>Leoetlino
imported>Leoetlino
(4 intermediate revisions by the same user not shown)
Line 7: Line 7:
== Scheduled Blood Moons ==
== Scheduled Blood Moons ==
{{link to article|link=WorldMgr#Midnight checks}}
{{link to article|link=WorldMgr#Midnight checks}}
Scheduled Blood Moons are based on a timer that starts running as soon as the "step out of Shrine of Resurrection" (Demo103_0) has finished. When the timer reaches 7 in-game days, the WM_BloodyDay flag is set. The next time it is midnight, assuming blood moons are not inhibited, the Blood Moon cutscene will trigger. For more details, read [[WorldMgr]].
Scheduled Blood Moons are based on a timer that starts running as soon as the "step out of Shrine of Resurrection" (Demo103_0) has finished. When the timer reaches 7 in-game days, the WM_BloodyDay flag is set. The next time it is midnight, assuming blood moons are not inhibited, the Blood Moon cutscene will trigger. For more details, read [[WorldMgr]].


Line 14: Line 15:
Contrary to a widespread theory, they are not used as a generic error handler or a fallback for "unhandled events". Panic blood moons can only occur in specific cases.
Contrary to a widespread theory, they are not used as a generic error handler or a fallback for "unhandled events". Panic blood moons can only occur in specific cases.


Panic conditions are checked every frame by [[GameScene]], which also keeps track of the panic reason in an unsigned 32-bit integer so that memory issues can be reported to Nintendo via the [[telemetry]] system.
Panic conditions are checked every frame by [[GameScene#precalc]], which also keeps track of the panic reason in an unsigned 32-bit integer so that memory issues can be reported to Nintendo via the [[telemetry]] system.


{|class="wikitable"
{|class="wikitable"
Line 41: Line 42:
A panic moon causes enemies and other respawnable objects to respawn since it calls [https://eventviewer.zeldamods.org/viewer.html?data=/d/Demo011_0.json&params=1&entry=Demo011_0&node=Event3 Demo011_0] just like the regular blood moon code. The demo contains a call to [[AIDef:Action/EventOffWaitRevivalAction]] (OffWaitRevival), which appears to be what actually resets the revival flags.
A panic moon causes enemies and other respawnable objects to respawn since it calls [https://eventviewer.zeldamods.org/viewer.html?data=/d/Demo011_0.json&params=1&entry=Demo011_0&node=Event3 Demo011_0] just like the regular blood moon code. The demo contains a call to [[AIDef:Action/EventOffWaitRevivalAction]] (OffWaitRevival), which appears to be what actually resets the revival flags.


=== Inhibitors ===
=== Panic blood moon inhibitors ===
{{empty section}}
Panic blood Moons can only occur if '''all''' of the following conditions are '''false'''<ref>Switch 1.5.0 0x71007ADFB0</ref>:
* the player is in a dungeon, AocField, GameTestField, GameTestField2, or any debug or dev map
* the Fade screen (loading screen) is opened
* some [[EventMgr]] check returns false{{check}}
* there is an active event
* the player actor does not exist
* the player is more than 0.25 distance units away from his save position (game data flag: PlayerSavePos)


== Notes ==
== Notes ==
Anonymous user

Navigation menu