Improved door landing

This commit is contained in:
codemann8
2023-01-30 10:34:48 -06:00
parent bae7c6175c
commit 468fe5f2af
5 changed files with 44 additions and 12 deletions

View File

@@ -526,6 +526,9 @@ Overworld_ActualScreenID:
org $02B861
Dungeon_SaveRoomQuadrantData:
org $02C11D
CalculateTransitionLanding:
org $02C176
Overworld_FinalizeEntryOntoScreen_Data:
@@ -694,6 +697,9 @@ OverworldMap_DarkWorldTilemap:
org $0ABAB9
OverworldMap_LoadSprGfx:
org $8AE817
DungeonMapBossRooms:
org $0CD7D1
NameFile_MakeScreenVisible:
org $0CDB3E

View File

@@ -54,6 +54,13 @@ org $82941a ; <- Bank02.asm : 3748 module 7.12.11 (LDA $0464 : BNE BRANCH_$11513
jsl StraightStairsTrapDoor : rts
org $828b54 ; <- Bank02.asm : 2200 (JSL UseImplicitRegIndexedLocalJumpTable)
jsl InroomStairsTrapDoor
org $82c146
jsl HandleSpecialDoorLanding
org $82c23a
HandleIncomingDoorStateLocal:
jsl HandleIncomingDoorState : rts
org $82c172
jsr HandleIncomingDoorStateLocal
org $8289a0 ; JSL $0091C4
jsl QuadrantLoadOrderBeforeScroll

View File

@@ -296,6 +296,7 @@ StraightStairsAdj:
stz $046d
.noScroll
jsr GetTileAttribute : tax
jsl HandleIncomingDoorState
lda $11 : cmp #$12 : beq .goingNorth
lda $a2 : cmp #$51 : bne ++
rep #$20 : lda #$0018 : !add $20 : sta $20 : sep #$20 ; special fix for throne room
@@ -324,7 +325,7 @@ GetTileAttribute:
{
phk : pea.w .jslrtsreturn-1
pea.w $02802c
jml $02c11d ; mucks with x/y sets a to Tile Attribute, I think
jml CalculateTransitionLanding ; mucks with x/y sets a to Tile Attribute, I think
.jslrtsreturn
rts
}
@@ -416,4 +417,25 @@ InroomStairsTrapDoor:
pla : pla : pla
jsl StraightStairsTrapDoor_reset
jml $028b15 ; just some RTS in bank 02
}
HandleSpecialDoorLanding: {
LDA.l $7F2000,X ; what we wrote over
SEP #$30
CMP #$34 : bne + ; inroom stairs
PHA : LDA #$26 : STA $045E : PLA
+
}
; Y = tiletype, also written to $4E
HandleIncomingDoorState:
{
PHA
LDA.l DRMode : BEQ .noDoor
CPY.b #$01 : !bge .noDoor
LDA.w $0418 : AND.b #$02 : BNE + : INC
+ STA.b $6C
.noDoor
STY.b $4E : TYA ; what we wrote over
PLY : RTL
}

View File

@@ -207,19 +207,16 @@ InroomStairsWarp: {
.normal
lda $01 : sta $fe ; trap door
lda $07 : sta $03 : beq +
ldy $a0 : cpy #$51 : beq .specialFix ; throne room
cpy #$02 : beq .specialFix ; sewers pull switch
cpy #$71 : beq .specialFix ; castle armory
lda #$e0
bra ++
lda $01 : and #$04 : bne .specialFix
lda #$e0 : bra ++
.specialFix
lda #$c8
bra ++
lda #$c8 : bra ++
+
%StonewallCheck($43)
lda #$1b
++
sta $20
lda $01 : and #$04 : bne +
lda #$1b : bra ++
+ lda #$33
++ sta $20
inc $07 : stz $02 : lda #$78 : sta $22
lda $01 : and #$03 : beq ++
cmp #$02 : !bge +

View File

@@ -21,7 +21,7 @@ DoDungeonMapBossIcon:
; get dungeon boss room
++ REP #$30
LDA.l $8AE817,X
LDA.l DungeonMapBossRooms, X
ASL
TAX