summaryrefslogtreecommitdiff
path: root/src/d/d_pad_ex.cpp
blob: 8fd5d7111bff585b308cc2179458975b38896c7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
#include "common.h"
#include "d/d_pad.h"
#include "egg/core/eggController.h"
#include "m/m_angle.h"
#include "m/m_pad.h"
#include "m/m_vec.h"

namespace dPad {

void fn_80059620() {
    return;
}

void fn_80059630() {
    return;
}

void fn_80059640() {
    return;
}

void fn_80059650() {
    return;
}

// GET DOWN TRIG

bool getDownTrig(u32 btns) {
    return mPad::g_currentCore->downTrigger(btns);
}

bool getDownTrigA() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_A);
}

bool getDownTrigB() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_B);
}

bool getDownTrigC() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_C);
}

bool getDownTrigZ() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_Z);
}

bool getDownTrigUp() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_UP);
}

bool getDownTrigDown() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_DOWN);
}

bool getDownTrigLeft() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_LEFT);
}

bool getDownTrigRight() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_RIGHT);
}

bool getDownTrig1() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_1);
}

bool getDownTrig2() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_2);
}

bool getDownTrigMinus() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_MINUS);
}

bool getDownTrigPlus() {
    return mPad::g_currentCore->downTrigger(mPad::BUTTON_PLUS);
}

// GET DOWN

bool getDown(u32 btns) {
    return mPad::g_currentCore->down(btns);
}
bool getDownAll(u32 btns) {
    return mPad::g_currentCore->downAll(btns);
}
bool getDownA() {
    return mPad::g_currentCore->down(mPad::BUTTON_A);
}
bool getDownB() {
    return mPad::g_currentCore->down(mPad::BUTTON_B);
}
bool getDownC() {
    return mPad::g_currentCore->down(mPad::BUTTON_C);
}
bool getDownZ() {
    return mPad::g_currentCore->down(mPad::BUTTON_Z);
}
bool getDownUp() {
    return mPad::g_currentCore->down(mPad::BUTTON_UP);
}
bool getDownDown() {
    return mPad::g_currentCore->down(mPad::BUTTON_DOWN);
}
bool getDownLeft() {
    return mPad::g_currentCore->down(mPad::BUTTON_LEFT);
}
bool getDownRight() {
    return mPad::g_currentCore->down(mPad::BUTTON_RIGHT);
}
bool getDown1() {
    return mPad::g_currentCore->down(mPad::BUTTON_1);
}
bool getDown2() {
    return mPad::g_currentCore->down(mPad::BUTTON_2);
}
bool getDownMinus() {
    return mPad::g_currentCore->down(mPad::BUTTON_MINUS);
}
bool getDownPlus() {
    return mPad::g_currentCore->down(mPad::BUTTON_PLUS);
}

// GET UP TRIG

bool getUpTrig(u32 btns) {
    return mPad::g_currentCore->upTrigger(btns);
}
bool getUpTrigA() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_A);
}
bool getUpTrigB() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_B);
}
bool getUpTrigC() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_C);
}
bool getUpTrigZ() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_Z);
}
bool getUpTrigUp() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_UP);
}
bool getUpTrigDown() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_DOWN);
}
bool getUpTrigLeft() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_LEFT);
}
bool getUpTrigRight() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_RIGHT);
}
bool getUpTrig1() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_1);
}
bool getUpTrig2() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_2);
}
bool getUpTrigMinus() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_MINUS);
}
bool getUpTrigPlus() {
    return mPad::g_currentCore->upTrigger(mPad::BUTTON_PLUS);
}

// GET UP

bool getUp(u32 btns) {
    return mPad::g_currentCore->up(btns);
}
bool getUpAll(u32 btns) {
    return mPad::g_currentCore->upAll(btns);
}
bool getUpA() {
    return mPad::g_currentCore->up(mPad::BUTTON_A);
}
bool getUpB() {
    return mPad::g_currentCore->up(mPad::BUTTON_B);
}
bool getUpC() {
    return mPad::g_currentCore->up(mPad::BUTTON_C);
}
bool getUpZ() {
    return mPad::g_currentCore->up(mPad::BUTTON_Z);
}
bool getUpUp() {
    return mPad::g_currentCore->up(mPad::BUTTON_UP);
}
bool getUpDown() {
    return mPad::g_currentCore->up(mPad::BUTTON_DOWN);
}
bool getUpLeft() {
    return mPad::g_currentCore->up(mPad::BUTTON_LEFT);
}
bool getUpRight() {
    return mPad::g_currentCore->up(mPad::BUTTON_RIGHT);
}
bool getUp1() {
    return mPad::g_currentCore->up(mPad::BUTTON_1);
}
bool getUp2() {
    return mPad::g_currentCore->up(mPad::BUTTON_2);
}
bool getUpMinus() {
    return mPad::g_currentCore->up(mPad::BUTTON_MINUS);
}
bool getUpPlus() {
    return mPad::g_currentCore->up(mPad::BUTTON_PLUS);
}

mVec2_c &getDpdPos() {
    return ex_c::m_current_ex->mDpdPos;
}
mVec2_c &getDpdPosScreen() {
    return ex_c::m_current_ex->mDpdPosScreen;
}
mVec2_c &getFSStick() {
    return ex_c::m_current_ex->mFSStick;
}
f32 getFSStickX() {
    return ex_c::m_current_ex->mFSStick.x;
}
f32 getFSStickY() {
    return ex_c::m_current_ex->mFSStick.y;
}
f32 getFSStickDistance() {
    return ex_c::m_current_ex->mFSStickDistance;
}
mAng getFSStickAngle() {
    return ex_c::m_current_ex->mFSStickAngle;
}
mVec3_c getAcc() {
    const EGG::CoreStatus *status = mPad::g_currentCore->getCoreStatus();
    return mVec3_c(status->acc.x, status->acc.y, status->acc.z);
}

u32 fn_80059B750() {
    return ex_c::getInstance()->mMotion.field_0x10C8 >> 0 & 1;
}
u32 fn_80059B760() {
    return ex_c::getInstance()->mMotion.field_0x10C8 >> 1 & 1;
}
u32 fn_80059B70() {
    return ex_c::getInstance()->mMotion.field_0x10C8 >> 2 & 1;
}
u32 fn_80059B80() {
    return ex_c::getInstance()->mMotion.field_0x10C8 >> 3 & 1;
}
u32 fn_80059B90() {
    return ex_c::getInstance()->mMotion.field_0x10C8 >> 5 & 1;
}

mVec3_c getFSAcc() {
    if (mPad::g_padMg->getDevType(mPad::g_currentCoreId) == EGG::cDEV_FREESTYLE ||
        mPad::g_padMg->getDevType(mPad::g_currentCoreId) == EGG::cDEV_MPLS_PT_FS) {
        const EGG::CoreStatus *status = mPad::g_currentCore->getCoreStatus();
        return mVec3_c(status->ex_status.fs.acc.x, status->ex_status.fs.acc.y, status->ex_status.fs.acc.z);
    } else {
        return mVec3_c(mVec3_c::Zero.x, mVec3_c::Zero.y, mVec3_c::Zero.z);
    }
}
u32 fn_80059CC0() {
    return ex_c::getInstance()->mFSMotion.field_0x10C8 >> 4 & 1;
}
u32 fn_80059CD0() {
    return ex_c::getInstance()->mFSMotion.field_0x10C8 >> 5 & 1;
}

} // namespace dPad