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