Fixed issue with mirror portals showing up in DW in Crossed OW

This commit is contained in:
codemann8
2022-05-21 20:53:00 -05:00
parent 9b846498a2
commit f86780913f
2 changed files with 18 additions and 5 deletions

View File

@@ -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
;================================================================================

View File

@@ -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