SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
WPadButton.cpp
1#include "Game/System/WPadButton.hpp"
2
3WPadButton::WPadButton(const WPad* pPad) {
4 mPad = pPad;
5 mHold = 0;
6 _8 = 0;
7 mRelease = 0;
8 _10 = 0;
9 mDelaySec = 0.41666666;
10 mPulseSec = 0.16666667;
11 KPADSetBtnRepeat(mPad->mChannel, mDelaySec, mPulseSec);
12}
13
14void WPadButton::update() {
15 KPADStatus* status = mPad->getKPadStatus(0);
16
17 if (status != nullptr) {
18 u32 v3;
19 if (mHold != 0) {
20 _8 = status->trig & ~mHold & 0xFFFF;
21 }
22 else {
23 _8 = status->trig;
24 }
25
26 if (!status->wpad_err || status->wpad_err == -2) {
27 mHold = status->hold;
28 mRelease = status->release;
29 }
30
31 _10 = _8;
32
33 if ((status->hold & 0x80000000) != 0) {
34 _10 = _8 | mHold;
35 }
36 }
37}
38
39bool WPadButton::testButtonUp() const {
40 return (mHold >> 3) & 0x1;
41}
42
43bool WPadButton::testButtonDown() const {
44 return (mHold >> 2) & 0x1;
45}
46
47bool WPadButton::testButtonLeft() const {
48 return mHold & 0x1;
49}
50
51bool WPadButton::testButtonRight() const {
52 return (mHold >> 1) & 0x1;
53}
54
55bool WPadButton::testButtonA() const {
56 return (mHold >> 11) & 0x1;
57}
58
59bool WPadButton::testButtonB() const {
60 return (mHold >> 10) & 0x1;
61}
62
63bool WPadButton::testButtonMinus() const {
64 return (mHold >> 12) & 0x1;
65}
66
67bool WPadButton::testButtonPlus() const {
68 return (mHold >> 4) & 0x1;
69}
70
71bool WPadButton::testButton1() const {
72 return (mHold >> 9) & 0x1;
73}
74
75bool WPadButton::testButton2() const {
76 return (mHold >> 8) & 0x1;
77}
78
79bool WPadButton::testButtonC() const {
80 return (mHold >> 14) & 0x1;
81}
82
83bool WPadButton::testButtonZ() const {
84 return (mHold >> 13) & 0x1;
85}
86
87bool WPadButton::testTriggerUp() const {
88 return (mHold >> 3) & 0x1;
89}
90
91bool WPadButton::testTriggerDown() const {
92 return (mHold >> 2) & 0x1;
93}
94
95bool WPadButton::testTriggerLeft() const {
96 return _8 & 0x1;
97}
98
99bool WPadButton::testTriggerRight() const {
100 return (_8 >> 1) & 0x1;
101}
102
103bool WPadButton::testTriggerA() const {
104 return (_8 >> 11) & 0x1;
105}
106
107bool WPadButton::testTriggerB() const {
108 return (_8 >> 10) & 0x1;
109}
110
111bool WPadButton::testTriggerMinus() const {
112 return (_8 >> 12) & 0x1;
113}
114
115bool WPadButton::testTriggerHome() const {
116 return (_8 >> 15) & 0x1;
117}
118
119bool WPadButton::testTriggerPlus() const {
120 return (_8 >> 4) & 0x1;
121}
122
123bool WPadButton::testTrigger1() const {
124 return (_8 >> 9) & 0x1;
125}
126
127bool WPadButton::testTrigger2() const {
128 return (_8 >> 8) & 0x1;
129}
130
131bool WPadButton::testTriggerC() const {
132 return (_8 >> 14) & 0x1;
133}
134
135bool WPadButton::testTriggerZ() const {
136 return (_8 >> 13) & 0x1;
137}
138
139bool WPadButton::testReleaseZ() const {
140 return (mRelease >> 13) & 0x1;
141}
142
143bool WPadButton::isChangeAnyState() const {
144 bool result = false;
145
146 if (_8 || mRelease) {
147 result = true;
148 }
149
150 return result;
151}
Definition WPad.hpp:15