Skip to content

Commit 75f590d

Browse files
committed
Fix hitboxes for frozen enemies with extended spritemaps
1 parent 532c467 commit 75f590d

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/defines.asm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -922,6 +922,7 @@
922922
!ENEMY_TIMER = $0F90
923923
!ENEMY_INIT_PARAM = $0F92
924924
!ENEMY_PALETTE_INDEX = $0F96
925+
!ENEMY_FROZEN_TIMER = $0F9E
925926
!ENEMY_BANK = $0FA6
926927
!ENEMY_FUNCTION_POINTER = $0FA8
927928
!ENEMY_VAR_1 = $0FAA

src/spritefeat.asm

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,13 @@ draw_enemy_hitbox:
353353
LDY !OAM_STACK_POINTER ; Y = OAM stack pointer
354354

355355
.loopEnemies
356-
; skip enemy if extended spritemap or deleted enemy
357-
LDA !ENEMY_EXTRA_PROPERTIES,X : AND #$0004 : BNE .skipEnemy
356+
; skip enemy if deleted
358357
LDA !ENEMY_PROPERTIES,X : AND #$0200 : BNE .skipEnemy
358+
; skip enemy if extended spritemap and not frozen
359+
LDA !ENEMY_FROZEN_TIMER,X : BNE .checkOffscreen
360+
LDA !ENEMY_EXTRA_PROPERTIES,X : AND #$0004 : BNE .skipEnemy
359361

362+
.checkOffscreen
360363
; skip enemy if off-screen
361364
LDA !ENEMY_X,X : CLC : ADC !ENEMY_X_RADIUS,X
362365
CMP !LAYER1_X : BMI .skipEnemy
@@ -425,7 +428,10 @@ draw_ext_spritemap_hitbox:
425428
LDY !OAM_STACK_POINTER ; Y = OAM stack pointer
426429

427430
.loopEnemies
428-
; check if extended spritemap
431+
; skip enemy if deleted
432+
LDA !ENEMY_PROPERTIES,X : AND #$0200 : BNE .nextEnemy
433+
; check if extended spritemap and not frozen
434+
LDA !ENEMY_FROZEN_TIMER,X : BNE .nextEnemy
429435
LDA !ENEMY_EXTRA_PROPERTIES,X : AND #$0004 : BNE .extended
430436

431437
.nextEnemy

0 commit comments

Comments
 (0)