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>
75inline T cLib_minLimit(T val, T min) {
76 T ret;
77
78 if (val < min) {
79 ret = min;
80 } else {
81 ret = val;
82 }
83
84 return (T)ret;
85}
86
87template <typename T>
88T cLib_getRndValue(T min, T range) {
89 return (T)(min + cM_rndF((f32)range));
90}
91
92template <typename T>
93T cLib_calcTimer(T* value) {
94 if (*(T*)value != 0) {
95 --*value;
96 }
97 return *value;
98}
99
100void MtxInit(void);
101void MtxTrans(f32, f32, f32, u8);
102void MtxScale(f32, f32, f32, u8);
103void MtxPosition(cXyz*, cXyz*);
104void MtxPush(void);
105Mtx* MtxPull(void);
106
107extern Mtx* calc_mtx;
108
109#endif
static int min(int a, int b)
Definition JHIComm.cpp:155
Mtx * MtxPull(void)
Definition c_lib.cpp:533
Mtx * calc_mtx
Definition c_lib.cpp:488
void cLib_memSet(void *ptr, int value, unsigned long size)
Definition c_lib.cpp:26
int cLib_chasePosXZ(cXyz *o_value, cXyz const &target, f32 step)
Definition c_lib.cpp:390
void MtxInit(void)
Definition c_lib.cpp:493
s32 cLib_distanceAngleS(s16 x, s16 y)
Definition c_lib.cpp:482
s16 cLib_addCalcAngleS(s16 *o_value, s16 target, s16 scale, s16 maxStep, s16 minStep)
Definition c_lib.cpp:234
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:16
void cLib_addCalcPosXZ2(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep)
Definition c_lib.cpp:210
void MtxPush(void)
Definition c_lib.cpp:526
int cLib_chaseUC(u8 *o_value, u8 target, u8 step)
Definition c_lib.cpp:292
int cLib_chaseS(s16 *o_value, s16 target, s16 step)
Definition c_lib.cpp:322
void cLib_addCalc2(f32 *o_value, f32 target, f32 scale, f32 maxStep)
Definition c_lib.cpp:83
T cLib_minMaxLimit(T val, T min, T max)
Definition c_lib.h:55
void MtxTrans(f32, f32, f32, u8)
Definition c_lib.cpp:497
void MtxPosition(cXyz *, cXyz *)
Definition c_lib.cpp:522
void cLib_offsetPos(cXyz *pDest, cXyz const *pSrc, s16 angle, cXyz const *vec)
Definition c_lib.cpp:468
void MtxScale(f32, f32, f32, u8)
Definition c_lib.cpp:507
T cLib_calcTimer(T *value)
Definition c_lib.h:93
int cLib_chasePos(cXyz *o_value, cXyz const &target, f32 step)
Definition c_lib.cpp:368
s16 cLib_targetAngleY(const Vec *lhs, const Vec *rhs)
Definition c_lib.cpp:435
f32 cLib_addCalcPosXZ(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep, f32 minStep)
Definition c_lib.cpp:156
T cLib_minLimit(T val, T min)
Definition c_lib.h:75
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:122
void cLib_addCalcPos2(cXyz *o_value, cXyz const &target, f32 scale, f32 maxStep)
Definition c_lib.cpp:191
int cLib_chaseAngleS(s16 *o_value, s16 target, s16 step)
Definition c_lib.cpp:413
bool cLib_IsZero(f32 value)
Definition c_lib.h:8
T cLib_getRndValue(T min, T range)
Definition c_lib.h:88
s16 cLib_targetAngleX(const cXyz *, const cXyz *)
Definition c_lib.cpp:455
f32 cLib_addCalc(f32 *o_value, f32 target, f32 scale, f32 maxStep, f32 minStep)
Definition c_lib.cpp:40
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:102
void cLib_addCalcAngleS2(s16 *o_value, s16 target, s16 scale, s16 maxStep)
Definition c_lib.cpp:273
int cLib_chaseF(f32 *o_value, f32 target, f32 step)
Definition c_lib.cpp:345
f32 cM_rndF(f32 max)
Definition c_math.cpp:194
static void * target
Definition d_a_npc_cd2.cpp:1780
f32 Mtx[3][4]
Definition mtx.h:25
const void * src
Definition __os.h:116
unsigned int size
Definition __os.h:106
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
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:52
Definition mtx.h:13
Definition c_xyz.h:7