/* c_math.cpp autogenerated by split.py v0.3 at 2020-12-31 13:20:59.345670 */ #include "SComponent/c_math.h" #include "msl_c/math.h" extern s32 lbl_80451168; // SComponent::r0 extern s32 lbl_8045116C; // SComponent::r1 extern s32 lbl_80451170; // SComponent::r2 extern s32 lbl_80451174; // SComponent::r02 extern s32 lbl_80451178; // SComponent::r12 extern s32 lbl_8045117C; // SComponent::r22 extern f32 lbl_80451180; extern u16 lbl_803C3778[1028]; // SComponent::atntable // cM_rad2s__Ff s16 cM_rad2s(float f0) { f32 tmpF = fmod(f0, 6.2831854820251465 /* approx. 2 * PI */); s32 tmp = (tmpF * 10430.378f /* approx. 32768 / PI */); if (tmp < -0x8000) { tmp += 0x10000; } else if (tmp > 0x7FFF) { tmp -= 0x10000; } return tmp; } // U_GetAtanTable__Fff u16 U_GetAtanTable(float f0, float f1) { return lbl_803C3778[(int)(f0 / f1 * 1024)]; } // cM_atan2s__Fff s16 cM_atan2s(float f0, float f1) { u32 retVar; if (fabsf(f0) < lbl_80451180) { if (f1 >= 0.0f) { retVar = 0; } else { retVar = 0x8000; } } else if (fabsf(f1) < lbl_80451180) { if (f0 >= 0.0f) { retVar = 0x4000; } else { retVar = 0xC000; } } else if (f0 >= 0.0f) { if (f1 >= 0.0f) { if (f1 >= f0) { retVar = U_GetAtanTable(f0, f1); } else { retVar = 0x4000 - U_GetAtanTable(f1, f0); } } else { if (-f1 < f0) { retVar = U_GetAtanTable(-f1, f0) + 0x4000; } else { retVar = 0x8000 - U_GetAtanTable(f0, -f1); } } } else if (f1 < 0.0f) { if (f1 <= f0) { retVar = U_GetAtanTable(-f0, -f1) + 0x8000; } else { retVar = 0xC000 - U_GetAtanTable(-f1, -f0); } } else { if (f1 < -f0) { retVar = U_GetAtanTable(f1, -f0) + 0xC000; } else { retVar = -U_GetAtanTable(-f0, f1); } } return retVar; } // cM_atan2f__Fff float cM_atan2f(float f1, float f2) { return 9.58738E-5f * cM_atan2s(f1, f2); } // cM_initRnd__Fiii void cM_initRnd(int p0, int p1, int p2) { lbl_80451168 = p0; lbl_8045116C = p1; lbl_80451170 = p2; } // cM_rnd__Fv float cM_rnd(void) { lbl_80451168 = (lbl_80451168 * 0xAB) % 0x763D; lbl_8045116C = (lbl_8045116C * 0xAC) % 0x7663; lbl_80451170 = (lbl_80451170 * 0xAA) % 0x7673; return fabsf( fmod(lbl_80451168 / 30269.0f + lbl_8045116C / 30307.0f + lbl_80451170 / 30323.0f, 1.0)); } // cM_rndF__Ff float cM_rndF(float f) { return cM_rnd() * f; } // cM_rndFX__Ff float cM_rndFX(float f) { return f * (cM_rnd() - 0.5f) * 2.0f; } // cM_initRnd2__Fiii void cM_initRnd2(int p0, int p1, int p2) { lbl_80451174 = p0; lbl_80451178 = p1; lbl_8045117C = p2; } // cM_rnd2__Fv float cM_rnd2(void) { lbl_80451174 = (lbl_80451174 * 0xAB) % 0x763D; lbl_80451178 = (lbl_80451178 * 0xAC) % 0x7663; lbl_8045117C = (lbl_8045117C * 0xAA) % 0x7673; return fabsf( fmod(lbl_80451174 / 30269.0f + lbl_80451178 / 30307.0f + lbl_8045117C / 30323.0f, 1.0)); } // cM_rndF2__Ff float cM_rndF2(float f) { return cM_rnd2() * f; } // cM_rndFX2__Ff float cM_rndFX2(float f) { return f * (cM_rnd2() - 0.5f) * 2.0f; }