// // Generated By: dol2asm // Translation Unit: c_lib // #include "SSystem/SComponent/c_lib.h" #include "JSystem/JMath/JMath.h" #include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_xyz.h" #include "dol2asm.h" #include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" #include "msl_c/math.h" // // Forward References: // extern "C" void cLib_memCpy__FPvPCvUl(); extern "C" void cLib_memSet__FPviUl(); extern "C" void cLib_addCalc__FPfffff(); extern "C" void cLib_addCalc2__FPffff(); extern "C" void cLib_addCalc0__FPfff(); extern "C" void cLib_addCalcPos__FP4cXyzRC4cXyzfff(); extern "C" void cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff(); extern "C" void cLib_addCalcPos2__FP4cXyzRC4cXyzff(); extern "C" void cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff(); extern "C" void cLib_addCalcAngleS__FPsssss(); extern "C" void cLib_addCalcAngleS2__FPssss(); extern "C" void cLib_chaseUC__FPUcUcUc(); extern "C" void cLib_chaseS__FPsss(); extern "C" void cLib_chaseF__FPfff(); extern "C" void cLib_chasePos__FP4cXyzRC4cXyzf(); extern "C" void cLib_chasePosXZ__FP4cXyzRC4cXyzf(); extern "C" void cLib_chaseAngleS__FPsss(); extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); extern "C" void cLib_targetAngleY__FRC3VecRC3Vec(); extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); extern "C" void cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz(); extern "C" void cLib_distanceAngleS__Fss(); extern "C" void MtxInit__Fv(); extern "C" void MtxTrans__FfffUc(); extern "C" void MtxScale__FfffUc(); extern "C" void MtxPosition__FP4cXyzP4cXyz(); extern "C" void MtxPush__Fv(); extern "C" void MtxPull__Fv(); // // External References: // extern "C" void __mi__4cXyzCFRC3Vec(); extern "C" void __ml__4cXyzCFf(); extern "C" void normZP__4cXyzCFv(); extern "C" bool __eq__4cXyzCFRC3Vec(); extern "C" bool __ne__4cXyzCFRC3Vec(); extern "C" void cM_atan2s__Fff(); extern "C" u8 sincosTable___5JMath[65536]; // // Declarations: // /* 8026F93C-8026F95C 26A27C 0020+00 0/0 3/3 0/0 .text cLib_memCpy__FPvPCvUl */ void cLib_memCpy(void* dst, const void* src, unsigned long size) { memcpy(dst, src, size); } /* 8026F95C-8026F97C 26A29C 0020+00 0/0 4/4 0/0 .text cLib_memSet__FPviUl */ void cLib_memSet(void* ptr, int value, unsigned long size) { memset(ptr, value, size); } /* ############################################################################################## */ /* 804551E0-804551E8 0037E0 0004+04 9/9 0/0 0/0 .sdata2 @2262 */ SECTION_SDATA2 static f32 lit_2262[1 + 1 /* padding */] = { 0.0f, /* padding */ 0.0f, }; /* 8026F97C-8026FA3C 26A2BC 00C0+00 0/0 50/50 178/178 .text cLib_addCalc__FPfffff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 cLib_addCalc(f32* param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalc__FPfffff.s" } #pragma pop /* 8026FA3C-8026FA80 26A37C 0044+00 0/0 20/20 701/701 .text cLib_addCalc2__FPffff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cLib_addCalc2(f32* param_0, f32 param_1, f32 param_2, f32 param_3) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalc2__FPffff.s" } #pragma pop /* 8026FA80-8026FAB8 26A3C0 0038+00 0/0 2/2 322/322 .text cLib_addCalc0__FPfff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cLib_addCalc0(f32* param_0, f32 param_1, f32 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalc0__FPfff.s" } #pragma pop /* ############################################################################################## */ /* 804551E8-804551F0 0037E8 0008+00 7/7 0/0 0/0 .sdata2 @2379 */ SECTION_SDATA2 static f64 lit_2379 = 0.5; /* 804551F0-804551F8 0037F0 0008+00 7/7 0/0 0/0 .sdata2 @2380 */ SECTION_SDATA2 static f64 lit_2380 = 3.0; /* 804551F8-80455200 0037F8 0008+00 7/7 0/0 0/0 .sdata2 @2381 */ SECTION_SDATA2 static u8 lit_2381[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80455200-80455208 003800 0004+04 5/5 0/0 0/0 .sdata2 @2382 */ SECTION_SDATA2 static f32 lit_2382[1 + 1 /* padding */] = { 7.999999968033578e-11f, /* padding */ 0.0f, }; /* 8026FAB8-8026FDF4 26A3F8 033C+00 0/0 3/3 78/78 .text cLib_addCalcPos__FP4cXyzRC4cXyzfff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 cLib_addCalcPos(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3, f32 param_4) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalcPos__FP4cXyzRC4cXyzfff.s" } #pragma pop /* 8026FDF4-80270178 26A734 0384+00 0/0 1/1 4/4 .text cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm f32 cLib_addCalcPosXZ(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3, f32 param_4) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff.s" } #pragma pop /* 80270178-80270350 26AAB8 01D8+00 0/0 2/2 33/33 .text cLib_addCalcPos2__FP4cXyzRC4cXyzff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cLib_addCalcPos2(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalcPos2__FP4cXyzRC4cXyzff.s" } #pragma pop /* 80270350-80270540 26AC90 01F0+00 0/0 0/0 4/4 .text cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cLib_addCalcPosXZ2(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff.s" } #pragma pop /* 80270540-80270608 26AE80 00C8+00 0/0 81/81 244/244 .text cLib_addCalcAngleS__FPsssss */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm s16 cLib_addCalcAngleS(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalcAngleS__FPsssss.s" } #pragma pop /* 80270608-8027065C 26AF48 0054+00 0/0 2/2 849/849 .text cLib_addCalcAngleS2__FPssss */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cLib_addCalcAngleS2(s16* param_0, s16 param_1, s16 param_2, s16 param_3) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_addCalcAngleS2__FPssss.s" } #pragma pop /* 8027065C-802706D0 26AF9C 0074+00 0/0 3/3 14/14 .text cLib_chaseUC__FPUcUcUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int cLib_chaseUC(u8* param_0, u8 param_1, u8 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_chaseUC__FPUcUcUc.s" } #pragma pop /* 802706D0-80270740 26B010 0070+00 0/0 4/4 49/49 .text cLib_chaseS__FPsss */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int cLib_chaseS(s16* param_0, s16 param_1, s16 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_chaseS__FPsss.s" } #pragma pop /* 80270740-802707AC 26B080 006C+00 0/0 70/70 448/448 .text cLib_chaseF__FPfff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int cLib_chaseF(f32* param_0, f32 param_1, f32 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_chaseF__FPfff.s" } #pragma pop /* 802707AC-80270990 26B0EC 01E4+00 0/0 3/3 60/60 .text cLib_chasePos__FP4cXyzRC4cXyzf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int cLib_chasePos(cXyz* param_0, cXyz const& param_1, f32 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_chasePos__FP4cXyzRC4cXyzf.s" } #pragma pop /* 80270990-80270B90 26B2D0 0200+00 0/0 1/0 19/19 .text cLib_chasePosXZ__FP4cXyzRC4cXyzf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int cLib_chasePosXZ(cXyz* param_0, cXyz const& param_1, f32 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_chasePosXZ__FP4cXyzRC4cXyzf.s" } #pragma pop /* 80270B90-80270C04 26B4D0 0074+00 0/0 4/4 213/213 .text cLib_chaseAngleS__FPsss */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int cLib_chaseAngleS(s16* param_0, s16 param_1, s16 param_2) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_chaseAngleS__FPsss.s" } #pragma pop /* 80270C04-80270C3C 26B544 0038+00 0/0 39/39 454/454 .text cLib_targetAngleY__FPC3VecPC3Vec */ s16 cLib_targetAngleY(const Vec* lhs, const Vec* rhs) { return cM_atan2s(rhs->x - lhs->x, rhs->z - lhs->z); } /* 80270C3C-80270C74 26B57C 0038+00 0/0 0/0 7/7 .text cLib_targetAngleY__FRC3VecRC3Vec */ s16 cLib_targetAngleY(const Vec& lhs, const Vec& rhs) { return cM_atan2s(rhs.x - lhs.x, rhs.z - lhs.z); } /* 80270C74-80270DC0 26B5B4 014C+00 0/0 2/2 109/109 .text cLib_targetAngleX__FPC4cXyzPC4cXyz */ #ifdef NON_MATCHING s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) { // would match with all float literals cXyz diff = *param_1 - *param_0; f32 f1 = sqrtf(diff.getMagXZ()); return cM_atan2s(diff.GetY(), f1); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_targetAngleX__FPC4cXyzPC4cXyz.s" } #pragma pop #endif /* 80270DC0-80270E24 26B700 0064+00 0/0 2/2 118/118 .text cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cLib_offsetPos(cXyz* param_0, cXyz const* param_1, s16 param_2, cXyz const* param_3) { nofralloc #include "asm/SSystem/SComponent/c_lib/cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz.s" } #pragma pop /* 80270E24-80270E4C 26B764 0028+00 0/0 48/48 71/71 .text cLib_distanceAngleS__Fss */ s32 cLib_distanceAngleS(s16 x, s16 y) { return abs(static_cast(x - y)); } /* ############################################################################################## */ /* 80430DB8-80430F98 05DAD8 01E0+00 2/1 0/0 0/0 .bss mtx */ static Mtx mtx[10]; /* 80450768-80450770 -00001 0004+04 6/6 2/2 695/695 .sdata calc_mtx */ Mtx* calc_mtx = mtx; /* 80270E4C-80270E5C 26B78C 0010+00 0/0 1/1 0/0 .text MtxInit__Fv */ void MtxInit() { calc_mtx = mtx; } /* 80270E5C-80270EA4 26B79C 0048+00 0/0 0/0 43/43 .text MtxTrans__FfffUc */ void MtxTrans(f32 x_trans, f32 y_trans, f32 z_trans, u8 param_3) { if (param_3 == 0) { PSMTXTrans(*calc_mtx, x_trans, y_trans, z_trans); } else { Mtx mtx; PSMTXTrans(mtx, x_trans, y_trans, z_trans); PSMTXConcat(*calc_mtx, mtx, *calc_mtx); } } /* 80270EA4-80270EEC 26B7E4 0048+00 0/0 0/0 46/46 .text MtxScale__FfffUc */ void MtxScale(f32 x_trans, f32 y_trans, f32 z_trans, u8 param_3) { if (param_3 == 0) { PSMTXScale(*calc_mtx, x_trans, y_trans, z_trans); } else { Mtx mtx; PSMTXScale(mtx, x_trans, y_trans, z_trans); PSMTXConcat(*calc_mtx, mtx, *calc_mtx); } } /* 80270EEC-80270F1C 26B82C 0030+00 0/0 2/2 615/615 .text MtxPosition__FP4cXyzP4cXyz */ void MtxPosition(cXyz* src, cXyz* dest) { PSMTXMultVec(*calc_mtx, src, dest); } /* 80270F1C-80270F58 26B85C 003C+00 0/0 0/0 20/20 .text MtxPush__Fv */ void MtxPush() { Mtx mtx; PSMTXCopy(*calc_mtx, mtx); calc_mtx++; PSMTXCopy(mtx, *calc_mtx); } /* 80270F58-80270F68 26B898 0010+00 0/0 0/0 20/20 .text MtxPull__Fv */ Mtx* MtxPull() { return calc_mtx--; }