fix bug with magic bubble ancillae slot alloc
This commit is contained in:
@@ -586,10 +586,10 @@ Ancilla_CheckBasicSpriteCollision:
|
||||
LDA.w $0280, X : BNE .skip
|
||||
|
||||
.sprite_ignores_priority
|
||||
LDA.w $0C7C,X : CMP.w $0F20,Y : BNE .skip
|
||||
LDA.w AnciLayer, X : CMP.w $0F20, Y : BNE .skip
|
||||
|
||||
; ANCILLA 2C
|
||||
LDA.w $0C4A,X : CMP.b #$2C : BNE .not_somaria_block
|
||||
LDA.w AnciType, X : CMP.b #$2C : BNE .not_somaria_block
|
||||
|
||||
; SPRITE 1E
|
||||
LDA.w $0E20, Y : CMP.b #$1E : BEQ .skip
|
||||
@@ -645,16 +645,16 @@ Ancilla_CheckBasicSpriteCollision_Single:
|
||||
.dont_reverse_fire_snake
|
||||
LDA.w $0BA0, Y : BNE .fail
|
||||
|
||||
LDA.w $0C04,X : SEC : SBC.b #$08 : STA.b $04
|
||||
LDA.w AnciX, X : SEC : SBC.b #$08 : STA.b $04
|
||||
|
||||
LDA.w $0C18,X : SBC.b #$00 : STA.b $05
|
||||
LDA.w AnciXH, X : SBC.b #$00 : STA.b $05
|
||||
|
||||
LDA.w $0BFA,X : SEC : SBC.b #$08
|
||||
LDA.w AnciY, X : SEC : SBC.b #$08
|
||||
PHP
|
||||
|
||||
SEC : SBC.w $029E,X : STA.b $06
|
||||
SEC : SBC.w AnciHeight, X : STA.b $06
|
||||
|
||||
LDA.w $0C0E,X : SBC.b #$00
|
||||
LDA.w AnciYH, X : SBC.b #$00
|
||||
|
||||
PLP
|
||||
SBC.b #$00
|
||||
@@ -676,7 +676,7 @@ Ancilla_CheckBasicSpriteCollision_Single:
|
||||
|
||||
PHX
|
||||
|
||||
LDA.w $0C4A,X
|
||||
LDA.w AnciType, X
|
||||
|
||||
TYX
|
||||
JSL Ancilla_CheckDamageToSprite
|
||||
@@ -699,14 +699,14 @@ Ancilla_CheckBasicSpriteCollision_Single:
|
||||
|
||||
Ancilla_SetupBasicHitBox:
|
||||
{
|
||||
LDA.w $0C04,X : SEC : SBC.b #$08 : STA.b $00
|
||||
LDA.w $0C18,X : SBC.b #$00 : STA.b $08
|
||||
LDA.w $0BFA,X : SEC : SBC.b #$08
|
||||
LDA.w AnciX, X : SEC : SBC.b #$08 : STA.b $00
|
||||
LDA.w AnciXH, X : SBC.b #$00 : STA.b $08
|
||||
LDA.w AnciY, X : SEC : SBC.b #$08
|
||||
PHP
|
||||
|
||||
SEC : SBC.w $029E,X : STA.b $01
|
||||
SEC : SBC.w AnciHeight, X : STA.b $01
|
||||
|
||||
LDA.w $0C0E,X : SBC.b #$00
|
||||
LDA.w AnciYH, X : SBC.b #$00
|
||||
|
||||
PLP
|
||||
SBC.b #$00 : STA.b $09
|
||||
@@ -759,10 +759,10 @@ Ancilla_Move_Y:
|
||||
DEY
|
||||
|
||||
.other_way
|
||||
ADC.w $0BFA,X : STA.w $0BFA,X
|
||||
ADC.w AnciY, X : STA.w AnciY, X
|
||||
|
||||
TYA
|
||||
ADC.w $0C0E,X : STA.w $0C0E,X
|
||||
ADC.w AnciYH, X : STA.w AnciYH, X
|
||||
|
||||
RTS
|
||||
}
|
||||
@@ -771,18 +771,18 @@ Ancilla_Move_Y:
|
||||
|
||||
Ancilla_Move_Z:
|
||||
{
|
||||
LDA.w $0294,X
|
||||
LDA.w AnciZSpeed, X
|
||||
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
|
||||
CLC : ADC.w $02A8,X : STA.w $02A8,X
|
||||
CLC : ADC.w AnciHeightH, X : STA.w AnciHeightH, X
|
||||
|
||||
LDY.b #$00
|
||||
|
||||
LDA.w $0294,X
|
||||
LDA.w AnciZSpeed, X
|
||||
PHP
|
||||
|
||||
LSR A
|
||||
@@ -797,55 +797,51 @@ Ancilla_Move_Z:
|
||||
DEY
|
||||
|
||||
.other_way
|
||||
ADC.w $029E,X : STA.w $029E,X
|
||||
ADC.w AnciHeight, X : STA.w AnciHeight, X
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
|
||||
|
||||
Ancilla_Killa:
|
||||
PLA
|
||||
PLA
|
||||
|
||||
STZ.w $0C4A,X
|
||||
STZ.w AnciType, X
|
||||
|
||||
RTS
|
||||
|
||||
Ancilla_BoundsCheck:
|
||||
{
|
||||
LDY.w $0C7C,X
|
||||
|
||||
LDY.w AnciLayer, X
|
||||
LDA.w .data, Y : STA.b $04
|
||||
|
||||
LDY.w $0C86,X
|
||||
|
||||
LDA.w $0C04,X : SEC : SBC.b $E2 : CMP.b #$F4 : BCS Ancilla_Killa
|
||||
|
||||
LDY.w AnciOamBuf, X
|
||||
LDA.w AnciX, X : SEC : SBC.b $E2 : CMP.b #$F4 : BCS Ancilla_Killa
|
||||
STA.b $00
|
||||
|
||||
LDA.w $0BFA,X : SEC : SBC.b $E8 : CMP.b #$F0 : BCS Ancilla_Killa
|
||||
|
||||
LDA.w AnciY, X : SEC : SBC.b $E8 : CMP.b #$F0 : BCS Ancilla_Killa
|
||||
STA.b $01
|
||||
|
||||
RTS
|
||||
|
||||
.data
|
||||
db $20, $10
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
|
||||
print pc
|
||||
AncillaAdd_MagicBubbleShot:
|
||||
{
|
||||
LDY.b #$00
|
||||
|
||||
LDY.b #$03
|
||||
STA.b $00
|
||||
|
||||
JSL Ancilla_CheckForAvailableSlot : BPL .free_slot
|
||||
LDA.b $00 : CMP.b #$01 : BEQ .no_refund_magic
|
||||
LDX.b #$00
|
||||
LDX.b #$02
|
||||
JSL Refund_Magic
|
||||
.no_refund_magic
|
||||
BRL .exit_a
|
||||
.free_slot
|
||||
INY ; Increment ancilla slot, due to 0x1E
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
@@ -865,42 +861,30 @@ AncillaAdd_MagicBubbleShot:
|
||||
; LDA.w AncillaObjectAllocation, X : STA.w AnciOAMNbr, Y
|
||||
LDA.b #$0C : STA.w AnciOAMNbr, Y
|
||||
LDA.b #$03 : STA.w AnciTimerA, Y
|
||||
LDA.b #$00 : STA.w AnciMiscB,Y : STA.w $0C5E,Y
|
||||
LDA.b #$00 : STA.w AnciMiscB, Y : STA.w AnciMiscC, Y
|
||||
STA.w $0280, Y : STA.w $028A, Y
|
||||
LDA.b $2F : LSR A : STA.w AnciMiscD, Y
|
||||
|
||||
TAX
|
||||
|
||||
PHY
|
||||
PHX
|
||||
|
||||
PHY : PHX
|
||||
TYX
|
||||
JSL Ancilla_CheckInitialTile_A
|
||||
|
||||
PLX
|
||||
PLY
|
||||
PLX : PLY
|
||||
|
||||
BCS .disperse_on_spawn
|
||||
|
||||
|
||||
LDA.w $0022 : CLC : ADC.w .init_check_offset_x_low,X : STA.w $0C04,Y
|
||||
|
||||
LDA.w $0023 : ADC.w .init_check_offset_x_high,X : STA.w $0C18,Y
|
||||
|
||||
LDA.w $0020 : CLC : ADC.w .init_check_offset_y_low,X : STA.w $0BFA,Y
|
||||
|
||||
LDA.w $0021 : ADC.w .init_check_offset_y_high,X : STA.w $0C0E,Y
|
||||
LDA.w $0022 : CLC : ADC.w .init_check_offset_x_low, X : STA.w AnciX, Y
|
||||
LDA.w $0023 : ADC.w .init_check_offset_x_high, X : STA.w AnciXH, Y
|
||||
LDA.w $0020 : CLC : ADC.w .init_check_offset_y_low, X : STA.w AnciY, Y
|
||||
LDA.w $0021 : ADC.w .init_check_offset_y_high, X : STA.w AnciYH, Y
|
||||
|
||||
; ANCILLA 01
|
||||
LDA.w AnciType, Y : CMP.b #$01 : BEQ .is_somaria_bullet
|
||||
|
||||
LDA.w .flame_speed_x, X : STA.w AnciYSpeed, Y
|
||||
|
||||
LDA.w .flame_speed_y, X
|
||||
|
||||
BRA .speed_set
|
||||
|
||||
|
||||
.is_somaria_bullet
|
||||
LDA.l $7EF359
|
||||
DEC A
|
||||
@@ -911,13 +895,9 @@ AncillaAdd_MagicBubbleShot:
|
||||
|
||||
STA.b $0F
|
||||
|
||||
TXA
|
||||
CLC
|
||||
ADC.b $0F
|
||||
TAX
|
||||
TXA : CLC : ADC.b $0F : TAX
|
||||
|
||||
LDA.w SomariaBulletSpeedX, X : STA.w AnciYSpeed, Y
|
||||
|
||||
LDA.w SomariaBulletSpeedY, X
|
||||
|
||||
|
||||
@@ -1033,7 +1013,7 @@ Ancilla_MagicBubbleShot:
|
||||
INC.w AnciMiscB, X
|
||||
|
||||
LDA.b #$1F : STA.w AnciTimerA, X
|
||||
LDA.b #$08 : STA.w $0C90,X
|
||||
LDA.b #$08 : STA.w AnciOAMNbr, X
|
||||
|
||||
LDA.b #$2A ; SFX2.2A
|
||||
JSR Ancilla_SFX2_Pan
|
||||
@@ -1041,7 +1021,7 @@ Ancilla_MagicBubbleShot:
|
||||
; ---------------------------------------------------------
|
||||
|
||||
.no_collision
|
||||
INC.w $0C5E,X
|
||||
INC.w AnciMiscC, X
|
||||
|
||||
LDA.w AnciMiscD, X : AND.b #$F3 : STA.w AnciMiscD, X
|
||||
LDA.w $0385, X : STA.w $0333
|
||||
@@ -1073,7 +1053,7 @@ AncillaDraw_MagicBubbleShot:
|
||||
LDA.b #$30
|
||||
TSB.b $04
|
||||
.default_priority
|
||||
LDA.w $0C5E, X : AND.b #$0C : STA.b $02
|
||||
LDA.w AnciMiscC, X : AND.b #$0C : STA.b $02
|
||||
|
||||
PHX
|
||||
|
||||
@@ -1088,7 +1068,6 @@ AncillaDraw_MagicBubbleShot:
|
||||
TAX
|
||||
|
||||
LDA.b $00 : CLC : ADC.w .offset_x, X : STA.b ($90), Y
|
||||
|
||||
LDA.b $01 : CLC : ADC.w .offset_y, X : INY : STA.b ($90), Y
|
||||
|
||||
LDX.b $03
|
||||
@@ -1146,9 +1125,9 @@ AncillaDraw_MagicBubbleShot:
|
||||
|
||||
MagicBubbleShot_Dissipate:
|
||||
{
|
||||
LDA.w $0C4A,X
|
||||
LDA.w AnciType, X
|
||||
|
||||
STZ.w $0C4A,X
|
||||
STZ.w AnciType, X
|
||||
|
||||
; ANCILLA 2F
|
||||
CMP.b #$2F : BEQ .no_burn
|
||||
|
||||
Reference in New Issue
Block a user