;;; Enemy_CheckEnemySlotAnimationLoopCurrentFrame ;;; ;; Parameters: ;; r0: EnemySlot 080119A8 (T) push r4,r14 080119AA (T) lsl r0,r0,18h ;\ 080119AC (T) lsr r0,r0,18h ;| 080119AE (T) ldr r3,=EnemySlot0 ;| 080119B0 (T) lsl r1,r0,3h ;| 080119B2 (T) sub r1,r1,r0 ;| 080119B4 (T) lsl r1,r1,3h ;| 080119B6 (T) add r0,r1,r3 ;| 080119B8 (T) ldrb r2,[r0,1Ch] ;| 080119BA (T) ldrh r4,[r0,16h] ;| 080119BC (T) add r2,1h ;| 080119BE (T) lsl r2,r2,18h ;} If Enemy[EnemySlot]GraphicPointer[Enemy[EnemySlot]Animation] timer > Enemy[EnemySlot]AnimationCounter: return 0 080119C0 (T) lsr r2,r2,18h ;| 080119C2 (T) add r3,18h ;| 080119C4 (T) add r1,r1,r3 ;| 080119C6 (T) ldr r1,[r1] ;| 080119C8 (T) lsl r0,r4,3h ;| 080119CA (T) add r0,r0,r1 ;| 080119CC (T) ldrb r0,[r0,4h] ;| 080119CE (T) cmp r0,r2 ;| 080119D0 (T) bcs 80119E8h ;/ 080119D2 (T) add r0,r4,1 ;\ 080119D4 (T) lsl r0,r0,10h ;| 080119D6 (T) lsr r0,r0,0Dh ;| 080119D8 (T) add r0,r0,r1 ;} And if Enemy[EnemySlot]GraphicPointer[Enemy[EnemySlot]Animation + 1] timer: return 0 080119DA (T) ldrb r0,[r0,4h] ;| 080119DC (T) cmp r0,0h ;| 080119DE (T) bne 80119E8h ;/ 080119E0 (T) mov r0,1h ;\ 080119E2 (T) b 80119EAh ;} Return 1 080119E4 dd 003000140h 080119E8 (T) mov r0,0h 080119EA (T) pop r4 080119EC (T) pop r1 080119EE (T) bx r1