Fixed L/R map swap while in special world
This commit is contained in:
31
owrando.asm
31
owrando.asm
@@ -115,9 +115,10 @@ BEQ .vanilla_light
|
||||
LDA.b OverworldIndex : AND.b #$40
|
||||
BEQ .vanilla_light
|
||||
.custom
|
||||
PHB : PHK : PLB
|
||||
JSL LoadMapDarkOrCustom
|
||||
PLB
|
||||
STZ.b ScrapBuffer72 ; clear tile swap flag
|
||||
JSL LoadMapDarkOrCustom_long
|
||||
NOP #2
|
||||
warnpc $8ABAB5
|
||||
.vanilla_light ; $0ABAB5
|
||||
|
||||
org $8ABB32
|
||||
@@ -240,6 +241,7 @@ OWMapWorldCheck16:
|
||||
{
|
||||
lda.b GameMode : cmp.w #$0014 : beq .return ; attract module, return with Z flag cleared
|
||||
jsl OWWorldCheck16
|
||||
eor.b ScrapBuffer72 ; apply tile swap flag
|
||||
.return
|
||||
rtl
|
||||
}
|
||||
@@ -409,6 +411,7 @@ LoadMapDarkOrCustom:
|
||||
LDX.b OverworldIndex
|
||||
LDA.l OWTileWorldAssoc,X
|
||||
AND.w #$0040
|
||||
EOR.b ScrapBuffer72 ; apply tile swap flag
|
||||
BEQ .draw_lw
|
||||
LDA.w #OWMapGridDark
|
||||
BRA .draw_dw
|
||||
@@ -443,7 +446,7 @@ LoadMapDarkOrCustom:
|
||||
.end
|
||||
SEP #$30
|
||||
LDA.b #$15 : STA.b NMIINCR ; what we wrote over
|
||||
RTL
|
||||
RTS
|
||||
}
|
||||
|
||||
GetOWMapTilemapOffsetToCopy:
|
||||
@@ -509,11 +512,11 @@ GetOWMapTilemapOffsetToCopy:
|
||||
dw $0400+$0210 ; bottom right
|
||||
}
|
||||
|
||||
LoadMapSwapTiles:
|
||||
LoadMapDarkOrCustom_long:
|
||||
{
|
||||
PHB : LDA.b #WorldMap_DarkWorldTilemap>>16 : PHA : PLB
|
||||
LDA.l OWFlags : AND.b #!FLAG_OW_CUSTOM_MAP
|
||||
JSL LoadMapDarkOrCustom
|
||||
JSR LoadMapDarkOrCustom
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
@@ -522,17 +525,15 @@ LoadMapOppositeWorld:
|
||||
LDA.l OWFlags : AND.b #!FLAG_OW_ADJUST_DYNAMIC_MAP_SPRITE_POSITION : BEQ .vanilla
|
||||
LDA.b ScrapBuffer72 : BEQ +
|
||||
LDA.b Joy1B_All : AND.b #$30 : BNE .vanilla
|
||||
STZ.b ScrapBuffer72
|
||||
STZ.b ScrapBuffer72 ; clear tile swap flag
|
||||
BRA .new_tiles
|
||||
+ LDA.b Joy1B_New : AND.b #$30 : BEQ .vanilla
|
||||
LDA.b #$40 : STA.b ScrapBuffer72
|
||||
LDA.b #$40 : STA.b ScrapBuffer72 ; set tile swap flag
|
||||
.new_tiles
|
||||
EOR.b OverworldIndex : STA.b OverworldIndex
|
||||
JSL OverworldMap_InitGfx+$10 ; load palette
|
||||
DEC.w SubModuleInterface
|
||||
LDA.b #$0F : STA.b INIDISPQ
|
||||
JSL LoadMapSwapTiles
|
||||
LDA.w OverworldIndexMirror : STA.b OverworldIndex
|
||||
JSL OverworldMap_InitGfx+$10 ; load palette
|
||||
DEC.w SubModuleInterface
|
||||
LDA.b #$0F : STA.b INIDISPQ
|
||||
JSL LoadMapDarkOrCustom_long
|
||||
LDA.b #$24 : STA.w SFX3
|
||||
PLA : PLA : PEA.w $BBAF ; skip everything upon return
|
||||
.vanilla
|
||||
@@ -542,7 +543,7 @@ LoadMapOppositeWorld:
|
||||
WorldMap_SkipHandleSprites:
|
||||
{
|
||||
LDA.l OWFlags : AND.b #!FLAG_OW_ADJUST_DYNAMIC_MAP_SPRITE_POSITION : BEQ .vanilla
|
||||
LDA.b ScrapBuffer72 : BEQ .vanilla
|
||||
LDA.b ScrapBuffer72 : BEQ .vanilla ; skip draw if no tile swap
|
||||
PLA : PLA : PEA.w $C3AF ; exit without drawing sprites
|
||||
RTL
|
||||
.vanilla
|
||||
|
||||
Reference in New Issue
Block a user