Improved door landing

Improved door landing
This commit is contained in:
codemann8
2023-01-30 10:34:48 -06:00
parent 296c311b0a
commit aaff8a1975
5 changed files with 41 additions and 12 deletions

View File

@@ -519,6 +519,9 @@ Dungeon_SaveRoomData_justKeys:
org $02B861 org $02B861
Dungeon_SaveRoomQuadrantData: Dungeon_SaveRoomQuadrantData:
org $02C11D
CalculateTransitionLanding:
org $02D9B9 org $02D9B9
Underworld_LoadSpawnEntrance: Underworld_LoadSpawnEntrance:
@@ -657,6 +660,9 @@ OverworldMap_DarkWorldTilemap:
org $0ABAB9 org $0ABAB9
OverworldMap_LoadSprGfx: OverworldMap_LoadSprGfx:
org $8AE817
DungeonMapBossRooms:
org $0CD7D1 org $0CD7D1
NameFile_MakeScreenVisible: NameFile_MakeScreenVisible:
org $0CDB3E org $0CDB3E

View File

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

View File

@@ -324,7 +324,7 @@ GetTileAttribute:
{ {
phk : pea.w .jslrtsreturn-1 phk : pea.w .jslrtsreturn-1
pea.w $02802c 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 .jslrtsreturn
rts rts
} }
@@ -417,3 +417,27 @@ InroomStairsTrapDoor:
jsl StraightStairsTrapDoor_reset jsl StraightStairsTrapDoor_reset
jml $028b15 ; just some RTS in bank 02 jml $028b15 ; just some RTS in bank 02
} }
HandleSpecialDoorLanding: {
LDA.l $7F2000,X ; what we wrote over
SEP #$30
JSL HandleIncomingDoorState
CMP #$34 : bne + ; inroom stairs
PHA : LDA #$26 : STA $045E : PLA
+
}
; A = tiletype
HandleIncomingDoorState:
{
PHA
LDA.l DRMode : BEQ .noDoor
PLA : PHA : AND.b #$FA : CMP.b #$80 : bne .noDoor
.setDoorState
LDA.w $0418 : AND.b #$02 : BNE + : INC
+ STA.b $6C
.noDoor
PLA : RTL
}

View File

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

View File

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