Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
angle_utils.h
Go to the documentation of this file.
1
#ifndef _ANGLE_UTILS_H_
2
#define _ANGLE_UTILS_H_
3
4
#include "
global.h
"
5
#include "types.h"
6
7
#define VAR_ADD(x, y) ((x) += (y))
8
#define VAR_SUB(x, y) ((x) -= (y))
9
#define VAR_MULT(x, y) ((x) *= (y))
10
11
#define VAR_ADD_CAST(x, y, t) ((x) += (t)(y))
12
#define VAR_SUB_CAST(x, y, t) ((x) -= (t)(y))
13
#define VAR_MULT_CAST(x, y, t) ((x) *= (t)(y))
14
15
#define S8_ADD(x, y) VAR_ADD_CAST(x, y, s8)
16
#define U8_ADD(x, y) VAR_ADD_CAST(x, y, u8)
17
#define S16_ADD(x, y) VAR_ADD_CAST(x, y, s16)
18
#define U16_ADD(x, y) VAR_ADD_CAST(x, y, u16)
19
#define S32_ADD(x, y) VAR_ADD_CAST(x, y, s32)
20
#define U32_ADD(x, y) VAR_ADD_CAST(x, y, u32)
21
22
#define S8_SUB(x, y) VAR_SUB_CAST(x, y, s8)
23
#define U8_SUB(x, y) VAR_SUB_CAST(x, y, u8)
24
#define S16_SUB(x, y) VAR_SUB_CAST(x, y, s16)
25
#define U16_SUB(x, y) VAR_SUB_CAST(x, y, u16)
26
#define S32_SUB(x, y) VAR_SUB_CAST(x, y, s32)
27
#define U32_SUB(x, y) VAR_SUB_CAST(x, y, u32)
28
29
#define S8_MULT(x, y) VAR_MULT_CAST(x, y, s8)
30
#define U8_MULT(x, y) VAR_MULT_CAST(x, y, u8)
31
#define S16_MULT(x, y) VAR_MULT_CAST(x, y, s16)
32
#define U16_MULT(x, y) VAR_MULT_CAST(x, y, u16)
33
#define S32_MULT(x, y) VAR_MULT_CAST(x, y, s32)
34
#define U32_MULT(x, y) VAR_MULT_CAST(x, y, u32)
35
36
#define ANGLE_ADD S16_ADD
37
#define ANGLE_SUB S16_SUB
38
#define ANGLE_MULT S16_MULT
39
40
// There are some angles that weren't sign-extended until the shield version
41
#if !PLATFORM_SHIELD
42
#define S8_ADD_2 VAR_ADD
43
#define U8_ADD_2 VAR_ADD
44
#define S16_ADD_2 VAR_ADD
45
#define U16_ADD_2 VAR_ADD
46
#define S32_ADD_2 VAR_ADD
47
#define U32_ADD_2 VAR_ADD
48
49
#define S8_SUB_2 VAR_SUB
50
#define U8_SUB_2 VAR_SUB
51
#define S16_SUB_2 VAR_SUB
52
#define U16_SUB_2 VAR_SUB
53
#define S32_SUB_2 VAR_SUB
54
#define U32_SUB_2 VAR_SUB
55
56
#define S8_MULT_2 VAR_MULT
57
#define U8_MULT_2 VAR_MULT
58
#define S16_MULT_2 VAR_MULT
59
#define U16_MULT_2 VAR_MULT
60
#define S32_MULT_2 VAR_MULT
61
#define U32_MULT_2 VAR_MULT
62
#else
63
#define S8_ADD_2 S8_ADD
64
#define U8_ADD_2 U8_ADD
65
#define S16_ADD_2 S16_ADD
66
#define U16_ADD_2 U16_ADD
67
#define S32_ADD_2 S32_ADD
68
#define U32_ADD_2 U32_ADD
69
70
#define S8_SUB_2 S8_SUB
71
#define U8_SUB_2 U8_SUB
72
#define S16_SUB_2 S16_SUB
73
#define U16_SUB_2 U16_SUB
74
#define S32_SUB_2 S32_SUB
75
#define U32_SUB_2 U32_SUB
76
77
#define S8_MULT_2 S8_MULT
78
#define U8_MULT_2 U8_MULT
79
#define S16_MULT_2 S16_MULT
80
#define U16_MULT_2 U16_MULT
81
#define S32_MULT_2 S32_MULT
82
#define U32_MULT_2 U32_MULT
83
#endif
84
85
#define ANGLE_ADD_2 S16_ADD_2
86
#define ANGLE_SUB_2 S16_SUB_2
87
#define ANGLE_MULT_2 S16_MULT_2
88
89
#endif
// !_ANGLE_UTILS_H_
global.h
include
angle_utils.h
Generated by
1.12.0