#ifndef __FRAME_INTERPOLATION_H #define __FRAME_INTERPOLATION_H // #include "sf64math.h" #include #include #ifdef __cplusplus #include std::unordered_map FrameInterpolation_Interpolate(float step); extern "C" { #endif #define TAG_ITEM_ADDR(x) ((u32) 0x10000000 | (u32)x) #define TAG_SMOKE_DUST(x) ((u32) 0x20000000 | (u32) (x)) #define TAG_LETTER(x) ((u32)0x30000000 | (u32) (x)) #define TAG_OBJECT(x) ((u32)0x40000000 | (u32)(x)) void FrameInterpolation_ShouldInterpolateFrame(bool shouldInterpolate); void FrameInterpolation_StartRecord(void); void FrameInterpolation_StopRecord(void); void FrameInterpolation_RecordMarker(const char* file, int line); void FrameInterpolation_RecordOpenChild(const void* a, int b); void FrameInterpolation_RecordCloseChild(void); void FrameInterpolation_DontInterpolateCamera(void); int FrameInterpolation_GetCameraEpoch(void); void FrameInterpolation_RecordActorPosRotMatrix(void); void FrameInterpolation_RecordMatrixPosRotXYZ(Mat4 out, Vec3f pos, Vec3s orientation); void FrameInterpolation_RecordMatrixPush(Mat4* matrix); void FrameInterpolation_RecordMatrixPop(Mat4* matrix); //void FrameInterpolation_RecordMatrixMult(Matrix* matrix, MtxF* mf, u8 mode); void FrameInterpolation_RecordMatrixMultKart(f32* outX, f32* outY, f32* outZ, f32 inX, f32 inY, f32 inZ, u16 theta, u16 phi); void FrameInterpolation_RecordMatrixTranslate(Mat4* matrix, Vec3f b); //void FrameInterpolation_RecordMatrixScale(Matrix* matrix, f32 x, f32 y, f32 z, u8 mode); void FrameInterpolation_RecordMatrixRotate1Coord(Mat4* matrix, u32 coord, s16 value); void FrameInterpolation_RecordMatrixMtxFToMtx(MtxF* src, Mtx* dest); void FrameInterpolation_RecordMatrixToMtx(Mtx* dest, char* file, s32 line); void FrameInterpolation_RecordMatrixReplaceRotation(MtxF* mf); //void FrameInterpolation_RecordMatrixRotateAxis(f32 angle, Vec3f* axis, u8 mode); void FrameInterpolation_RecordSkinMatrixMtxFToMtx(MtxF* src, Mtx* dest); //void FrameInterpolation_RecordMatrixMultVec3f(Matrix* matrix, Vec3f src, Vec3f dest); //void FrameInterpolation_RecordMatrixMultVec3fNoTranslate(Matrix* matrix, Vec3f src, Vec3f dest); #ifdef __cplusplus } #endif #endif // __FRAME_INTERPOLATION_H