Merge pull request #3 from LLCoolDave/doorframefixes
Fix for door frame code for entrance shuffling.
This commit is contained in:
@@ -119,6 +119,7 @@ incsrc glitched.asm
|
||||
incsrc hardmode.asm
|
||||
incsrc goalitem.asm
|
||||
incsrc compasses.asm
|
||||
incsrc doorframefixes.asm
|
||||
incsrc hashalphabet.asm ; <- TAKE OUT THE EXTRA ORGS IN HERE - THIS IS WHY WE COULDN'T ADD MORE FILES EARLIER
|
||||
warnpc $A18000
|
||||
|
||||
|
||||
44
doorframefixes.asm
Normal file
44
doorframefixes.asm
Normal file
@@ -0,0 +1,44 @@
|
||||
;================================================================================
|
||||
; Door Frame Fixes
|
||||
;================================================================================
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; StoreLastEntranceID
|
||||
;--------------------------------------------------------------------------------
|
||||
StoreLastEntranceID:
|
||||
CPX #$003a : BCC .noStore
|
||||
TXA : SBC #$3a
|
||||
BRA .done
|
||||
.noStore
|
||||
LDA #$00
|
||||
.done
|
||||
STA $7F5099
|
||||
LDA $1BBB73, X : STA $010E
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; CacheDoorFrameData
|
||||
;--------------------------------------------------------------------------------
|
||||
CacheDoorFrameData:
|
||||
LDA $7F5099 : BEQ .originalBehaviour
|
||||
DEC : ASL : TAX
|
||||
LDA EntranceDoorFrameTable, X : STA $0696
|
||||
BRA .done
|
||||
.originalBehaviour
|
||||
LDA $D724, X : STA $0696
|
||||
.done
|
||||
STZ $0698
|
||||
LDA #$00
|
||||
STA $7F5099
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
; WalkDownIntoTavern
|
||||
;--------------------------------------------------------------------------------
|
||||
WalkDownIntoTavern:
|
||||
LDA $7F5099
|
||||
CMP #$08
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
21
hooks.asm
21
hooks.asm
@@ -1745,3 +1745,24 @@ JSL.l LampCheck
|
||||
org $01F503 ; <- F503 - Bank01.asm:14994 (LDA.b #$01 : STA $1D)
|
||||
JSL.l SetOverlayIfLamp
|
||||
;================================================================================
|
||||
|
||||
;================================================================================
|
||||
; Overworld Door Frame Overlay Fix
|
||||
;
|
||||
; When entering an overworld entrance, if it is an entrance to a simple cave, we
|
||||
; store the entrance id, then use that (instead of the cave id) to determine the
|
||||
; overlay to draw when leaving the cave again. We also use this value to
|
||||
; identify the tavern entrance to determine whether link should walk up or down.
|
||||
;--------------------------------------------------------------------------------
|
||||
org $1BBD5F ; <- Bank1b.asm:296 (LDA $1BBB73, X : STA $010E)
|
||||
JSL.l StoreLastEntranceID
|
||||
NOP #3
|
||||
;--------------------------------------------------------------------------------
|
||||
org $02D754 ; <- Bank02.asm:10847 (LDA $D724, X : STA $0696 : STZ $0698)
|
||||
JSL.l CacheDoorFrameData
|
||||
NOP #5
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0298AD ; <- Bank02.asm:4495 (LDA $010E : CMP.b #$43)
|
||||
JSL.l WalkDownIntoTavern
|
||||
NOP #1
|
||||
;================================================================================
|
||||
13
tables.asm
13
tables.asm
@@ -1135,6 +1135,7 @@ dw #9999 ; Rupee Limit
|
||||
; $7F5096 - Dialog Offset Pointer Return (Low)
|
||||
; $7F5097 - Dialog Offset Pointer Return (High)
|
||||
; $7F5098 - Water Entry Index
|
||||
; $7F5099 - Last Entered Entrance
|
||||
; $7F50D0 - $7F50FF - Block Cypher Parameters
|
||||
; $7F5100 - $7F51FF - Block Cypher Buffer
|
||||
; $7F5200 - $7F52FF - RNG Pointer Block
|
||||
@@ -1163,3 +1164,15 @@ db $83, $21, $EB, $6E, $0A, $71, $B0, $11, $85, $C7, $A1, $FD, $E5, $16, $48, $F
|
||||
db $F2, $23, $2F, $28, $9B, $AA, $AB, $D0, $6A, $9D, $C6, $2D, $00, $FE, $E1, $3F
|
||||
db $A0, $4A, $B8, $4E, $74, $1F, $8E, $A9, $F5, $CD, $60, $91, $DB, $D8, $52, $E2
|
||||
;================================================================================
|
||||
org $30A100 ; PC 0x182100
|
||||
EntranceDoorFrameTable:
|
||||
dw $0000, $0000, $0DE8, $0B98, $14CE, $0000, $1C50, $FFFF
|
||||
dw $1466, $0000, $1AB6, $0B98, $1AB6, $040E, $9C0C, $1530
|
||||
dw $0A98, $0000, $0000, $0000, $0000, $0000, $0000, $0816
|
||||
dw $0DE8, $0000, $0000, $0000, $0000, $09AC, $0000, $0000
|
||||
dw $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000
|
||||
dw $041A, $0000, $091E, $09AC, $0000, $0000, $0000, $0000
|
||||
dw $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000
|
||||
dw $0000, $0AA8, $07AA, $0000, $0000, $0000, $0000, $0000
|
||||
dw $0000, $0000, $0000, $0000, $0000, $0000
|
||||
;===============================================================================
|
||||
Reference in New Issue
Block a user