cleanup magic bubble code
This commit is contained in:
@@ -41,7 +41,7 @@ LinkItem_DekuMask:
|
|||||||
JSR Link_CheckNewY_ButtonPress : BCC .continue
|
JSR Link_CheckNewY_ButtonPress : BCC .continue
|
||||||
LDX.b #$01
|
LDX.b #$01
|
||||||
JSR LinkItem_EvaluateMagicCost : BCC .return
|
JSR LinkItem_EvaluateMagicCost : BCC .return
|
||||||
JSL PrepareQuakeSpell
|
JSL DekuLink_ShootBubbleOrStartHover
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.continue
|
.continue
|
||||||
|
|||||||
@@ -346,28 +346,6 @@ org $0DA3FD
|
|||||||
JML DekuLink_SpinOrRecoil
|
JML DekuLink_SpinOrRecoil
|
||||||
pullpc
|
pullpc
|
||||||
|
|
||||||
PrepareMagicBubble:
|
|
||||||
{
|
|
||||||
#_07A049: LDA.b LinkY
|
|
||||||
#_07A04B: STA.b $72
|
|
||||||
|
|
||||||
#_07A04D: LDA.b LinkYH
|
|
||||||
#_07A04F: STA.b $73
|
|
||||||
|
|
||||||
#_07A051: LDA.b LinkX
|
|
||||||
#_07A053: STA.b $74
|
|
||||||
|
|
||||||
#_07A055: LDA.b LinkXH
|
|
||||||
#_07A057: STA.b $75
|
|
||||||
|
|
||||||
#_07A059: LDX.b LinkFaceDir
|
|
||||||
|
|
||||||
#_07A05B: LDY.b #$02
|
|
||||||
#_07A05D: LDA.b #$09 ; ANCILLA 09
|
|
||||||
#_07A05F: JSL $0990A4 ; AncillaAdd_Arrow
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
|
|
||||||
; Based on LinkItem_Quake.allow_quake
|
; Based on LinkItem_Quake.allow_quake
|
||||||
PrepareQuakeSpell:
|
PrepareQuakeSpell:
|
||||||
{
|
{
|
||||||
@@ -930,24 +908,16 @@ Ancilla_BoundsCheck:
|
|||||||
|
|
||||||
AncillaAdd_MagicBubbleShot:
|
AncillaAdd_MagicBubbleShot:
|
||||||
{
|
{
|
||||||
LDY.b #$01
|
LDY.b #$00
|
||||||
|
|
||||||
STA.b $00
|
STA.b $00
|
||||||
|
|
||||||
JSL Ancilla_CheckForAvailableSlot
|
JSL Ancilla_CheckForAvailableSlot : BPL .free_slot
|
||||||
BPL .free_slot
|
LDA.b $00 : CMP.b #$01 : BEQ .no_refund_magic
|
||||||
|
|
||||||
LDA.b $00
|
|
||||||
CMP.b #$01
|
|
||||||
BEQ .no_refund_magic
|
|
||||||
|
|
||||||
LDX.b #$00
|
LDX.b #$00
|
||||||
JSL Refund_Magic
|
JSL Refund_Magic
|
||||||
|
|
||||||
.no_refund_magic
|
.no_refund_magic
|
||||||
BRL .exit_a
|
BRL .exit_a
|
||||||
|
|
||||||
|
|
||||||
.free_slot
|
.free_slot
|
||||||
PHB
|
PHB
|
||||||
PHK
|
PHK
|
||||||
@@ -955,41 +925,22 @@ AncillaAdd_MagicBubbleShot:
|
|||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
LDA.b $00
|
LDA.b $00 : CMP.b #$01 : BEQ .no_sfx
|
||||||
CMP.b #$01
|
|
||||||
BEQ .no_sfx
|
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
LDA.b #$0E ; SFX2.0E
|
LDA.b #$0E ; SFX2.0E
|
||||||
JSR Ancilla_SFX2_Near
|
JSR Ancilla_SFX2_Near
|
||||||
|
|
||||||
PLY
|
PLY
|
||||||
|
|
||||||
|
|
||||||
.no_sfx
|
.no_sfx
|
||||||
LDA.b $00
|
LDA.b $00 : STA.w AnciType,Y
|
||||||
STA.w AnciType,Y
|
|
||||||
|
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
LDA.w AncillaObjectAllocation,X
|
; LDA.w AncillaObjectAllocation, X : STA.w AnciOAMNbr,Y
|
||||||
STA.w AnciOAMNbr,Y
|
LDA.b #$0C : STA.w AnciOAMNbr,Y
|
||||||
|
LDA.b #$03 : STA.w AnciTimerA,Y
|
||||||
LDA.b #$03
|
LDA.b #$00 : STA.w AnciMiscB,Y : STA.w $0C5E,Y
|
||||||
STA.w AnciTimerA,Y
|
STA.w $0280,Y : STA.w $028A,Y
|
||||||
|
LDA.b $2F : LSR A : STA.w $0C72,Y
|
||||||
LDA.b #$00
|
|
||||||
STA.w AnciMiscB,Y
|
|
||||||
STA.w $0C5E,Y
|
|
||||||
|
|
||||||
STA.w $0280,Y
|
|
||||||
STA.w $028A,Y
|
|
||||||
|
|
||||||
LDA.b $2F
|
|
||||||
LSR A
|
|
||||||
STA.w $0C72,Y
|
|
||||||
|
|
||||||
|
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
@@ -1005,14 +956,9 @@ AncillaAdd_MagicBubbleShot:
|
|||||||
BCS .disperse_on_spawn
|
BCS .disperse_on_spawn
|
||||||
|
|
||||||
|
|
||||||
LDA.w $0022
|
LDA.w $0022 : CLC : ADC.w .init_check_offset_x_low,X : STA.w $0C04,Y
|
||||||
CLC
|
|
||||||
ADC.w .init_check_offset_x_low,X
|
|
||||||
STA.w $0C04,Y
|
|
||||||
|
|
||||||
LDA.w $0023
|
LDA.w $0023 : ADC.w .init_check_offset_x_high,X : STA.w $0C18,Y
|
||||||
ADC.w .init_check_offset_x_high,X
|
|
||||||
STA.w $0C18,Y
|
|
||||||
|
|
||||||
LDA.w $0020
|
LDA.w $0020
|
||||||
CLC
|
CLC
|
||||||
@@ -1024,12 +970,10 @@ AncillaAdd_MagicBubbleShot:
|
|||||||
STA.w $0C0E,Y
|
STA.w $0C0E,Y
|
||||||
|
|
||||||
|
|
||||||
LDA.w AnciType,Y
|
LDA.w AnciType,Y : CMP.b #$01 ; ANCILLA 01
|
||||||
CMP.b #$01 ; ANCILLA 01
|
|
||||||
BEQ .is_somaria_bullet
|
BEQ .is_somaria_bullet
|
||||||
|
|
||||||
LDA.w .flame_speed_x,X
|
LDA.w .flame_speed_x,X : STA.w AnciYSpeed,Y
|
||||||
STA.w AnciYSpeed,Y
|
|
||||||
|
|
||||||
LDA.w .flame_speed_y,X
|
LDA.w .flame_speed_y,X
|
||||||
|
|
||||||
@@ -1060,11 +1004,8 @@ AncillaAdd_MagicBubbleShot:
|
|||||||
.speed_set
|
.speed_set
|
||||||
STA.w AnciXSpeed,Y
|
STA.w AnciXSpeed,Y
|
||||||
|
|
||||||
LDA.w $00EE
|
LDA.w $00EE : STA.w AnciLayer,Y
|
||||||
STA.w AnciLayer,Y
|
LDA.w $0476 : STA.w AnciMiscJ,Y
|
||||||
|
|
||||||
LDA.w $0476
|
|
||||||
STA.w AnciMiscJ,Y
|
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
PLB
|
PLB
|
||||||
@@ -1073,18 +1014,14 @@ AncillaAdd_MagicBubbleShot:
|
|||||||
RTL
|
RTL
|
||||||
|
|
||||||
.disperse_on_spawn
|
.disperse_on_spawn
|
||||||
LDA.w AnciType,Y
|
; ANCILLA 01
|
||||||
CMP.b #$01 ; ANCILLA 01
|
LDA.w AnciType,Y : CMP.b #$01 : BNE .not_bullet
|
||||||
BNE .not_bullet
|
|
||||||
|
|
||||||
LDA.b #$04 ; ANCILLA 04
|
LDA.b #$04 ; ANCILLA 04
|
||||||
STA.w AnciType,Y
|
STA.w AnciType,Y
|
||||||
|
|
||||||
LDA.b #$07
|
LDA.b #$07 : STA.w AnciTimerA,Y
|
||||||
STA.w AnciTimerA,Y
|
LDA.b #$10 : STA.w AnciOAMNbr,Y
|
||||||
|
|
||||||
LDA.b #$10
|
|
||||||
STA.w AnciOAMNbr,Y
|
|
||||||
|
|
||||||
BRA .exit_b
|
BRA .exit_b
|
||||||
|
|
||||||
@@ -1127,6 +1064,8 @@ AncillaAdd_MagicBubbleShot:
|
|||||||
db -64, 64, 0
|
db -64, 64, 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; =========================================================
|
||||||
|
|
||||||
Ancilla0E_MagicBubbleLong:
|
Ancilla0E_MagicBubbleLong:
|
||||||
{
|
{
|
||||||
PHP : PHK : PLB
|
PHP : PHK : PLB
|
||||||
@@ -1142,9 +1081,7 @@ Ancilla_MagicBubbleShot:
|
|||||||
|
|
||||||
JMP.w MagicBubbleShot_Halted
|
JMP.w MagicBubbleShot_Halted
|
||||||
|
|
||||||
; =========================================================
|
#MagicBubbleShot_Moving:
|
||||||
|
|
||||||
#MagicBubbleShot_Moving:
|
|
||||||
LDA.b $11
|
LDA.b $11
|
||||||
BNE .draw
|
BNE .draw
|
||||||
|
|
||||||
@@ -1158,31 +1095,23 @@ Ancilla_MagicBubbleShot:
|
|||||||
|
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
|
|
||||||
LDA.w $0C72,X
|
LDA.w $0C72,X : ORA.b #$08 : STA.w $0C72,X
|
||||||
ORA.b #$08
|
|
||||||
STA.w $0C72,X
|
|
||||||
|
|
||||||
JSL Ancilla_CheckTileCollision_long
|
JSL Ancilla_CheckTileCollision_long
|
||||||
PHP
|
PHP
|
||||||
|
|
||||||
LDA.w $03E4,X
|
LDA.w $03E4,X : STA.w $0385,X
|
||||||
STA.w $0385,X
|
|
||||||
|
|
||||||
PLP
|
PLP
|
||||||
BCS .collision
|
BCS .collision
|
||||||
|
|
||||||
LDA.w $0C72,X
|
LDA.w $0C72,X : ORA.b #$0C : STA.w $0C72,X
|
||||||
ORA.b #$0C
|
LDA.w $028A,X : STA.b $74
|
||||||
STA.w $0C72,X
|
|
||||||
|
|
||||||
LDA.w $028A,X
|
|
||||||
STA.b $74
|
|
||||||
|
|
||||||
JSL Ancilla_CheckTileCollision_long
|
JSL Ancilla_CheckTileCollision_long
|
||||||
PHP
|
PHP
|
||||||
|
|
||||||
LDA.b $74
|
LDA.b $74 : STA.w $028A,X
|
||||||
STA.w $028A,X
|
|
||||||
|
|
||||||
PLP
|
PLP
|
||||||
BCC .no_collision
|
BCC .no_collision
|
||||||
@@ -1190,11 +1119,8 @@ Ancilla_MagicBubbleShot:
|
|||||||
.collision
|
.collision
|
||||||
INC.w $0C54,X
|
INC.w $0C54,X
|
||||||
|
|
||||||
LDA.b #$1F
|
LDA.b #$1F : STA.w $0C68,X
|
||||||
STA.w $0C68,X
|
LDA.b #$08 : STA.w $0C90,X
|
||||||
|
|
||||||
LDA.b #$08
|
|
||||||
STA.w $0C90,X
|
|
||||||
|
|
||||||
LDA.b #$2A ; SFX2.2A
|
LDA.b #$2A ; SFX2.2A
|
||||||
JSR Ancilla_SFX2_Pan
|
JSR Ancilla_SFX2_Pan
|
||||||
@@ -1204,23 +1130,11 @@ Ancilla_MagicBubbleShot:
|
|||||||
.no_collision
|
.no_collision
|
||||||
INC.w $0C5E,X
|
INC.w $0C5E,X
|
||||||
|
|
||||||
LDA.w $0C72,X
|
LDA.w $0C72,X : AND.b #$F3 : STA.w $0C72,X
|
||||||
AND.b #$F3
|
LDA.w $0385,X : STA.w $0333
|
||||||
STA.w $0C72,X
|
AND.b #$F0 : CMP.b #$C0 : BEQ .torch
|
||||||
|
LDA.w $03E4,X : STA.w $0333
|
||||||
LDA.w $0385,X
|
AND.b #$F0 : CMP.b #$C0 : BNE .draw
|
||||||
STA.w $0333
|
|
||||||
|
|
||||||
AND.b #$F0
|
|
||||||
CMP.b #$C0
|
|
||||||
BEQ .torch
|
|
||||||
|
|
||||||
LDA.w $03E4,X
|
|
||||||
STA.w $0333
|
|
||||||
|
|
||||||
AND.b #$F0
|
|
||||||
CMP.b #$C0
|
|
||||||
BNE .draw
|
|
||||||
|
|
||||||
.torch
|
.torch
|
||||||
; PHX
|
; PHX
|
||||||
@@ -1246,9 +1160,7 @@ AncillaDraw_MagicBubbleShot:
|
|||||||
LDA.b #$30
|
LDA.b #$30
|
||||||
TSB.b $04
|
TSB.b $04
|
||||||
.default_priority
|
.default_priority
|
||||||
LDA.w $0C5E,X
|
LDA.w $0C5E, X : AND.b #$0C : STA.b $02
|
||||||
AND.b #$0C
|
|
||||||
STA.b $02
|
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
|
|
||||||
@@ -1262,27 +1174,15 @@ AncillaDraw_MagicBubbleShot:
|
|||||||
ORA.b $02
|
ORA.b $02
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
LDA.b $00
|
LDA.b $00 : CLC : ADC.w .offset_x, X : STA.b ($90), Y
|
||||||
CLC
|
|
||||||
ADC.w .offset_x,X
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDA.b $01
|
LDA.b $01 : CLC : ADC.w .offset_y, X : INY : STA.b ($90), Y
|
||||||
CLC
|
|
||||||
ADC.w .offset_y,X
|
|
||||||
INY
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDX.b $03
|
LDX.b $03
|
||||||
|
LDA.w .char, X : INY : STA.b ($90), Y
|
||||||
|
|
||||||
LDA.w .char,X
|
; Palette
|
||||||
INY
|
LDA.b $04 : ORA.b #$0A : INY : STA.b ($90), Y
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDA.b $04
|
|
||||||
ORA.b #$02
|
|
||||||
INY
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
@@ -1291,8 +1191,7 @@ AncillaDraw_MagicBubbleShot:
|
|||||||
LSR A
|
LSR A
|
||||||
TAY
|
TAY
|
||||||
|
|
||||||
LDA.b #$00
|
LDA.b #$00 : STA.b ($92),Y
|
||||||
STA.b ($92),Y
|
|
||||||
|
|
||||||
PLY
|
PLY
|
||||||
INY
|
INY
|
||||||
@@ -1304,19 +1203,19 @@ AncillaDraw_MagicBubbleShot:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.offset_x
|
.offset_x
|
||||||
db 7, 0, 8, 0
|
db 7, 0, 8, 0
|
||||||
db 8, 4, 0, 0
|
db 8, 4, 0, 0
|
||||||
db 2, 8, 0, 0
|
db 2, 8, 0, 0
|
||||||
db 1, 4, 9, 0
|
db 1, 4, 9, 0
|
||||||
|
|
||||||
.offset_y
|
.offset_y
|
||||||
db 1, 4, 9, 0
|
db 1, 4, 9, 0
|
||||||
db 7, 0, 8, 0
|
db 7, 0, 8, 0
|
||||||
db 8, 4, 0, 0
|
db 8, 4, 0, 0
|
||||||
db 2, 8, 0, 0
|
db 2, 8, 0, 0
|
||||||
|
|
||||||
.char
|
.char
|
||||||
db $8D, $9D, $9C
|
db $8D, $9D, $9C
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1338,23 +1237,15 @@ MagicBubbleShot_Dissipate:
|
|||||||
|
|
||||||
STZ.w $0C4A,X
|
STZ.w $0C4A,X
|
||||||
|
|
||||||
CMP.b #$2F ; ANCILLA 2F
|
; ANCILLA 2F
|
||||||
BEQ .no_burn
|
CMP.b #$2F : BEQ .no_burn
|
||||||
|
; OW 40
|
||||||
LDA.b $8A
|
LDA.b $8A : CMP.b #$40 : BNE .no_burn
|
||||||
CMP.b #$40 ; OW 40
|
; TILETYPE 43
|
||||||
BNE .no_burn
|
LDA.w $03E4,X : CMP.b #$43 : BNE .no_burn
|
||||||
|
|
||||||
LDA.w $03E4,X
|
|
||||||
CMP.b #$43 ; TILETYPE 43
|
|
||||||
BNE .no_burn
|
|
||||||
|
|
||||||
; PHX
|
; PHX
|
||||||
|
|
||||||
; JSL FireRodShot_BecomeSkullWoodsFire
|
; JSL FireRodShot_BecomeSkullWoodsFire
|
||||||
|
|
||||||
; PLX
|
; PLX
|
||||||
|
|
||||||
.no_burn
|
.no_burn
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -1396,13 +1287,9 @@ MagicBubbleShot_Halted:
|
|||||||
INY
|
INY
|
||||||
STA.b ($90),Y
|
STA.b ($90),Y
|
||||||
|
|
||||||
LDA.b #$02
|
LDA.b #$0A : ORA.b $04 : INY : STA.b ($90),Y
|
||||||
ORA.b $04
|
|
||||||
INY
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDA.b #$02
|
LDA.b #$02 : STA.b ($92)
|
||||||
STA.b ($92)
|
|
||||||
|
|
||||||
BRL Ancilla_RestoreIndex
|
BRL Ancilla_RestoreIndex
|
||||||
|
|
||||||
@@ -1415,35 +1302,25 @@ MagicBubbleShot_Halted:
|
|||||||
|
|
||||||
DEY
|
DEY
|
||||||
|
|
||||||
LDA.b $00
|
LDA.b $00 : STA.b ($90),Y
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
CLC
|
CLC
|
||||||
ADC.b #$08
|
ADC.b #$08
|
||||||
LDY.b #$04
|
LDY.b #$04 : STA.b ($90),Y
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDA.b $01
|
LDA.b $01 : CLC : ADC.b #$FD
|
||||||
CLC
|
LDY.b #$01 : STA.b ($90),Y
|
||||||
ADC.b #$FD
|
|
||||||
LDY.b #$01
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDY.b #$05
|
LDY.b #$05 : STA.b ($90),Y
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDA.b #$A4
|
LDA.b #$A4 : LDY.b #$02 : STA.b ($90),Y
|
||||||
LDY.b #$02
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
INC A
|
INC A
|
||||||
LDY.b #$06
|
LDY.b #$06
|
||||||
STA.b ($90),Y
|
STA.b ($90),Y
|
||||||
|
|
||||||
LDA.b #$02
|
; Palette
|
||||||
ORA.b $04
|
LDA.b #$0A : ORA.b $04 : LDY.b #$03 : STA.b ($90),Y
|
||||||
LDY.b #$03
|
|
||||||
STA.b ($90),Y
|
|
||||||
|
|
||||||
LDY.b #$07
|
LDY.b #$07
|
||||||
STA.b ($90),Y
|
STA.b ($90),Y
|
||||||
|
|||||||
Reference in New Issue
Block a user