Move and type PSVEC and PSMTX funcs and follow includes in functions.h (#68)

Co-authored-by: Pheenoh <pheenoh@gmail.com>
This commit is contained in:
lepelog 2021-01-05 18:32:20 +01:00 committed by GitHub
parent e9607ae760
commit 689d83dd23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 70 additions and 38 deletions

View File

@ -246,10 +246,7 @@ void mDoMtx_ZXYrotM(void);
void mDoMtx_YrotM(void);
void daAlink_c_NS_concatMagneBootMtx(void);
void mDoMtx_stack_c_NS_transS(void);
void PSMTXQuat(void);
void PSMTXInverse(void);
void mDoMtx_stack_c_NS_quatM(void);
void PSMTXTrans(void);
void daAlink_c_NS_checkUnderMove0BckNoArc(void);
void mDoMtx_QuatConcat(void);
void JMAEulerToQuat(void);
@ -277,7 +274,6 @@ void daAlink_c_NS_changeWolfBlendRate(void);
void daAlink_c_NS_setWolfFootMatrix(void);
bool wolfModelCallBack__9daAlink_cFi(int);
void cLib_addCalcAngleS2(void);
void PSMTXMultVec(void);
void daAlink_c_NS_getMoveBGActorName(void);
void daAlink_c_NS_multVecMagneBootInvMtx(void);
void cXyz_NS___ml(void);
@ -285,10 +281,8 @@ void cXyz_NS_atan2sY_XZ(void);
void cM_atan2s(void);
void cLib_distanceAngleS(void);
void cXyz_NS_atan2sX_Z(void);
void PSMTXMultVecSR(void);
void cXyz_NS___mi(void);
void dKyw_get_AllWind_vec(void);
void PSVECSquareMag(void);
void cLib_addCalcAngleS(void);
void cM_rndF(void);
void calcHairAngle__9daAlink_cFPs(short*);

View File

@ -1,3 +1,5 @@
#include "mtx_vec.h"
#include "mwcc.h"
#include "os/OS.h"
extern "C" {
@ -16,9 +18,6 @@ void read__10JUTGamePadFv(void);
void mDoCPd_c_NS_LRlockCheck(void);
void mDoRst_resetCallBack(void);
void J2DScreen_NS_draw(void);
void PSMTXCopy(void);
void PSMTXConcat(void);
void PSMTXScale(void);
void screenSet__12dFile_info_cFv(void);
void dFile_info_c_NS_screenSet(void);
void mDoExt_removeMesgFont(void);
@ -215,15 +214,11 @@ void update__Q210JUTGamePad7CRumbleFs(void);
void checkCallback__19JUTGamePadLongPressFlUl(void);
void checkResetCallback__10JUTGamePadFx(void);
void searchMapEventData__14dEvt_control_cFUc(void);
void PSMTXMultVec(void);
void mDoMtx_YrotS(void);
void cXyz_NS___mi(void);
void Yinit__9STControlFv(void);
void Xinit__9STControlFv(void);
void J2DScreen_NS_draw(void);
void PSMTXCopy(void);
void PSMTXConcat(void);
void PSMTXScale(void);
void screenSet__12dFile_info_cFv(void);
void dFile_info_c_NS_screenSet(void);
void mDoExt_removeMesgFont(void);
@ -611,7 +606,6 @@ void Z2Creature_NS_deleteObject(void);
void deleteKantera__14Z2CreatureLinkFv(void);
void Z2Creature_NS_init_X1_(void);
void Z2SoundObjBase_NS_deleteObject(void);
void PSVECSquareDistance(void);
void moveVolume__18JAISoundParamsMoveFfUl(void);
void Z2CreatureLink_NS_startLinkSoundLevel(void);
void Z2Creature_NS_framework(void);
@ -1142,14 +1136,12 @@ void mDoExt_bckAnm_NS_init(void);
void mDoExt_btkAnm_NS_entry(void);
void dAttList_c_NS_getActor(void);
void mDoExt_restoreCurrentHeap(void);
void PSMTXMultVec(void);
void mDoExt_modelUpdateDL(void);
void cSGlobe_X4_(void);
void dAttention_c_NS_setList(void);
void dAttLook_c_NS_convPId(void);
void dAttention_c_NS_lostCheck(void);
void dAttention_c_NS_getActionBtnXY(void);
void PSMTXInverse(void);
void cSAngle_X2_(void);
void fopAcIt_Judge(void);
void dAttHint_c_NS_convPId(void);
@ -1159,7 +1151,6 @@ void dAttention_c_NS_chaseAttention(void);
void dAttention_c_NS_setOwnerAttentionPos(void);
void check_flontofplayer(void);
void dRes_control_c_NS_getRes(void);
void PSVECSquareMag(void);
void dAttention_c_NS_initList(void);
void fopAcIt_Executor(void);
void dAttLook_c_NS_proc(void);
@ -1179,7 +1170,6 @@ void cSAngle_NS___mi_X2_(void);
void dAttention_c_NS_GetLockonList(void);
void dAttHint_c_NS_init(void);
// void dAttention_c(void);
void PSMTXTrans(void);
void dAttention_c_NS_makeList(void);
void mDoExt_bpkAnm_NS_entry(void);
void func_800738FC(void);
@ -2017,7 +2007,6 @@ void dBgS_NS_MoveBgCrrPos(void);
void daAlink_c_NS_procBottleGetInit(void);
void dEvent_manager_c_NS_getRunEventName(void);
void daAlink_c_NS_procBottleDrinkInit(void);
void PSVECSubtract(void);
void daAlink_c_NS_handBgCheck(void);
void cBgS_NS_GetBgWBasePointer(void);
void func_8013D86C(void);
@ -2345,7 +2334,6 @@ void daAlink_c_NS_setOldRootQuaternion(void);
void cXyz_NS_atan2sX_Z(void);
void daAlink_c_NS_getCopyRodCameraActor(void);
void dBgS_PolyPassChk_NS_ClrLink(void);
void PSVECDotProduct(void);
void daAlink_c_NS_resetFacePriAnime(void);
void dComIfGp_getHorseActor(void);
void func_8011F460(void);
@ -3345,7 +3333,6 @@ void func_8014188C(void);
void daAlink_c_NS_setSandShapeOffset(void);
void daAlink_c_NS_procWolfLieMoveInit(void);
void daAlink_c_NS_checkLightSwordMtrl(void);
void PSMTXRotAxisRad(void);
void daAlink_c_NS_procWolfDownAtMissLandInit(void);
void daAlink_c_NS_procCanoeFishingReelInit(void);
void dPaneClass_showNullPane(void);
@ -3354,7 +3341,6 @@ void func_801417E8(void);
void cXyz_NS_outprod(void);
void func_800CF344(void);
void daAlink_c_NS_setSwordPushAnime(void);
void PSMTXMultVec(void);
void dRes_control_c_NS_getRes_X1_(void);
void func_800F194C(void);
void cLib_memCpy(void);
@ -3409,7 +3395,6 @@ void dCcD_GObjInf_NS_ChkTgHit(void);
void daAlink_c_NS_resetFacePriBck(void);
void daAlink_c_NS_procWolfDigInit(void);
void daAlink_c_NS_throwCopyRod(void);
void PSMTXMultVecSR(void);
void func_801416B0(void);
void daAlink_c_NS_getPushPullAnimeSpeed(void);
void func_800D6484(void);
@ -3538,7 +3523,6 @@ void daAlink_c_NS_procGrabReadyInit(void);
void dComIfGp_getEventManager(void);
void daAlink_c_NS_getGrabThrowRate(void);
void func_801417C8(void);
void PSVECSquareMag(void);
void func_8012D3E4(void);
void daAlink_c_NS_checkItemActionInitStart(void);
void daAlink_c_NS_checkMidnaLockJumpPoint(void);
@ -3648,7 +3632,6 @@ void func_801416E0(void);
void dEvent_manager_c_NS_getMyStaffId(void);
void daAlink_c_NS_checkRoofHangMovePos(void);
void daAlink_c_NS_setFootSpeed(void);
void PSVECScale(void);
void daPy_frameCtrl_c_NS_updateFrame(void);
void cCcD_ObjCo_NS_SetIGrp(void);
void daAlink_c_NS_checkAtnRightAnime(void);
@ -3695,7 +3678,6 @@ void daAlink_c_NS_setWolfLieMoveVoice(void);
void dBgS_ArrowLinChk(void);
void daAlink_c_NS_throwBoomerang(void);
void daAlink_c_NS_setWolfAtCollision(void);
void PSMTXInverse(void);
void func_8011CB20(void);
void daAlink_c_NS_hookshotRoofTurn(void);
void func_8014174C(void);
@ -3706,7 +3688,6 @@ void daAlink_c_NS_procFmChainUpInit(void);
void dComIfGp_att_getCatghTarget(void);
void daAlink_c_NS_procCutTurnMoveInit(void);
void dCcD_Sph_NS_StartCAt(void);
void PSMTXTrans(void);
void daAlink_c_NS_resetOilBottleModel(void);
void daAlink_c_NS_procSumouWinLoseInit(void);
void func_80126350(void);
@ -4624,7 +4605,6 @@ void dKy_set_bgcol_ratio(void);
void dKy_GxFog_set(void);
void GXSetZCompLoc(void);
void dKyr_moon_arrival_check(void);
void PSVECAdd(Vec*, Vec*, Vec*);
void dKy_set_vrboxcol_ratio(void);
void func_8036C590(void);
void dBgS_CamGndChk_Wtr_NS_dtor(void);
@ -4652,7 +4632,6 @@ void vectle_calc_X1_(void);
void dKy_vrbox_addcol_sky0_set(void);
void dKy_efplight_set(void);
void dKy_set_actcol_ratio(void);
void PSMTXRotRad(void);
void daPy_py_c_NS_checkNowWolfEyeUp(void);
void dKyr_near_bosslight_check(void);
void dKy_rain_check(void);
@ -4666,7 +4645,6 @@ void Z2EnvSeMgr_NS_startNearThunderSe(void);
void dKr_cullVtx_Set(void);
void overhead_bg_chk(void);
void func_8036C028(void);
void C_MTXLightPerspective(void);
void cM3d_VectorProduct2d(void);
void dCcMassS_Mng_NS_Prepare(void);
}
@ -5026,7 +5004,6 @@ void dCamera_c_NS_dCamInfo_c_NS_dtor(void);
void dCamera_c_NS_footHeightOf(void);
void dCamParam_c(void);
void dCamParam_c_NS_Arg2_X1_(void);
void PSVECCrossProduct(void);
void cSGlobe_NS___as(void);
void dBgS_CamSphChk_NS_dtor(void);
void dCamera_c_NS_EventRecoverNotime(void);
@ -5089,7 +5066,6 @@ void func_80180AA8(void);
void func_8017D97C(void);
void daPy_py_c_NS_getRightHandPos(void);
void dCam_getCamera(void);
void C_MTXPerspective(void);
void func_80180B40(void);
void func_8017DFAC(void);
void dCamera_c_NS_updateMonitor(void);

View File

@ -8,10 +8,6 @@
// Align X to the next N bytes (N must be power of two)
#define ALIGN_NEXT(X, N) ALIGN_PREV(((X) + (N)-1), N)
struct Vec {
float x, y, z;
};
#define JUT_ASSERT(...)
#define ASSERT(...)

61
include/mtx_vec.h Normal file
View File

@ -0,0 +1,61 @@
#ifndef __MTX_VEC_H_
#define __MTX_VEC_H_
#include "dolphin/types.h"
struct Vec {
float x, y, z;
};
struct Quaternion {
float x, y, z, w;
};
struct Mtx {
float data[3][4];
};
extern "C" {
void PSMTXIdentity(Mtx* matrix);
void PSMTXCopy(Mtx* src, Mtx* dst);
void PSMTXConcat(Mtx* src_a, Mtx* src_b, Mtx* dst);
u32 PSMTXInverse(Mtx* src, Mtx* dst);
void PSMTXRotRad(Mtx* matrix, u8 axis, float rad);
void PSMTXRotTrig(Mtx* matrix, u8 axis, float sin, float cos);
double __PSMTXRotAxisRadInternal(double param_1, double param_2, int param_3, int param_4);
void PSMTXRotAxisRad(Mtx* matrix, Vec* axis, float rad);
void PSMTXTrans(Mtx* matrix, float x_trans, float y_trans, float z_trans);
void PSMTXTransApply(Mtx* src, Mtx* dst, float x, float y, float z);
void PSMTXScale(Mtx* matrix, float x_scale, float y_scale, float z_scale);
void PSMTXScaleApply(Mtx* src, Mtx* dst, float x_scale, float y_scale, float z_scale);
void PSMTXQuat(Mtx* matrix, Quaternion* quat);
void C_MTXLookAt(float* param_1, float* param_2, Vec* param_3, float* param_4);
void C_MTXLightPerspective(Mtx* matrix, float fov_y, float aspect, float scale_s, float scale_t,
float trans_s, float trans_t);
void C_MTXLightOrtho(Mtx* matrix, float top, float bottom, float left, float right, float scale_s,
float scale_t, float trans_s, float trans_t);
void PSMTXMultVec(Mtx* matrix, Vec* src, Vec* dst);
void PSMTXMultVecArray(Mtx* matrix, Vec* src, Vec* dst, u32 count);
void PSMTXMultVecSR(Mtx* matrix, Vec* src, Vec* dst);
void PSMTXMultVecArraySR(Mtx* matrix, Vec* src, Vec* dst, u32 count);
void C_MTXPerspective(Mtx* matrix, float fov_y, float aspect, float near, float far);
void C_MTXOrtho(Mtx* matrix, float top, float bottom, float left, float right, float near,
float far);
void PSVECAdd(Vec* src_a, Vec* src_b, Vec* dst);
void PSVECSubtract(Vec* a, Vec* b, Vec* dst);
void PSVECScale(Vec* src, Vec* dst, float scale);
void PSVECNormalize(Vec* src, Vec* dst);
float PSVECSquareMag(Vec* vec);
float PSVECMag(Vec* data);
float PSVECDotProduct(Vec* a, Vec* b);
void PSVECCrossProduct(Vec* src_a, Vec* src_b, Vec* dst);
void C_VECHalfAngle(Vec* incident, Vec* line_of_sight, Vec* out_half);
void C_VECReflect(Vec* src, Vec* surface_normal, Vec* dst);
float PSVECSquareDistance(Vec* a, Vec* b);
float PSVECDistance(Vec* a, Vec* b);
void PSQUATMultiply(Quaternion* src_a, Quaternion* src_b, Quaternion* dst);
void C_QUATRotAxisRad(Quaternion* quat, Vec* axis, float rad);
void C_QUATSlerp(Quaternion* p, Quaternion* q, Quaternion* r, float t);
}
#endif

View File

@ -133,7 +133,7 @@ def emit_cxx_extern_fns(tu_file: str, labels: Iterable[str]) -> str:
def decl(label):
return f'void {label}(void);'
defs = '\n '.join(decl(label) for label in labels)
defs = '\n '.join(decl(label) for label in sorted(labels))
return (
f'// additional symbols needed for {tu_file}\n'
@ -150,7 +150,7 @@ def emit_cxx_extern_vars(tu_file: str, labels: Iterable[str]) -> str:
return (
f'// additional symbols needed for {tu_file}\n'
f'// autogenerated by split.py {__version__} at {datetime.utcnow()}\n'
+ '\n'.join(decl(label) for label in labels)
+ '\n'.join(decl(label) for label in sorted(labels))
+ '\n'
)
@ -220,6 +220,11 @@ def split(
extern_funcs_src = extern_functions_file.read_text()
extern_vars_src = extern_variables_file.read_text()
include_re = re.compile(r'#include "(.*)"')
for include in include_re.findall(extern_funcs_src):
extern_funcs_src += (Path('include') / include).read_text()
logger.info('parsing map file')
framework_map = parse_framework_map(framework_map_file)
logger.debug(f'loaded {len(framework_map)} symbols from map')