Add minecart track objects, housekeeping
This commit is contained in:
88
Dungeons/Objects/object_handler.asm
Normal file
88
Dungeons/Objects/object_handler.asm
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
; Dungeon Object Handler
|
||||||
|
|
||||||
|
org $018262 ;object id 0x31
|
||||||
|
dw ExpandedObject
|
||||||
|
|
||||||
|
|
||||||
|
org $01B53C
|
||||||
|
ExpandedObject:
|
||||||
|
JSL NewObjectsCode
|
||||||
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
org $2C8000
|
||||||
|
NewObjectsCode:
|
||||||
|
{
|
||||||
|
PHB : PHK : PLB
|
||||||
|
PHX
|
||||||
|
LDA $00 : PHA
|
||||||
|
LDA $02 : PHA
|
||||||
|
; $00 Will be used for tile count and tile to skip
|
||||||
|
LDA $B2 : ASL #2 : ORA $B4
|
||||||
|
|
||||||
|
;get the offset for the object data based on the object height
|
||||||
|
ASL : TAX
|
||||||
|
LDA .ObjOffset, X
|
||||||
|
TAX
|
||||||
|
|
||||||
|
.lineLoop
|
||||||
|
LDA .ObjData, X : BNE .continue
|
||||||
|
;break
|
||||||
|
BRA .Done
|
||||||
|
.continue
|
||||||
|
PHY ; Keep current position in the buffer
|
||||||
|
|
||||||
|
STA $00 ; we save the tile count + tile to skip
|
||||||
|
|
||||||
|
-- ;Tiles Loop
|
||||||
|
INX : INX
|
||||||
|
|
||||||
|
LDA .ObjData, X : BEQ +
|
||||||
|
STA [$BF], Y
|
||||||
|
+
|
||||||
|
|
||||||
|
INY : INY
|
||||||
|
LDA $00 : DEC : STA $00 : AND #$001F : BNE +
|
||||||
|
LDA $00 : XBA : AND #$00FF : STA $00
|
||||||
|
PLA ;Pull back position
|
||||||
|
CLC : ADC $00 : TAY
|
||||||
|
INX : INX
|
||||||
|
BRA .lineLoop
|
||||||
|
+
|
||||||
|
|
||||||
|
BRA --
|
||||||
|
|
||||||
|
.Done
|
||||||
|
|
||||||
|
PLA : STA $02
|
||||||
|
PLA : STA $00 ;Not sure if needed
|
||||||
|
|
||||||
|
PLX
|
||||||
|
PLB
|
||||||
|
RTL
|
||||||
|
|
||||||
|
.ObjOffset
|
||||||
|
dw .LeftRight-.ObjData ; 00
|
||||||
|
dw .UpDown-.ObjData ; 01
|
||||||
|
dw .TopLeft-.ObjData ; 02
|
||||||
|
dw .TopRight-.ObjData ; 03
|
||||||
|
dw .Bottomleft-.ObjData ; 04
|
||||||
|
dw .BottomRight-.ObjData ; 05
|
||||||
|
|
||||||
|
.ObjData
|
||||||
|
.LeftRight
|
||||||
|
incbin track_LR.bin
|
||||||
|
.UpDown
|
||||||
|
incbin track_UD.bin
|
||||||
|
.TopLeft
|
||||||
|
incbin track_corner_TL.bin
|
||||||
|
.TopRight
|
||||||
|
incbin track_corner_TR.bin
|
||||||
|
.Bottomleft
|
||||||
|
incbin track_corner_BL.bin
|
||||||
|
.BottomRight
|
||||||
|
incbin track_corner_BR.bin
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pushpc
|
||||||
BIN
Dungeons/Objects/track_LR.bin
Normal file
BIN
Dungeons/Objects/track_LR.bin
Normal file
Binary file not shown.
BIN
Dungeons/Objects/track_UD.bin
Normal file
BIN
Dungeons/Objects/track_UD.bin
Normal file
Binary file not shown.
BIN
Dungeons/Objects/track_corner_BL.bin
Normal file
BIN
Dungeons/Objects/track_corner_BL.bin
Normal file
Binary file not shown.
BIN
Dungeons/Objects/track_corner_BR.bin
Normal file
BIN
Dungeons/Objects/track_corner_BR.bin
Normal file
Binary file not shown.
BIN
Dungeons/Objects/track_corner_TL.bin
Normal file
BIN
Dungeons/Objects/track_corner_TL.bin
Normal file
Binary file not shown.
BIN
Dungeons/Objects/track_corner_TR.bin
Normal file
BIN
Dungeons/Objects/track_corner_TR.bin
Normal file
Binary file not shown.
@@ -3,23 +3,30 @@
|
|||||||
|
|
||||||
; $DB8BF-$DB916 - chr types indicating door entrances
|
; $DB8BF-$DB916 - chr types indicating door entrances
|
||||||
org $1BB8BF
|
org $1BB8BF
|
||||||
dw $00FE, $00C5, $00FE, $0114, $0115, $0175, $0156, $00F5
|
ValidDoorTypes_low:
|
||||||
dw $00E2, $01EF, $0119, $00FE, $0172, $0177, $013F, $0172
|
dw $00FE, $00C5, $00FE, $0114 ; ???, House Door, ???, ???
|
||||||
dw $0112, $0161, $0172, $014C, $0156, $01EF, $00FE, $00FE
|
dw $0115, $0175, $0156, $00F5
|
||||||
dw $00FE, $010B, $0173, $0143, $0149, $0175, $0103, $0100
|
dw $00E2, $01EF, $0119, $00FE ; ???, ???, ???, Desert Door
|
||||||
dw $01C6 ; Waterfall tile
|
dw $0172, $0177, $013F, $0172
|
||||||
dw $015E
|
dw $0112, $0161, $0172, $014C ; ???, ???, Dam Door, ???
|
||||||
dw $0167
|
dw $0156, $01EF, $00FE, $00FE
|
||||||
dw $0128, $0131, $0112, $016D, $0163
|
dw $00FE, $010B, $0173, $0143 ; ???, ???, ???, Tower of Hera
|
||||||
dw $0173, $00FE, $0113, $00A7
|
dw $0149, $0175, $0103, $0100
|
||||||
|
dw $01C6, $015E, $0167, $0128
|
||||||
|
dw $0131, $0112, $016D, $0163
|
||||||
|
dw $0173, $00FE, $0113, $0177
|
||||||
|
|
||||||
; $DB917 - $DB96E
|
;---------------------------------------------------------------------------------------------------
|
||||||
dw $014A, $00C4, $014F, $0115, $0114, $0174, $0155, $00F5
|
|
||||||
dw $00EE, $01EB, $0118, $0146, $0171, $0155, $0137, $0174
|
ValidDoorTypes_high:
|
||||||
dw $0173, $0121, $0164, $0155, $0157, $0128, $0114, $0123
|
dw $014A, $00C4, $014F, $0115 ; ???, House Door, ???, ???
|
||||||
dw $0113, $0109, $0118, $0161, $0149, $0171, $0174, $0101
|
dw $0114, $0174, $0155, $00F5
|
||||||
dw $01C6 ; Waterfall tile
|
dw $00EE, $01EB, $0118, $0146 ; ???, ???, ???, Desert Door
|
||||||
dw $0131
|
dw $0171, $0155, $0137, $0174
|
||||||
dw $0051
|
dw $0173, $0121, $0164, $0155 ; ???, ???, Dam Door, ???
|
||||||
dw $014E, $0131, $0121, $017A, $0163
|
dw $0157, $0128, $0114, $0123
|
||||||
dw $0172, $01BD, $0152, $00A7
|
dw $0113, $0109, $0118, $0161
|
||||||
|
dw $0149, $0117, $0174, $0101
|
||||||
|
dw $01C6, $0131, $0051, $014E
|
||||||
|
dw $0131, $0112, $017A, $0163
|
||||||
|
dw $0172, $01BD, $0152, $0167
|
||||||
@@ -8,10 +8,6 @@
|
|||||||
;09,0A,0B,0C,0D,0E = Vertical with speed incrementing
|
;09,0A,0B,0C,0D,0E = Vertical with speed incrementing
|
||||||
;you can edit the ASM to make diagonal spikes too
|
;you can edit the ASM to make diagonal spikes too
|
||||||
;#ENDPATCH_DESCRIPTION
|
;#ENDPATCH_DESCRIPTION
|
||||||
lorom
|
|
||||||
|
|
||||||
org $288000 ; NEED TO MOVE
|
|
||||||
pushpc
|
|
||||||
|
|
||||||
org $0691D7 ; SpritePrep_SpikeBlock:
|
org $0691D7 ; SpritePrep_SpikeBlock:
|
||||||
JSL NewSpikePrep
|
JSL NewSpikePrep
|
||||||
@@ -48,4 +44,4 @@ LDA $0D40, X : EOR.b #$FF : INC A : STA $0D40, X
|
|||||||
|
|
||||||
LDA.b #$05 : JSL $0DBB7C ; Sound_SetSfx2PanLong
|
LDA.b #$05 : JSL $0DBB7C ; Sound_SetSfx2PanLong
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
@@ -43,5 +43,6 @@ WarpTag:
|
|||||||
PLX
|
PLX
|
||||||
JML WarpTag_Return
|
JML WarpTag_Return
|
||||||
}
|
}
|
||||||
|
pushpc
|
||||||
|
|
||||||
; ==============================================================================
|
; ==============================================================================
|
||||||
Reference in New Issue
Block a user