Temp commit. Need to store all sh... Changes

This commit is contained in:
korenkonder
2022-06-13 02:18:05 +03:00
parent 913c874c01
commit 82da8a484d
261 changed files with 23706 additions and 17661 deletions
+81
View File
@@ -0,0 +1,81 @@
/*
by korenkonder
GitHub/GitLab: korenkonder
*/
#include "kf.hpp"
void kft_check(void* src_key, kf_type src_type, void* dst_key, kf_type* dst_type) {
switch (src_type) {
case KEY_FRAME_TYPE_0: {
kft0* sk = (kft0*)src_key;
kft0* dk = (kft0*)dst_key;
dk->frame = sk->frame;
*dst_type = KEY_FRAME_TYPE_1;
} break;
case KEY_FRAME_TYPE_1: {
kft1* sk = (kft1*)src_key;
if (*(uint32_t*)&sk->value != 0) {
kft1* dk = (kft1*)dst_key;
dk->frame = sk->frame;
dk->value = sk->value;
*dst_type = KEY_FRAME_TYPE_1;
}
else {
kft0* dk = (kft0*)dst_key;
dk->frame = sk->frame;
*dst_type = KEY_FRAME_TYPE_0;
}
} break;
case KEY_FRAME_TYPE_2: {
kft2* sk = (kft2*)src_key;
if (*(uint32_t*)&sk->tangent != 0) {
kft2* dk = (kft2*)dst_key;
dk->frame = sk->frame;
dk->value = sk->value;
dk->tangent = sk->tangent;
*dst_type = KEY_FRAME_TYPE_2;
}
else if (*(uint32_t*)&sk->value != 0) {
kft1* dk = (kft1*)dst_key;
dk->frame = sk->frame;
dk->value = sk->value;
*dst_type = KEY_FRAME_TYPE_1;
}
else {
kft0* dk = (kft0*)dst_key;
dk->frame = sk->frame;
*dst_type = KEY_FRAME_TYPE_0;
}
} break;
case KEY_FRAME_TYPE_3: {
kft3* sk = (kft3*)src_key;
if (*(uint32_t*)&sk->tangent1 != *(uint32_t*)&sk->tangent2) {
kft3* dk = (kft3*)dst_key;
dk->frame = sk->frame;
dk->value = sk->value;
dk->tangent1 = sk->tangent1;
dk->tangent2 = sk->tangent2;
*dst_type = KEY_FRAME_TYPE_3;
}
else if (*(uint32_t*)&sk->tangent1 != 0) {
kft2* dk = (kft2*)dst_key;
dk->frame = sk->frame;
dk->value = sk->value;
dk->tangent = sk->tangent1;
*dst_type = KEY_FRAME_TYPE_2;
}
else if (*(uint32_t*)&sk->value != 0) {
kft1* dk = (kft1*)dst_key;
dk->frame = sk->frame;
dk->value = sk->value;
*dst_type = KEY_FRAME_TYPE_1;
}
else {
kft0* dk = (kft0*)dst_key;
dk->frame = sk->frame;
*dst_type = KEY_FRAME_TYPE_0;
}
} break;
}
}