Add Crumble Floor Room Tag, include in dungeons.asm
This commit is contained in:
@@ -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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -330,5 +330,3 @@ SearchToRedStar:
|
|||||||
BRA --
|
BRA --
|
||||||
}
|
}
|
||||||
|
|
||||||
print "End of floor_puzzle.asm ", pc
|
|
||||||
pushpc
|
|
||||||
Reference in New Issue
Block a user