From f86780913f9942c420a987cecff8bd2aca1c3513 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Sat, 21 May 2022 20:53:00 -0500 Subject: [PATCH] Fixed issue with mirror portals showing up in DW in Crossed OW --- hooks.asm | 4 ---- owrando.asm | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/hooks.asm b/hooks.asm index 133d73d..7199692 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2383,10 +2383,6 @@ JML MirrorBonk MirrorBonk_NormalReturn: org $07A9D1 ; <- 3A9D1 - Bank07.asm:6649 (BRANCH_GAMMA:) MirrorBonk_BranchGamma: -org $02FBAB -JSL.l OWMirrorSpriteRestore : NOP -org $0ABFBF -JSL.l OWMirrorSpriteOnMap : BRA + : NOP #6 : + JML OWMirrorSpriteBonk ;================================================================================ diff --git a/owrando.asm b/owrando.asm index 43419fd..913b17d 100644 --- a/owrando.asm +++ b/owrando.asm @@ -39,8 +39,17 @@ org $04E8B4 Overworld_LoadSpecialOverworld: -org $05af75 +; mirror hooks +org $02FBAB +JSL OWMirrorSpriteRestore : NOP +org $05AF75 +Sprite_6C_MirrorPortal: jsl OWPreserveMirrorSprite : nop #2 ; LDA $7EF3CA : BNE $05AFDF +org $05AFDF +Sprite_6C_MirrorPortal_missing_mirror: +JML OWMirrorSpriteDelete : NOP ; STZ $0DD0,X : BRA $05AFF1 +org $0ABFBF +JSL OWMirrorSpriteOnMap : BRA + : NOP #6 : + ; whirlpool shuffle cross world change org $02b3bd @@ -220,6 +229,8 @@ OWPreserveMirrorSprite: rtl .deleteMirror + lda.b $10 : cmp.b #$0f : bne + + jsr.w OWMirrorSpriteMove ; if performing mirror superbunny + pla : pla : pla : jml Sprite_6C_MirrorPortal_missing_mirror } OWMirrorSpriteMove: @@ -233,6 +244,12 @@ OWMirrorSpriteBonk: jsr.w OWMirrorSpriteMove lda.b #$2c : jml SetGameModeLikeMirror ; what we wrote over } +OWMirrorSpriteDelete: +{ + stz.w $0dd0,x ; what we wrote over + jsr.w OWMirrorSpriteMove + jml Sprite_6C_MirrorPortal_dont_do_warp +} OWMirrorSpriteRestore: { lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .return