#ifndef Z_LIB_H #define Z_LIB_H #include "libc/stddef.h" #include "padmgr.h" #include "z64math.h" #include "color.h" void Lib_MemSet(u8* dest, size_t len, u8 val); f32 Math_CosS(s16 angle); f32 Math_SinS(s16 angle); s32 Math_ScaledStepToS(s16* pValue, s16 target, s16 step); s32 Math_StepToS(s16* pValue, s16 target, s16 step); s32 Math_StepToF(f32* pValue, f32 target, f32 step); s32 Math_StepUntilAngleS(s16* pValue, s16 limit, s16 step); s32 Math_StepUntilS(s16* pValue, s16 limit, s16 step); s32 Math_StepToAngleS(s16* pValue, s16 target, s16 step); s32 Math_StepUntilF(f32* pValue, f32 limit, f32 step); s32 Math_AsymStepToF(f32* pValue, f32 target, f32 incrStep, f32 decrStep); void Lib_GetControlStickData(f32* outMagnitude, s16* outAngle, Input* input); s16 Rand_S16Offset(s16 base, s16 range); void Math_Vec3f_Copy(Vec3f* dest, Vec3f* src); void Math_Vec3s_ToVec3f(Vec3f* dest, Vec3s* src); void Math_Vec3f_Sum(Vec3f* a, Vec3f* b, Vec3f* dest); void Math_Vec3f_Diff(Vec3f* a, Vec3f* b, Vec3f* dest); void Math_Vec3s_DiffToVec3f(Vec3f* dest, Vec3s* a, Vec3s* b); void Math_Vec3f_Scale(Vec3f* vec, f32 scaleF); f32 Math_Vec3f_DistXYZ(Vec3f* a, Vec3f* b); f32 Math_Vec3f_DistXYZAndStoreDiff(Vec3f* a, Vec3f* b, Vec3f* dest); f32 Math_Vec3f_DistXZ(Vec3f* a, Vec3f* b); s16 Math_Vec3f_Yaw(Vec3f* origin, Vec3f* point); s16 Math_Vec3f_Pitch(Vec3f* a, Vec3f* b); f32 Math_SmoothStepToF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep); void Math_ApproachF(f32* pValue, f32 target, f32 fraction, f32 step); void Math_ApproachZeroF(f32* pValue, f32 fraction, f32 step); f32 Math_SmoothStepToDegF(f32* pValue, f32 target, f32 fraction, f32 step, f32 minStep); s16 Math_SmoothStepToS(s16* pValue, s16 target, s16 scale, s16 step, s16 minStep); void Math_ApproachS(s16* pValue, s16 target, s16 scale, s16 step); void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src); void Sfx_PlaySfxCentered(u16 sfxId); void Sfx_PlaySfxCentered2(u16 sfxId); void Sfx_PlaySfxAtPos(Vec3f* projectedPos, u16 sfxId); #endif