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: MirrorBonk_NormalReturn:
org $07A9D1 ; <- 3A9D1 - Bank07.asm:6649 (BRANCH_GAMMA:) org $07A9D1 ; <- 3A9D1 - Bank07.asm:6649 (BRANCH_GAMMA:)
MirrorBonk_BranchGamma: MirrorBonk_BranchGamma:
org $02FBAB
JSL.l OWMirrorSpriteRestore : NOP
org $0ABFBF
JSL.l OWMirrorSpriteOnMap : BRA + : NOP #6 : +
JML OWMirrorSpriteBonk JML OWMirrorSpriteBonk
;================================================================================ ;================================================================================

View File

@@ -39,8 +39,17 @@ org $04E8B4
Overworld_LoadSpecialOverworld: Overworld_LoadSpecialOverworld:
org $05af75 ; mirror hooks
org $02FBAB
JSL OWMirrorSpriteRestore : NOP
org $05AF75
Sprite_6C_MirrorPortal:
jsl OWPreserveMirrorSprite : nop #2 ; LDA $7EF3CA : BNE $05AFDF 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 ; whirlpool shuffle cross world change
org $02b3bd org $02b3bd
@@ -220,6 +229,8 @@ OWPreserveMirrorSprite:
rtl rtl
.deleteMirror .deleteMirror
lda.b $10 : cmp.b #$0f : bne +
jsr.w OWMirrorSpriteMove ; if performing mirror superbunny
+ pla : pla : pla : jml Sprite_6C_MirrorPortal_missing_mirror + pla : pla : pla : jml Sprite_6C_MirrorPortal_missing_mirror
} }
OWMirrorSpriteMove: OWMirrorSpriteMove:
@@ -233,6 +244,12 @@ OWMirrorSpriteBonk:
jsr.w OWMirrorSpriteMove jsr.w OWMirrorSpriteMove
lda.b #$2c : jml SetGameModeLikeMirror ; what we wrote over 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: OWMirrorSpriteRestore:
{ {
lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .return lda.l OWMode+1 : and.b #!FLAG_OW_CROSSED : beq .return