do_go_anim

This commit is contained in:
PikalaxALT 2017-09-16 23:49:31 -04:00
parent 432924e56d
commit 529ccf9a96
3 changed files with 10 additions and 47 deletions

View file

@ -5,53 +5,6 @@
.text
thumb_func_start do_go_anim
@ void do_go_anim(struct npc_state *fieldObject, struct obj *object, u8 direction, u8 speed)
do_go_anim: @ 8093A2C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
adds r5, r0, 0
mov r8, r1
adds r4, r3, 0
lsls r2, 24
lsrs r2, 24
lsls r4, 24
lsrs r4, 24
mov r1, sp
ldr r0, =gUnknown_0850DEE8
ldm r0!, {r3,r6,r7}
stm r1!, {r3,r6,r7}
ldm r0!, {r3,r6}
stm r1!, {r3,r6}
adds r0, r5, 0
mov r1, r8
adds r3, r4, 0
bl npc_apply_direction
lsls r4, 2
mov r7, sp
adds r1, r7, r4
ldrb r0, [r5, 0x18]
lsls r0, 28
lsrs r0, 28
ldr r1, [r1]
bl _call_via_r1
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
mov r1, r8
bl npc_apply_anim_looping
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end do_go_anim
thumb_func_start do_run_anim
@ void do_run_anim(struct npc_state *fieldObject, struct obj *object, u8 direction)
do_run_anim: @ 8093A88

View file

@ -43,5 +43,6 @@ extern const u8 gUnknown_0850DC3F[4][4];
extern const u8 gUnknown_0850DBA0[5];
extern bool8 (*const *const gUnknown_0850DC50[])(struct MapObject *, struct Sprite *);
extern u8 (*const gUnknown_0850DEE8[5])(u8);
#endif //GUARD_DATA3_H

View file

@ -4174,3 +4174,12 @@ void npc_apply_direction(struct MapObject *mapObject, struct Sprite *sprite, u8
mapObject->mapobj_bit_2 = TRUE;
sprite->data2 = 1;
}
void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed)
{
u8 (*functions[ARRAY_COUNT(gUnknown_0850DEE8)])(u8);
memcpy(functions, gUnknown_0850DEE8, sizeof gUnknown_0850DEE8);
npc_apply_direction(mapObject, sprite, direction, speed);
npc_apply_anim_looping(mapObject, sprite, functions[speed](mapObject->mapobj_unk_18));
}