summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorKrimtonZ <krimtonz@gmail.com>2020-03-22 20:57:25 -0500
committerKrimtonZ <krimtonz@gmail.com>2020-03-22 20:57:25 -0500
commit6072055c8561c2504eb874b5005e2ab9c56d216e (patch)
treead2379cb099ad3009630198c8b72e0277a2c4811 /src/code
parentd136468aceff966697d83c71dc14b73fb297435d (diff)
fix merge conflics
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_skelanime.c112
1 files changed, 106 insertions, 6 deletions
diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c
index 9c376faa3..b258a412a 100644
--- a/src/code/z_skelanime.c
+++ b/src/code/z_skelanime.c
@@ -1671,15 +1671,115 @@ void func_800A5408(SkelAnime* skelAnime)
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A5408.s")
+#endif
+
+void func_800A5428(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src, u8* arg3)
+{
+ s32 i;
+ for(i = 0; i < skelAnime->limbCount; i++, dst++, src++)
+ {
+ if(*arg3++)
+ {
+ *dst = *src;
+ }
+ }
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A5428.s")
+void func_800A5490(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src, u8* arg3)
+{
+ s32 i;
+ for(i = 0;i < skelAnime->limbCount; i++, dst++, src++)
+ {
+ if(*arg3++ < 1U){
+ *dst = *src;
+ }
+ }
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A5490.s")
+void func_800A54FC(SkelAnime* skelAnime, Vec3f* pos, s16 angle)
+{
+ f32 x;
+ f32 z;
+ f32 sin;
+ f32 cos;
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A54FC.s")
+ if((skelAnime->unk_35 & 0x10) != 0)
+ {
+ pos->z = 0.0f;
+ pos->x = 0.0f;
+ }
+ else
+ {
+ x = (f32)skelAnime->actorDrawTbl->x;
+ z = (f32)skelAnime->actorDrawTbl->z;
+ sin = Math_Sins(angle);
+ cos = Math_Coss(angle);
+ pos->x = x * cos + z * sin;
+ pos->z = z * cos - x * sin;
+ x = (f32)skelAnime->unk_38;
+ z = (f32)skelAnime->unk_3C;
+ sin = Math_Sins(skelAnime->unk_36);
+ cos = Math_Coss(skelAnime->unk_36);
+ pos->x -= x * cos + z * sin;
+ pos->z -= z * cos - x * sin;
+ }
+
+ skelAnime->unk_36 = angle;
+ skelAnime->unk_38 = skelAnime->actorDrawTbl->x;
+ skelAnime->actorDrawTbl->x = skelAnime->unk_3E;
+ skelAnime->unk_3C = skelAnime->actorDrawTbl->z;
+ skelAnime->actorDrawTbl->z = skelAnime->unk_42;
+ if((skelAnime->unk_35 & 2) != 0)
+ {
+ if((skelAnime->unk_35 & 0x10) != 0)
+ {
+ pos->y = 0.0f;
+ }
+ else
+ {
+ pos->y = (f32)(skelAnime->actorDrawTbl->y - skelAnime->unk_3A);
+ }
+ skelAnime->unk_3A = skelAnime->actorDrawTbl->y;
+ skelAnime->actorDrawTbl->y = skelAnime->unk_40;
+ }
+ else
+ {
+ pos->y = 0.0f;
+ skelAnime->unk_3A = skelAnime->actorDrawTbl->y;
+ }
+ skelAnime->unk_35 &= ~0x10;
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A56C8.s")
+s32 func_800A56C8(SkelAnime *skelAnime, f32 arg1)
+{
+ return func_800A4478(skelAnime, arg1, 1.0f);
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A56F0.s")
+// SkelAnime_Free
+void func_800A56F0(SkelAnime *skelAnime, s32 arg1)
+{
+ if (skelAnime->actorDrawTbl != NULL)
+ {
+ ZeldaArena_FreeDebug(skelAnime->actorDrawTbl, "../z_skelanime.c", 3729);
+ }
+ else
+ {
+ osSyncPrintf("now_joint あきまへん!!\n"); // now_joint Akimane! !
+ }
+ if (skelAnime->unk_24 != NULL)
+ {
+ ZeldaArena_FreeDebug(skelAnime->unk_24, "../z_skelanime.c", 3731);
+ return;
+ }
+ osSyncPrintf("morf_joint あきまへん!!\n"); // "morf_joint Akimane !!"
+}
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A5774.s")
+// SkelAnime_CopyVec3s
+void func_800A5774(SkelAnime* skelAnime, Vec3s *dst, Vec3s *src)
+{
+ s32 i;
+ for(i = 0; i < skelAnime->limbCount; i++)
+ {
+ *dst++ = *src++;
+ }
+}