;;; Death animation ;;; ; Takes parameter in A: $A0A3AF 08 PHP $A0A3B0 8B PHB $A0A3B1 F4 00 A0 PEA $A000 $A0A3B4 AB PLB $A0A3B5 AB PLB $A0A3B6 C2 30 REP #$30 $A0A3B8 48 PHA $A0A3B9 BD 8A 0F LDA $0F8A,x[$7E:02DD] ;\ $A0A3BC C9 01 00 CMP #$0001 ;} If AI handler == 1: $A0A3BF D0 06 BNE $06 [$A3C7] ;/ $A0A3C1 A9 C5 C8 LDA #$C8C5 ;\ $A0A3C4 8D 32 0D STA $0D32 [$7E:0D32] ;} Grapple beam function pointer = $C8C5 $A0A3C7 68 PLA $A0A3C8 C9 05 00 CMP #$0005 ;\ $A0A3CB 30 03 BMI $03 [$A3D0] ;} If A-parameter < 5: $A0A3CD A9 00 00 LDA #$0000 ; A = 0 $A0A3D0 8D 20 0E STA $0E20 [$7E:0E20] ; $0E20 = A $A0A3D3 AE 54 0E LDX $0E54 [$7E:0E54] ; X = enemy index $A0A3D6 A0 45 F3 LDY #$F345 ; Y = $F345 $A0A3D9 AD 20 0E LDA $0E20 [$7E:0E20] ; A = [$0E20] $A0A3DC 22 27 80 86 JSL $868027[$86:8027] ; dat JSL $A0A3E0 BD 86 0F LDA $0F86,x[$7E:0FC6] ;\ $A0A3E3 29 00 40 AND #$4000 ;} $12 = enemy property bits sans respawn-bit $A0A3E6 85 12 STA $12 [$7E:0012] ;/ $A0A3E8 A0 3E 00 LDY #$003E ;\ $A0A3EB AE 54 0E LDX $0E54 [$7E:0E54] ;| ;| $A0A3EE 9E 78 0F STZ $0F78,x[$7E:0FB8] ;| $A0A3F1 E8 INX ;} Clear enemy RAM $A0A3F2 E8 INX ;| $A0A3F3 88 DEY ;| $A0A3F4 88 DEY ;| $A0A3F5 10 F7 BPL $F7 [$A3EE] ;/ $A0A3F7 A5 12 LDA $12 [$7E:0012] ;\ $A0A3F9 F0 0F BEQ $0F [$A40A] ;} If $12: $A0A3FB AE 54 0E LDX $0E54 [$7E:0E54] $A0A3FE A9 FF DA LDA #$DAFF ;\ $A0A401 9D 78 0F STA $0F78,x[$7E:11B8] ;} Enemy pointer = $DAFF $A0A404 A9 A3 00 LDA #$00A3 ;\ $A0A407 9D A6 0F STA $0FA6,x[$7E:11E6] ;} Enemy bank = $A3 $A0A40A EE 50 0E INC $0E50 [$7E:0E50] ; Increment number of killed enemies $A0A40D AB PLB $A0A40E 28 PLP $A0A40F 6B RTL