Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
c_lib.h
Go to the documentation of this file.
1#ifndef C_LIB_H_
2#define C_LIB_H_
3
5#include "dolphin/mtx.h"
7
8inline bool cLib_IsZero(f32 value) {
9 return fabsf(value) < 8e-11f;
10}
11
12void cLib_memCpy(void* dst, const void* src, unsigned long size);
13void cLib_memSet(void* ptr, int value, unsigned long size);
14
15f32 cLib_addCalc(f32* o_value, f32 target, f32 scale, f32 maxStep, f32 minStep);
16void cLib_addCalc2(f32* o_value, f32 target, f32 scale, f32 maxStep);
17void cLib_addCalc0(f32* o_value, f32 scale, f32 maxStep);
18f32 cLib_addCalcPos(cXyz* o_value, cXyz const& target, f32 scale, f32 maxStep, f32 minStep);
19f32 cLib_addCalcPosXZ(cXyz* o_value, cXyz const& target, f32 scale, f32 maxStep, f32 minStep);
20void cLib_addCalcPos2(cXyz* o_value, cXyz const& target, f32 scale, f32 maxStep);
21void cLib_addCalcPosXZ2(cXyz* o_value, cXyz const& target, f32 scale, f32 maxStep);
22s16 cLib_addCalcAngleS(s16* o_value, s16 target, s16 scale, s16 maxStep, s16 minStep);
23void cLib_addCalcAngleS2(s16* o_value, s16 target, s16 scale, s16 maxStep);
24
25int cLib_chaseUC(u8* o_value, u8 target, u8 step);
26int cLib_chaseS(s16* o_value, s16 target, s16 step);
27int cLib_chaseF(f32* o_value, f32 target, f32 step);
28int cLib_chasePos(cXyz* o_value, cXyz const& target, f32 step);
29int cLib_chasePosXZ(cXyz* o_value, cXyz const& target, f32 step);
30int cLib_chaseAngleS(s16* o_value, s16 target, s16 step);
31
32s16 cLib_targetAngleY(const Vec* lhs, const Vec* rhs);
33s16 cLib_targetAngleY(const Vec& lhs, const Vec& rhs);
34s16 cLib_targetAngleX(const cXyz*, const cXyz*);
35
36void cLib_offsetPos(cXyz* pDest, cXyz const* pSrc, s16 angle, cXyz const* vec);
38
39template <typename T>
40inline void cLib_offBit(T& value, T bit) {
41 value = (T)(value & ~bit);
42}
43
44template <typename T>
45inline void cLib_onBit(T& value, T bit) {
46 value = (T)(value | bit);
47}
48
49template <typename T>
50inline T cLib_checkBit(T value, T bit) {
51 return (T)(value & bit);
52}
53
54template <typename T>
55inline T cLib_minMaxLimit(T val, T min, T max) {
56 return (T)(val < min ? min : (val > max ? max : val));
57}
58
59template <typename T>
60inline T cLib_maxLimit(T val, T max) {
61 T ret;
62 T var_r30;
63
64 if (val > max) {
65 var_r30 = max;
66 } else {
67 var_r30 = val;
68 }
69
70 ret = var_r30;
71 return (T)ret;
72}
73
74template <typename T>
75T cLib_getRndValue(T min, T range) {
76 return (T)(min + cM_rndF((f32)range));
77}
78
79template <typename T>
80T cLib_calcTimer(T* value) {
81 if (*(T*)value != 0) {
82 *value = *value - 1;
83 }
84 return *value;
85}
86
87void MtxInit(void);
88void MtxTrans(f32, f32, f32, u8);
89void MtxScale(f32, f32, f32, u8);
90void MtxPosition(cXyz*, cXyz*);
91void MtxPush(void);
92Mtx* MtxPull(void);
93
94extern Mtx* calc_mtx;
95
96#endif
static int min(int a, int b)
Definition JHIComm.cpp:156
const void * src
Definition __os.h:116
unsigned int size
Definition __os.h:106
Mtx * MtxPull(void)
Definition c_lib.cpp:564
Mtx * calc_mtx
Definition c_lib.cpp:513
void cLib_memSet(void *ptr, int value, unsigned long size)
Definition c_lib.cpp:28
int cLib_chasePosXZ(cXyz *o_value, cXyz const &target, f32 step)
Definition c_lib.cpp:406
void MtxInit(void)
Definition c_lib.cpp:519
s32 cLib_distanceAngleS(s16 x, s16 y)
Definition c_lib.cpp:505
s16 cLib_addCalcAngleS(s16 *o_value, s16 target, s16 scale, s16 maxStep, s16 minStep)
Definition c_lib.cpp:243
T cLib_checkBit(T value, T bit)
Definition c_lib.h:50
void cLib_memCpy(void *dst, const void *src, unsigned long size)
Definition c_lib.cpp:17
void cLib_addCalcPosXZ2(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep)
Definition c_lib.cpp:217
void MtxPush(void)
Definition c_lib.cpp:556
int cLib_chaseUC(u8 *o_value, u8 target, u8 step)
Definition c_lib.cpp:303
int cLib_chaseS(s16 *o_value, s16 target, s16 step)
Definition c_lib.cpp:334
void cLib_addCalc2(f32 *o_value, f32 target, f32 scale, f32 maxStep)
Definition c_lib.cpp:85
T cLib_minMaxLimit(T val, T min, T max)
Definition c_lib.h:55
void MtxTrans(f32, f32, f32, u8)
Definition c_lib.cpp:524
void MtxPosition(cXyz *, cXyz *)
Definition c_lib.cpp:551
void cLib_offsetPos(cXyz *pDest, cXyz const *pSrc, s16 angle, cXyz const *vec)
Definition c_lib.cpp:490
void MtxScale(f32, f32, f32, u8)
Definition c_lib.cpp:535
T cLib_calcTimer(T *value)
Definition c_lib.h:80
int cLib_chasePos(cXyz *o_value, cXyz const &target, f32 step)
Definition c_lib.cpp:382
s16 cLib_targetAngleY(const Vec *lhs, const Vec *rhs)
Definition c_lib.cpp:453
f32 cLib_addCalcPosXZ(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep, f32 minStep)
Definition c_lib.cpp:161
void cLib_onBit(T &value, T bit)
Definition c_lib.h:45
f32 cLib_addCalcPos(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep, f32 minStep)
Definition c_lib.cpp:126
void cLib_addCalcPos2(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep)
Definition c_lib.cpp:197
int cLib_chaseAngleS(s16 *o_value, s16 target, s16 step)
Definition c_lib.cpp:430
bool cLib_IsZero(f32 value)
Definition c_lib.h:8
T cLib_getRndValue(T min, T range)
Definition c_lib.h:75
s16 cLib_targetAngleX(const cXyz *, const cXyz *)
Definition c_lib.cpp:475
f32 cLib_addCalc(f32 *o_value, f32 target, f32 scale, f32 maxStep, f32 minStep)
Definition c_lib.cpp:43
T cLib_maxLimit(T val, T max)
Definition c_lib.h:60
void cLib_offBit(T &value, T bit)
Definition c_lib.h:40
void cLib_addCalc0(f32 *o_value, f32 scale, f32 maxStep)
Definition c_lib.cpp:105
void cLib_addCalcAngleS2(s16 *o_value, s16 target, s16 scale, s16 maxStep)
Definition c_lib.cpp:283
int cLib_chaseF(f32 *o_value, f32 target, f32 step)
Definition c_lib.cpp:358
float cM_rndF(float max)
Definition c_math.cpp:203
static void * target
Definition d_a_npc_cd2.cpp:1908
static u8 angle[2+2]
Definition d_a_obj_kago.cpp:845
double x double x
Definition e_atan2.c:58
double x double y
Definition e_atan2.c:58
static const double T[]
Definition k_tan.c:106
float fabsf(float f)
Definition math.h:42
f32 Mtx[3][4]
Definition mtx.h:22
Definition d_a_hozelda.cpp:18
Definition d_a_hozelda.cpp:20
signed short int s16
Definition types.h:6
float f32
Definition types.h:22
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5