Add Sprite_CountActiveById, limit keese in twinrova fight
This commit is contained in:
@@ -317,7 +317,23 @@ Sprite_CheckForPresence:
|
||||
.done
|
||||
PLX
|
||||
RTL
|
||||
}
|
||||
|
||||
; $00 - ID of the sprite to check
|
||||
; $02 - Number of sprites found
|
||||
Sprite_CountActiveById:
|
||||
{
|
||||
STZ $02
|
||||
LDX.b #$10
|
||||
.x_loop
|
||||
DEX
|
||||
LDA $0E20, X : CMP.b $00 : BEQ .increment
|
||||
BRA .continue
|
||||
.increment
|
||||
INC $02
|
||||
.continue
|
||||
CPX.b #$00 : BNE .x_loop
|
||||
RTL
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
|
||||
@@ -159,7 +159,7 @@ Sprite_Twinrova_Main:
|
||||
PLX
|
||||
|
||||
LDA.w SprAction, X
|
||||
JSL UseImplicitRegIndexedLocalJumpTable
|
||||
JSL JumpTableLocal
|
||||
|
||||
dw Twinrova_Init ; 0x00
|
||||
dw Twinrova_MoveState ; 0x01
|
||||
@@ -200,6 +200,9 @@ Sprite_Twinrova_Main:
|
||||
.phase_1
|
||||
|
||||
|
||||
LDA.b #$11 : STA.b $00
|
||||
JSL Sprite_CountActiveById
|
||||
LDA.b $02 : CMP.b #$03 : BCS +
|
||||
%ProbCheck($3F, +)
|
||||
%ProbCheck($0F, ++)
|
||||
JSL Sprite_SpawnFireKeese
|
||||
@@ -540,8 +543,8 @@ TargetPositions:
|
||||
|
||||
Twinrova_RestoreFloorTile:
|
||||
{
|
||||
LDA.w SprY, X : AND #$F8 : STA.b $00 : LDA.w SprYH, X : STA.b $01
|
||||
LDA.w SprX, X : AND #$F8 : STA.b $02 : LDA.w SprXH, X : STA.b $03
|
||||
LDA.w SprY, X : STA.b $00 : LDA.w SprYH, X : STA.b $01
|
||||
LDA.w SprX, X : STA.b $02 : LDA.w SprXH, X : STA.b $03
|
||||
|
||||
LDA.b #$00
|
||||
JSL Sprite_GetTileAttr
|
||||
@@ -552,7 +555,6 @@ Twinrova_RestoreFloorTile:
|
||||
LDA.w SprYH, Y : ADC.b #$00 : STA.l $7FF85A, X
|
||||
JSR RestoreFloorTile
|
||||
+
|
||||
|
||||
RTS
|
||||
}
|
||||
|
||||
@@ -586,71 +588,44 @@ AddPitHazard:
|
||||
|
||||
Ganon_SpawnFallingTilesOverlord:
|
||||
{
|
||||
#_1D90D0: LDY.b #$07
|
||||
|
||||
LDY.b #$07
|
||||
.next_slot
|
||||
#_1D90D2: LDA.w $0B00,Y
|
||||
#_1D90D5: BEQ .free_slot
|
||||
|
||||
#_1D90D7: DEY
|
||||
#_1D90D8: BPL .next_slot
|
||||
|
||||
#_1D90DA: RTS
|
||||
|
||||
;----------------------------------------------------------
|
||||
|
||||
LDA.w $0B00, Y : BEQ .free_slot
|
||||
DEY : BPL .next_slot
|
||||
RTS
|
||||
.free_slot
|
||||
#_1D90DB: LDA.w SprMiscF,X
|
||||
#_1D90DE: CMP.b #$04
|
||||
#_1D90E0: BCS .dont_spawn
|
||||
|
||||
#_1D90E2: INC.w SprMiscF,X
|
||||
|
||||
#_1D90E5: PHX
|
||||
|
||||
#_1D90E6: TAX
|
||||
|
||||
#_1D90E7: LDA.w .overlord_type,X
|
||||
#_1D90EA: STA.w $0B00,Y
|
||||
|
||||
#_1D90ED: LDA.w .position_x,X
|
||||
#_1D90F0: STA.w $0B08,Y
|
||||
|
||||
#_1D90F3: LDA.b $23
|
||||
#_1D90F5: STA.w $0B10,Y
|
||||
|
||||
#_1D90F8: LDA.w .position_y,X
|
||||
#_1D90FB: STA.w $0B18,Y
|
||||
|
||||
#_1D90FE: LDA.b $21
|
||||
#_1D9100: STA.w $0B20,Y
|
||||
|
||||
#_1D9103: LDA.b #$00
|
||||
#_1D9105: STA.w $0B28,Y
|
||||
#_1D9108: STA.w $0B30,Y
|
||||
|
||||
#_1D910B: PLX
|
||||
|
||||
LDA.w SprMiscF, X : CMP.b #$04 : BCS .dont_spawn
|
||||
INC.w SprMiscF, X
|
||||
PHX
|
||||
TAX
|
||||
LDA.w .overlord_type, X : STA.w $0B00, Y
|
||||
LDA.w .position_x, X : STA.w $0B08, Y
|
||||
LDA.b $23 : STA.w $0B10, Y
|
||||
LDA.w .position_y, X : STA.w $0B18, Y
|
||||
LDA.b $21 : STA.w $0B20, Y
|
||||
LDA.b #$00 : STA.w $0B28, Y : STA.w $0B30, Y
|
||||
PLX
|
||||
.dont_spawn
|
||||
#_1D910C: RTS
|
||||
RTS
|
||||
|
||||
.overlord_type
|
||||
#_1D90C4: db $0C ; OVERLORD 0C
|
||||
#_1D90C5: db $0D ; OVERLORD 0D
|
||||
#_1D90C6: db $0E ; OVERLORD 0E
|
||||
#_1D90C7: db $0F ; OVERLORD 0F
|
||||
db $0C ; OVERLORD 0C
|
||||
db $0D ; OVERLORD 0D
|
||||
db $0E ; OVERLORD 0E
|
||||
db $0F ; OVERLORD 0F
|
||||
|
||||
.position_x
|
||||
#_1D90C8: db $18
|
||||
#_1D90C9: db $D8
|
||||
#_1D90CA: db $D8
|
||||
#_1D90CB: db $18
|
||||
db $18
|
||||
db $D8
|
||||
db $D8
|
||||
db $18
|
||||
|
||||
.position_y
|
||||
#_1D90CC: db $20
|
||||
#_1D90CD: db $20
|
||||
#_1D90CE: db $D0
|
||||
#_1D90CF: db $D0
|
||||
db $20
|
||||
db $20
|
||||
db $D0
|
||||
db $D0
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
@@ -842,7 +817,6 @@ ReleaseFireballs:
|
||||
.exit_a
|
||||
RTS
|
||||
|
||||
|
||||
.offset_x_low
|
||||
db 12, -12, 0, 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user