diff --git a/src/include/lib/anim.h b/src/include/lib/anim.h index 99be8bfd4..75dfa243c 100644 --- a/src/include/lib/anim.h +++ b/src/include/lib/anim.h @@ -17,7 +17,7 @@ bool anim000239e0(s16 animnum, s32 frame); u8 anim00023ab0(s16 animnum, s32 framenum); void anim00023d0c(void); void anim00023d38(s16 animnum); -s32 anim00023f50(u8 *arg0, u8 arg1, s32 arg2); +u32 anim00023f50(u8 *arg0, u8 arg1, u32 arg2); u32 anim00023fe0(void); void anim00024050(s32 arg0, s32 arg1, struct modeltype *arg2, s32 animnum, u32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7); u32 anim0002485c(s32 arg0, s32 arg1, struct modeltype *arg2, s16 animnum, s32 loopframe, s16 *arg5, s32 arg6); diff --git a/src/lib/anim.c b/src/lib/anim.c index 5068ba8fe..fef545e87 100644 --- a/src/lib/anim.c +++ b/src/lib/anim.c @@ -686,6 +686,32 @@ glabel anim00023f50 /* 23fdc: 00601025 */ or $v0,$v1,$zero ); +// Mismatch: regalloc +//u32 anim00023f50(u8 *arg0, u8 arg1, u32 arg2) +//{ +// u32 result = 0; +// u8 numbits; +// u32 tmp; +// +// arg0 += arg2 / 8; +// numbits = 8 - (arg2 % 8); +// +// while (arg1 >= numbits) { +// arg1 -= numbits; +// result |= (*arg0 & ((1 << numbits) - 1)) << arg1; +// arg0++; +// numbits = 8; +// } +// +// if (arg1 > 0) { +// result |= (*arg0 >> (numbits - arg1)) & ((1 << arg1) - 1); +// } +// +// if (arg2 / 8); +// +// return result; +//} + GLOBAL_ASM( glabel anim00023fe0 /* 23fe0: 27bdffe8 */ addiu $sp,$sp,-24