Add Crumble Floor Room Tag, include in dungeons.asm

This commit is contained in:
scawful
2024-12-10 19:03:43 -05:00
parent 69554a4c9b
commit 5368f498ea
3 changed files with 44 additions and 134 deletions

View File

@@ -1,7 +1,9 @@
org $01CC04 ; holes_1 tag routine ; Crumble Floor Room Tag
pushpc
org $01CC08 ; holes_3 tag routine
JSL CrumbleFloorTag_Main JSL CrumbleFloorTag_Main
RTS RTS
pullpc pullpc
; check under link feet what tile he is standing on ; check under link feet what tile he is standing on
@@ -15,10 +17,9 @@ CrumbleFloorTag_Main:
LDA.b $22 : CLC : ADC #$08 : AND.b #$F0 LDA.b $22 : CLC : ADC #$08 : AND.b #$F0
STA.w $0225 ; x STA.w $0225 ; x
LDA.w $0224 : CMP.w $0226 : BNE .differentTile LDA.w $0224 : CMP.w $0226 : BNE .differentTile
LDA.w $0225 : CMP.w $0227 : BNE .differentTile LDA.w $0225 : CMP.w $0227 : BNE .differentTile
JMP .sameTile JMP .sameTile
.differentTile .differentTile
; do code here for tile code ; do code here for tile code
@@ -30,13 +31,13 @@ CrumbleFloorTag_Main:
TAX TAX
LDA.l $7E2000, X : CMP.w #$0CCC : BNE + LDA.l $7E2000, X : CMP.w #$0CCC : BNE +
JSR update_pit_tile JSR update_pit_tile
SEP #$30 SEP #$30
JSR spawnFallingTile JSR SpawnFallingTile
BRA .doneupdate BRA .doneupdate
+ +
LDA.l $7E2000, X : CMP.w #$0C62 : BNE + LDA.l $7E2000, X : CMP.w #$0C62 : BNE +
JSR update_crack_tile JSR update_crack_tile
+ +
.doneupdate .doneupdate
SEP #$30 SEP #$30
@@ -52,38 +53,33 @@ CrumbleFloorTag_Main:
} }
spawnFallingTile: SpawnFallingTile:
{ {
LDX.b #$1D LDX.b #$1D
.next .next
LDA.l $7FF800,X LDA.l $7FF800, X : BNE .skip
BNE .skip
LDA.b #$03 ; GARNISH 03 LDA.b #$03 ; GARNISH 03
STA.l $7FF800,X STA.l $7FF800, X
LDA.w $022A LDA.w $022A : STA.l $7FF83C, X
STA.l $7FF83C, X LDA.w $022B : STA.l $7FF878, X
LDA.w $022B LDA.w $0228
STA.l $7FF878,X CLC
ADC.b #$10
STA.l $7FF81E, X
LDA.w $0228 LDA.w $0229
CLC ADC.b #$00
ADC.b #$10 STA.l $7FF85A, X
STA.l $7FF81E,X
LDA.w $0229 LDA.b #$1F : STA.l $7FF90E, X
ADC.b #$00
STA.l $7FF85A,X
LDA.b #$1F STA.w $0FB4
STA.l $7FF90E,X
STA.w $0FB4 BRA .exit
BRA .exit
.skip .skip
DEX DEX
@@ -93,18 +89,13 @@ spawnFallingTile:
RTS RTS
} }
update_crack_tile: update_crack_tile:
{ {
STZ.b $0E STZ.b $0E
REP #$30 REP #$30
JSR replace_crack_pit JSR replace_crack_pit
SEP #$30 SEP #$30
LDA.b #$01 : STA.b $14
LDA.b #$01
STA.b $14
REP #$30 REP #$30
RTS RTS
} }
@@ -113,13 +104,9 @@ update_pit_tile:
{ {
STZ.b $0E STZ.b $0E
REP #$30 REP #$30
JSR replace_tile_pit JSR replace_tile_pit
SEP #$30 SEP #$30
LDA.b #$01 : STA.b $14
LDA.b #$01
STA.b $14
REP #$30 REP #$30
RTS RTS
} }
@@ -128,32 +115,22 @@ replace_crack_pit:
{ {
LDX.w $1000 LDX.w $1000
LDA.w #$0CCC LDA.w #$0CCC : STA.w $1006,X
STA.w $1006,X
LDA.w #$0CDC LDA.w #$0CDC : STA.w $100C,X
STA.w $100C,X
LDA.w #$0CCD LDA.w #$0CCD : STA.w $1012,X
STA.w $1012,X
LDA.w #$0CDD LDA.w #$0CDD : STA.w $1018,X
STA.w $1018,X
LDX.b $06 LDX.b $06
LDA.w #$0CCC LDA.w #$0CCC : STA.l $7E2000, X
STA.l $7E2000, X LDA.w #$0CDC : STA.l $7E2080, X
LDA.w #$0CDC LDA.w #$0CCD : STA.l $7E2002, X
STA.l $7E2080, X LDA.w #$0CDD : STA.l $7E2082, X
LDA.w #$0CCD
STA.l $7E2002, X
LDA.w #$0CDD
STA.l $7E2082, X
LDA.w #$01E9 LDA.w #$01E9 : AND.w #$03FF : TAX
AND.w #$03FF
TAX
LDA.l $7EFE00,X LDA.l $7EFE00,X
AND.w #$00FF AND.w #$00FF
@@ -201,74 +178,3 @@ replace_tile_pit:
JMP replace_tile_continue JMP replace_tile_continue
} }
replace_tile_continue:
{
LDX.w $1000
LDA.w #$0000
JSR draw_one_corner
STA.w $1002,X
LDA.w #$0080
JSR draw_one_corner
STA.w $1008,X
LDA.w #$0002
JSR draw_one_corner
STA.w $100E,X
LDA.w #$0082
JSR draw_one_corner
STA.w $1014,X
LDA.w #$0100
STA.w $1004,X
STA.w $100A,X
STA.w $1010,X
STA.w $1016,X
LDA.w #$FFFF
STA.w $101A,X
TXA
CLC
ADC.w #$0018
STA.w $1000
RTS
}
; ---------------------------------------------------------
draw_one_corner:
{
CLC
ADC.b $06
STA.b $0E
AND.w #$0040
LSR A
LSR A
LSR A
LSR A
XBA
STA.b $08
LDA.b $0E
AND.w #$303F
LSR A
ORA.b $08
STA.b $08
LDA.b $0E
AND.w #$0F80
LSR A
LSR A
ORA.b $08
XBA
RTS
}

View File

@@ -45,6 +45,12 @@ incsrc "Dungeons/custom_tag.asm"
; Tag: Holes0 ; Tag: Holes0
incsrc "Dungeons/floor_puzzle.asm" incsrc "Dungeons/floor_puzzle.asm"
print "End of floor_puzzle.asm ", pc
; Crumble Floor Tag: Holes3
incsrc "Dungeons/crumblefloor_tag.asm"
pushpc
incsrc "Dungeons/spike_subtype.asm" incsrc "Dungeons/spike_subtype.asm"

View File

@@ -330,5 +330,3 @@ SearchToRedStar:
BRA -- BRA --
} }
print "End of floor_puzzle.asm ", pc
pushpc