Fixed OOB transition behavior in Mixed OWR

This commit is contained in:
codemann8
2022-10-21 00:11:45 -05:00
parent 33cfd010a0
commit 43448cc5b6

View File

@@ -586,9 +586,9 @@ OWDetectSpecialTransition:
} }
OWEdgeTransition: OWEdgeTransition:
{ {
LDA.l OWMode : ORA.l OWMode+1 : BEQ .vanilla LDA.l OWMode : ORA.l OWMode+1 : BEQ .unshuffled
LDY.w $06FA : CPY.b #$7F LDY.w $06FA : CPY.b #$7F
BEQ .vanilla BEQ .unshuffled
REP #$10 REP #$10
LDX.w $06F8 LDX.w $06F8
PHB : PHK : PLB PHB : PHK : PLB
@@ -596,9 +596,15 @@ OWEdgeTransition:
PLB PLB
SEP #$30 SEP #$30
RTL RTL
.vanilla
.unshuffled
LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over LDA.l Overworld_ActualScreenID,X : ORA.l CurrentWorld ; what we wrote over
RTL TAX : LDA.l OWMode+1 : AND.b #!FLAG_OW_MIXED : BEQ .vanilla
LDA.l OWTileWorldAssoc,X : CMP.l CurrentWorld : BEQ .vanilla ; if dest screen mismatches the current world
TXA : EOR #$40 : RTL
.vanilla
TXA : RTL
} }
OWSpecialExit: OWSpecialExit:
{ {