Be more proactive about which sprites to move

This commit is contained in:
aerinon
2023-10-06 10:40:05 -06:00
parent f3768ea0ad
commit 8c384ff123

View File

@@ -124,15 +124,7 @@ boss_move:
.loop_middle ; move sprites
LDA $0E20, X
CMP #$E3 : BNE + ;is it a fairy?? if not check next
BRA .no_change
+
CMP #$D1 : BNE + ;is it a bunny changer
BRA .no_change
+
CMP #$C5 : BNE + ;is it a medusa head
BRA .no_change
+
JSR ShouldMoveSprite : BCC .no_change
LDA $0D10, X : !ADD #$68 : STA $0D10, X
LDA $0D00, X : !ADD #$68 : STA $0D00, X
@@ -158,15 +150,7 @@ boss_move:
.loop_top_right ; move sprites
LDA $0E20, X
CMP #$E3 : BNE + ;is it a fairy?? if not check next
BRA .no_change2
+
CMP #$D1 : BNE + ;is it a bunny changer
BRA .no_change2
+
CMP #$C5 : BNE + ;is it a medusa head
BRA .no_change2
+
JSR ShouldMoveSprite : BCC .no_change2
LDA $0D20, X : !ADD #$00 : STA $0D20, X
LDA $0D30, X : !ADD #$01 : STA $0D30, X
@@ -192,15 +176,7 @@ boss_move:
.loop_bottom_right ; move sprites
LDA $0E20, X
CMP #$E3 : BNE + ;is it a fairy?? if not check next
BRA .no_change3
+
CMP #$D1 : BNE + ;is it a bunny changer
BRA .no_change3
+
CMP #$C5 : BNE + ;is it a medusa head
BRA .no_change3
+
JSR ShouldMoveSprite : BCC .no_change3
LDA $0D20, X : !ADD #$01 : STA $0D20, X
LDA $0D30, X : !ADD #$01 : STA $0D30, X
@@ -226,15 +202,7 @@ boss_move:
.loop_bottom_left ; move sprites
LDA $0E20, X
CMP #$E3 : BNE + ;is it a fairy?? if not check next
BRA .no_change4
+
CMP #$D1 : BNE + ;is it a bunny changer
BRA .no_change4
+
CMP #$C5 : BNE + ;is it a medusa head
BRA .no_change4
+
JSR ShouldMoveSprite : BCC .no_change4
LDA $0D20, X : !ADD #$01 : STA $0D20, X
LDA $0D30, X : !ADD #$00 : STA $0D30, X
@@ -259,6 +227,23 @@ boss_move:
RTL
}
; A - sprite id from E20, X
; X - sprite index - should be preserved
; sets or clears carry flag, set if sprite should be moved
ShouldMoveSprite:
PHX
LDX #$FF
- INX : CPX.b #$0F : BCS .done
CMP.l BossIds, X : BNE -
; match found, move it
PLX : SEC : RTS
.done ; don't move it
PLX : CLC : RTS
BossIds:
db $53, $54, $09, $92, $8c, $8d, $88, $ce
db $a2, $a3, $a4, $bd, $cb, $cc, $cd, $ff
;================================================================================
; Fix the gibdo key drop in skull woods before the boss room - USELESS CODE
;--------------------------------------------------------------------------------