Compare commits

..

No commits in common. "5562bb450a35759e413cb887ebb4ea808220f4f5" and "be789d40c9ffaa43925ba47d6fbf82780d8876e4" have entirely different histories.

4 changed files with 10 additions and 13 deletions

@ -1 +1 @@
Subproject commit 46797d6cadca6ff78377e7065d073a176d988025 Subproject commit 356b9f901e65dcde3b7368116f5a7e84087b07ef

View File

@ -16,5 +16,3 @@ output_binary_path = "patches/patches.bin"
unpaired_lo16_warnings = false unpaired_lo16_warnings = false
# Allow exporting functions and events for mods to use. # Allow exporting functions and events for mods to use.
allow_exports = true allow_exports = true
# # Enable strict patch mode, validates that patched symbols exist and that non-patch functions aren't symbols.
strict_patch_mode = true

View File

@ -740,11 +740,11 @@ RECOMP_PATCH void Sram_ResetSaveFromMoonCrash(SramContext* sramCtx) {
} }
bool loading_resets_owl_save = true; bool owls_quit_game = true;
RECOMP_EXPORT void recomp_set_loading_resets_owl_save(bool new_val) RECOMP_EXPORT void recomp_set_owls_quit_game(bool new_val)
{ {
loading_resets_owl_save = new_val; owls_quit_game = new_val;
} }
RECOMP_DECLARE_EVENT(recomp_on_owl_update(ObjWarpstone* this, PlayState* play)); RECOMP_DECLARE_EVENT(recomp_on_owl_update(ObjWarpstone* this, PlayState* play));
@ -765,11 +765,10 @@ RECOMP_PATCH void ObjWarpstone_Update(Actor* thisx, PlayState* play) {
if (play->msgCtx.choiceIndex != 0) { if (play->msgCtx.choiceIndex != 0) {
recomp_on_owl_save(this, play); recomp_on_owl_save(this, play);
Audio_PlaySfx_MessageDecide(); Audio_PlaySfx_MessageDecide();
// @recomp Only use normal owl save if flag is set. if (!owls_quit_game) {
if (loading_resets_owl_save) {
play->msgCtx.msgMode = MSGMODE_OWL_SAVE_0;
} else {
Message_CloseTextbox(play); Message_CloseTextbox(play);
} else {
play->msgCtx.msgMode = MSGMODE_OWL_SAVE_0;
} }
play->msgCtx.unk120D6 = 0; play->msgCtx.unk120D6 = 0;
play->msgCtx.unk120D4 = 0; play->msgCtx.unk120D4 = 0;
@ -786,7 +785,7 @@ RECOMP_PATCH void ObjWarpstone_Update(Actor* thisx, PlayState* play) {
} }
// @recomp Skip the text talking about the save being deleted on load, if autosave is enabled. // @recomp Skip the text talking about the save being deleted on load, if autosave is enabled.
if (recomp_autosave_enabled() || !loading_resets_owl_save) { if (recomp_autosave_enabled()) {
if (this->isTalking && play->msgCtx.currentTextId == 0xC01 && play->msgCtx.msgBufPos == 269) { if (this->isTalking && play->msgCtx.currentTextId == 0xC01 && play->msgCtx.msgBufPos == 269) {
play->msgCtx.msgBufPos = 530; play->msgCtx.msgBufPos = 530;
} }

View File

@ -5,7 +5,7 @@
extern Input D_801F6C18; extern Input D_801F6C18;
RECOMP_DECLARE_EVENT(recomp_on_play_main(PlayState* play)); RECOMP_DECLARE_EVENT(recomp_on_play_main(PlayState* play));
RECOMP_DECLARE_EVENT(recomp_on_play_update(PlayState* play)); RECOMP_DECLARE_EVENT(recomp_before_play_update(PlayState* play));
RECOMP_DECLARE_EVENT(recomp_after_play_update(PlayState* play)); RECOMP_DECLARE_EVENT(recomp_after_play_update(PlayState* play));
void controls_play_update(PlayState* play) { void controls_play_update(PlayState* play) {
@ -38,7 +38,7 @@ RECOMP_PATCH void Play_Main(GameState* thisx) {
this->state.gfxCtx = NULL; this->state.gfxCtx = NULL;
} }
camera_pre_play_update(this); camera_pre_play_update(this);
recomp_on_play_update(this); recomp_before_play_update(this);
Play_Update(this); Play_Update(this);
recomp_after_play_update(this); recomp_after_play_update(this);
camera_post_play_update(this); camera_post_play_update(this);