Fixed mirror portals getting erased when changing worlds

This commit is contained in:
codemann8
2021-11-20 00:35:37 -06:00
parent e65ca4752e
commit cf614e4dff
3 changed files with 16 additions and 1 deletions

2
Rom.py
View File

@@ -33,7 +33,7 @@ from source.classes.SFX import randomize_sfx
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '9dfff0f3d093eb9adce053e9773f523e' RANDOMIZERBASEHASH = 'f51b9d3d5d995d55c111af82570d8f04'
class JsonRom(object): class JsonRom(object):

View File

@@ -391,6 +391,21 @@ OWWorldUpdate: ; x = owid of destination screen
{ {
lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return lda.l OWTileWorldAssoc,x : cmp.l $7ef3ca : beq .return
sta.l $7ef3ca ; change world sta.l $7ef3ca ; change world
; activate mirror portal sprite
phx : cmp #0 : beq + : lda #1
+ cmp.l InvertedMode : bne +
lda #$09 : pha : bra .setPortalSpriteState
+ lda #$07 : pha ; some state that allows the portal to persist without it getting overwritten
.setPortalSpriteState
ldx #$0f
- lda $0e20,x : cmp #$6C : bne +
pla : sta $0dd0,x : plx : bra .playSfx
+ dex : bpl -
pla : plx
.playSfx
lda #$38 : sta $012f ; play sfx - #$3b is an alternative lda #$38 : sta $012f ; play sfx - #$3b is an alternative
; toggle bunny mode ; toggle bunny mode

Binary file not shown.