# Conflicts: # LTTP_RND_GeneralBugfixes.asm # bookofmudora.asm # build.bat # catfish.asm # compasses.asm # contrib.asm # darkworldspawn.asm # entrances.asm # events.asm # floodgatesoftlock.asm # flute.asm # framehook.asm # goalitem.asm # halfmagicbat.asm # heartpieces.asm # hooks.asm # inventory.asm # invertedmaps.asm # itemtext_lower.asm # lampmantlecone.asm # mantle.asm # msu.asm # music.asm # newhud.asm # newitems.asm # pendantcrystalhud.asm # ram.asm # rngfixes.asm # roomloading.asm # shopkeeper.asm # stats.asm # stats/credits.asm # stats/creditsnew.asm # stats/statConfig.asm # tables.asm # tablets.asm # utilities.asm # zoraking.asm
77 lines
2.7 KiB
NASM
77 lines
2.7 KiB
NASM
;================================================================================
|
|
; Door Frame Fixes
|
|
;================================================================================
|
|
|
|
;--------------------------------------------------------------------------------
|
|
; StoreLastOverworldDoorID
|
|
;--------------------------------------------------------------------------------
|
|
StoreLastOverworldDoorID:
|
|
TXA : INC
|
|
STA.l PreviousOverworldDoor
|
|
LDA.l $9BBB73, X : STA.w EntranceIndex
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
|
|
;--------------------------------------------------------------------------------
|
|
; CacheDoorFrameData
|
|
;--------------------------------------------------------------------------------
|
|
CacheDoorFrameData:
|
|
LDA.l PreviousOverworldDoor : BEQ .originalBehaviour
|
|
DEC : ASL : TAX
|
|
LDA.l EntranceDoorFrameTable, X : STA.w TileMapEntranceDoors
|
|
LDA.l EntranceAltDoorFrameTable, X : STA.w TileMapTile32
|
|
BRA .done
|
|
.originalBehaviour
|
|
LDA.w $D724, X : STA.w TileMapEntranceDoors
|
|
STZ.w TileMapTile32
|
|
.done
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
|
|
;--------------------------------------------------------------------------------
|
|
; WalkDownIntoTavern
|
|
;--------------------------------------------------------------------------------
|
|
WalkDownIntoTavern:
|
|
LDA.l PreviousOverworldDoor
|
|
; tavern door has index 0x42 (saved off value is incremented by one)
|
|
CMP.b #$43
|
|
RTL
|
|
;--------------------------------------------------------------------------------
|
|
|
|
;--------------------------------------------------------------------------------
|
|
; TurnAroundOnUnderworld
|
|
;--------------------------------------------------------------------------------
|
|
TurnAroundOnUnderworld:
|
|
LDA $26 : BEQ .done
|
|
; turn around if ($010E == #$43) != ($7F5099 == #$43)
|
|
LDX #$00
|
|
LDA #$43 : CMP $010E : BEQ +
|
|
INX
|
|
+
|
|
CMP $7F5099 : BEQ +
|
|
DEX
|
|
+
|
|
CPX #$00 : BEQ .done
|
|
LDA $26 : EOR #$0C : STA $26
|
|
.done
|
|
JML $0FFD65 ; what we overwrote
|
|
|
|
;--------------------------------------------------------------------------------
|
|
; TurnUpOnOverworld
|
|
;--------------------------------------------------------------------------------
|
|
TurnUpOnOverworld:
|
|
LDA.l EntranceTavernBack : CMP #$43 : BEQ .done
|
|
LDA #$08 : STA $26 ; only fix this glitch if exit not vanilla
|
|
.done
|
|
JML $07E68F ; what we overwrote
|
|
|
|
;--------------------------------------------------------------------------------
|
|
; WalkUpOnOverworld
|
|
;--------------------------------------------------------------------------------
|
|
WalkUpOnOverworld:
|
|
LDA $20 : CMP #$091B : BNE .normal ; hardcoded Y coordinate
|
|
STZ $2F
|
|
RTL
|
|
.normal
|
|
LDA #$0002 : STA $2F ; what we overwrote
|
|
RTL |