;;; Enemy_CheckEnemySlotAnimationLoopNextFrame ;;; ;; Parameters: ;; r0: EnemySlot 080119F0 (T) push r4,r14 080119F2 (T) lsl r0,r0,18h 080119F4 (T) lsr r0,r0,18h 080119F6 (T) ldr r3,=EnemySlot0 ;\ 080119F8 (T) lsl r1,r0,3h ;| 080119FA (T) sub r1,r1,r0 ;| 080119FC (T) lsl r1,r1,3h ;| 080119FE (T) add r0,r1,r3 ;| 08011A00 (T) ldrb r2,[r0,1Ch] ;| 08011A02 (T) ldrh r4,[r0,16h] ;| 08011A04 (T) lsl r2,r2,18h ;| 08011A06 (T) mov r0,80h ;| 08011A08 (T) lsl r0,r0,12h ;| 08011A0A (T) add r2,r2,r0 ;} If EnemyGraphicPointer[Enemy[EnemyAttachedSlot]Animation] timer > Enemy[EnemyAttachedSlot]AnimationCounter + 1: return 0 08011A0C (T) lsr r2,r2,18h ;| 08011A0E (T) add r3,18h ;| 08011A10 (T) add r1,r1,r3 ;| 08011A12 (T) ldr r1,[r1] ;| 08011A14 (T) lsl r0,r4,3h ;| 08011A16 (T) add r0,r0,r1 ;| 08011A18 (T) ldrb r0,[r0,4h] ;| 08011A1A (T) cmp r0,r2 ;| 08011A1C (T) bcs 8011A34h ;/ 08011A1E (T) add r0,r4,1 ;\ 08011A20 (T) lsl r0,r0,10h ;| 08011A22 (T) lsr r0,r0,0Dh ;| 08011A24 (T) add r0,r0,r1 ;} If EnemyGraphicPointer[Enemy[EnemyAttachedSlot]Animation + 1] timer: return 0 08011A26 (T) ldrb r0,[r0,4h] ;| 08011A28 (T) cmp r0,0h ;| 08011A2A (T) bne 8011A34h ;/ 08011A2C (T) mov r0,1h ;\ 08011A2E (T) b 8011A36h ;} Return 1 08011A30 dd 003000140h 08011A34 (T) mov r0,0h 08011A36 (T) pop r4 08011A38 (T) pop r1 08011A3A (T) bx r1