;;; Arachnus_StandingInitialisation ;;;
08024538 (T) push r4,r14
0802453A (T) ldr r0,=EnemyOrientation ;\
0802453C (T) mov r1,r0 ;|
0802453E (T) add r1,2Fh ;} r1 = EnemyAttachedEnemySlot
08024540 (T) ldrb r2,[r1] ;/
08024542 (T) sub r1,1h ;\
08024544 (T) ldrb r1,[r1] ;|
08024546 (T) mov r3,r0 ;} If EnemyRespawnTimer == 0:
08024548 (T) cmp r1,0FFh ;|
0802454A (T) bne 80245A2h ;/
0802454C (T) ldrh r1,[r3] ;\
0802454E (T) ldr r0,=0DFFFh ;|
08024550 (T) and r0,r1 ;} EnemyOrientation !|= 2000h (rolling)
08024552 (T) mov r4,0h ;|
08024554 (T) strh r0,[r3] ;/
08024556 (T) ldr r1,=EnemySlot0 ;\
08024558 (T) lsl r0,r2,3h ;|
0802455A (T) sub r0,r0,r2 ;|
0802455C (T) lsl r0,r0,3h ;|
0802455E (T) add r2,r0,r1 ;} Enemy[EnemyAttachedSlot]Orientation !|= 80h
08024560 (T) ldrh r0,[r2] ;|
08024562 (T) ldr r1,=0FF7Fh ;|
08024564 (T) and r1,r0 ;|
08024566 (T) strh r1,[r2] ;/
08024568 (T) ldr r0,=0FF60h ;\
0802456A (T) strh r0,[r2,0Ah] ;} Enemy[EnemyAttachedSlot]TopBoundryOffset = -A0h
0802456C (T) strh r4,[r2,0Ch] ; Enemy[EnemyAttachedSlot]BottomBoundryOffset = -A0h
0802456E (T) mov r0,40h ;\
08024570 (T) and r0,r1 ;|
08024572 (T) lsl r0,r0,10h ;|
08024574 (T) lsr r0,r0,10h ;} If Enemy[EnemyAttachedSlot]Orientation has 40h (facing right):
08024576 (T) cmp r0,0h ;|
08024578 (T) beq 802459Ch ;/
0802457A (T) ldr r0,=0FFB0h ;\
0802457C (T) strh r0,[r2,0Eh] ;} Enemy[EnemyAttachedSlot]LeftBoundryOffset = -50h
0802457E (T) strh r4,[r2,10h] ; Enemy[EnemyAttachedSlot]RightBoundryOffset = -50h
08024580 (T) b 80245A2h
08024582 dw 00000h
08024584 dd 0030006BCh,00000DFFFh,003000140h,00000FF7Fh
08024594 dd 00000FF60h,00000FFB0h
; Else Enemy[EnemyAttachedSlot]Orientation hasn't 40h (facing left):
0802459C (T) strh r0,[r2,0Eh] ; Clear Enemy[EnemyAttachedSlot]LeftBoundryOffset
0802459E (T) mov r0,50h ;\
080245A0 (T) strh r0,[r2,10h] ;} Enemy[EnemyAttachedSlot]RightBoundryOffset = 50h
080245A2 (T) mov r1,r3 ;\ EnemyRespawnTimer != 0:
080245A4 (T) add r1,24h ;\
080245A6 (T) mov r2,0h ;|
080245A8 (T) mov r0,8h ;} EnemyPose = 8 (standing still)
080245AA (T) strb r0,[r1] ;/
080245AC (T) ldr r0,=8302C44h ;\
080245AE (T) str r0,[r3,18h] ;} EnemyGraphicPointer = 8302C44h
080245B0 (T) strb r2,[r3,1Ch] ; Clear EnemyAnimationCounter
080245B2 (T) strh r2,[r3,16h] ; Clear EnemyAnimation
080245B4 (T) bl 802381Ch ; Execute subroutine Arachnus_SetHitboxStanding
080245B8 (T) ldr r0,=8302C6Ch ; r0 parameter = 8302C6Ch
080245BA (T) bl 8012304h ; Execute subroutine Enemy_SetAttachedEnemyGraphics
080245BE (T) pop r4
080245C0 (T) pop r0
080245C2 (T) bx r0
080245C4 dd 008302C44h,008302C6Ch