mirror of
https://github.com/zeldaret/tp
synced 2026-06-13 14:06:51 -04:00
JUtility debug (#3020)
This commit is contained in:
@@ -80,7 +80,7 @@ u32 JUTGamePad::sRumbleSupported;
|
||||
u32 JUTGamePad::read() {
|
||||
sRumbleSupported = PADRead(mPadStatus);
|
||||
|
||||
switch (sClampMode) {
|
||||
switch (getClampMode()) {
|
||||
case EClampStick:
|
||||
PADClamp(mPadStatus);
|
||||
break;
|
||||
@@ -115,7 +115,7 @@ u32 JUTGamePad::read() {
|
||||
}
|
||||
}
|
||||
|
||||
for (JSUListIterator<JUTGamePad> pad(mPadList.getFirst()); pad != mPadList.getEnd(); pad++) {
|
||||
for (JSUListIterator<JUTGamePad> pad(mPadList.getFirst()); pad != mPadList.getEnd(); ++pad) {
|
||||
if (pad->getPadReplay() != NULL && pad->getPadReplay()->isActive()) {
|
||||
PADStatus status;
|
||||
pad->getPadReplay()->getStatus(&status);
|
||||
@@ -162,7 +162,7 @@ void JUTGamePad::assign() {
|
||||
}
|
||||
}
|
||||
|
||||
bool JUTGamePad::CRumble::mStatus[4];
|
||||
u8 JUTGamePad::CRumble::mStatus[4];
|
||||
|
||||
u32 JUTGamePad::CRumble::mEnabled;
|
||||
|
||||
@@ -246,6 +246,7 @@ JSUList<JUTGamePadLongPress> JUTGamePadLongPress::sPatternList(false);
|
||||
|
||||
void JUTGamePad::checkResetSwitch() {
|
||||
if (!JUTGamePad::C3ButtonReset::sResetOccurred) {
|
||||
int unused;
|
||||
if (OSGetResetSwitchState()) {
|
||||
C3ButtonReset::sResetSwitchPushing = true;
|
||||
} else {
|
||||
@@ -284,14 +285,7 @@ void JUTGamePad::CButton::clear() {
|
||||
}
|
||||
|
||||
void JUTGamePad::CButton::update(const PADStatus* padStatus, u32 stickStatus) {
|
||||
u32 buttons;
|
||||
if (padStatus != NULL) {
|
||||
buttons = padStatus->button;
|
||||
} else {
|
||||
buttons = 0;
|
||||
}
|
||||
|
||||
buttons = stickStatus | buttons;
|
||||
u32 buttons = stickStatus | (padStatus != NULL ? padStatus->button : 0);
|
||||
mRepeat = 0;
|
||||
|
||||
if (mRepeatDelay != 0 && mRepeatMask != 0) {
|
||||
@@ -347,7 +341,7 @@ void JUTGamePad::CStick::clear() {
|
||||
u32 JUTGamePad::CStick::update(s8 x, s8 y, JUTGamePad::EStickMode mode,
|
||||
JUTGamePad::EWhichStick stick, u32 buttons) {
|
||||
s32 clamp;
|
||||
switch (sClampMode) {
|
||||
switch (getClampMode()) {
|
||||
case EClampStick:
|
||||
clamp = stick == EMainStick ? 54 : 42;
|
||||
break;
|
||||
@@ -385,8 +379,7 @@ u32 JUTGamePad::CStick::update(s8 x, s8 y, JUTGamePad::EStickMode mode,
|
||||
}
|
||||
}
|
||||
|
||||
u32 button_shift = stick == EMainStick ? 0x18 : 0x10;
|
||||
return getButton(buttons >> button_shift);
|
||||
return getButton(buttons >> (stick == EMainStick ? 0x18 : 0x10));
|
||||
}
|
||||
|
||||
u32 JUTGamePad::CStick::getButton(u32 buttons) {
|
||||
@@ -436,8 +429,13 @@ void JUTGamePad::CRumble::startMotor(int port) {
|
||||
}
|
||||
|
||||
void JUTGamePad::CRumble::stopMotor(int port, bool hard_stop) {
|
||||
u8 command;
|
||||
if (isEnabledPort(port)) {
|
||||
u8 command = hard_stop ? PAD_MOTOR_STOP_HARD : PAD_MOTOR_STOP;
|
||||
if (hard_stop) {
|
||||
command = PAD_MOTOR_STOP_HARD;
|
||||
} else {
|
||||
command = PAD_MOTOR_STOP;
|
||||
}
|
||||
PADControlMotor(port, command);
|
||||
mStatus[port] = false;
|
||||
}
|
||||
@@ -484,7 +482,7 @@ void JUTGamePad::CRumble::update(s16 port) {
|
||||
if (status) {
|
||||
stopMotor(port, hard_stop);
|
||||
} else if (hard_stop) {
|
||||
stopMotorHard(port);
|
||||
stopMotor(port, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -518,18 +516,18 @@ void JUTGamePad::CRumble::startPatternedRumble(void* data, JUTGamePad::CRumble::
|
||||
}
|
||||
|
||||
void JUTGamePad::CRumble::stopPatternedRumble(s16 port) {
|
||||
JUT_ASSERT(1341, 0 <= port && port < 4);
|
||||
mLength = 0;
|
||||
stopMotorHard(port);
|
||||
}
|
||||
|
||||
void JUTGamePad::CRumble::stopPatternedRumbleAtThePeriod() {
|
||||
u32 r31 = mFrame % mFrameCount;
|
||||
mLength = (mFrame + mFrameCount - 1) % mFrameCount;
|
||||
}
|
||||
|
||||
JUTGamePad* JUTGamePad::getGamePad(int port) {
|
||||
JSUListIterator<JUTGamePad> pad(mPadList.getFirst());
|
||||
|
||||
for (; pad != mPadList.getEnd(); pad++) {
|
||||
for (JSUListIterator<JUTGamePad> pad(mPadList.getFirst()); pad != mPadList.getEnd(); ++pad) {
|
||||
if (port == pad->mPortNum) {
|
||||
return pad.getObject();
|
||||
}
|
||||
@@ -539,20 +537,21 @@ JUTGamePad* JUTGamePad::getGamePad(int port) {
|
||||
}
|
||||
|
||||
void JUTGamePad::CRumble::setEnabled(u32 mask) {
|
||||
mask = (mask & (PAD_CHAN3_BIT | PAD_CHAN2_BIT | PAD_CHAN1_BIT | PAD_CHAN0_BIT));
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if ((mEnabled & channel_mask[i]) == 0) {
|
||||
if (mStatus[i]) {
|
||||
stopMotor(i, false);
|
||||
stopMotor(i);
|
||||
}
|
||||
|
||||
JUTGamePad* pad = getGamePad(i);
|
||||
if (pad != NULL) {
|
||||
pad->mRumble.stopPatternedRumble(pad->mPortNum);
|
||||
pad->stopMotorWaveHard();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mEnabled = (mask & (PAD_CHAN3_BIT | PAD_CHAN2_BIT | PAD_CHAN1_BIT | PAD_CHAN0_BIT));
|
||||
mEnabled = mask;
|
||||
}
|
||||
|
||||
void JUTGamePad::CButton::setRepeat(u32 mask, u32 delay, u32 rate) {
|
||||
@@ -563,6 +562,13 @@ void JUTGamePad::CButton::setRepeat(u32 mask, u32 delay, u32 rate) {
|
||||
mRepeatRate = rate;
|
||||
}
|
||||
|
||||
void JUTGamePad::setButtonRepeat(u32 mask, u32 delay, u32 rate) {
|
||||
mButton.setRepeat(mask, delay, rate);
|
||||
if (mPortNum >= 0) {
|
||||
mPadButton[mPortNum].setRepeat(mask, delay, rate);
|
||||
}
|
||||
}
|
||||
|
||||
bool JUTGamePad::recalibrate(u32 mask) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (sSuppressPadReset & channel_mask[i]) {
|
||||
@@ -570,16 +576,25 @@ bool JUTGamePad::recalibrate(u32 mask) {
|
||||
}
|
||||
}
|
||||
|
||||
return PADRecalibrate(mask);
|
||||
BOOL result = PADRecalibrate(mask);
|
||||
return result;
|
||||
}
|
||||
|
||||
void JUTGamePadLongPress::checkCallback(int port, u32 hold_time) {
|
||||
if (port >= 0 && hold_time >= mThreshold) {
|
||||
field_0x11 = true;
|
||||
field_0x48[port] = true;
|
||||
if (port < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mCallback != NULL) {
|
||||
mCallback(port, this, field_0x50);
|
||||
}
|
||||
JUT_ASSERT(1673, 0 <= port && port < 4);
|
||||
|
||||
if (hold_time < mThreshold) {
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x11 = true;
|
||||
field_0x48[port] = true;
|
||||
|
||||
if (mCallback != NULL) {
|
||||
mCallback(port, this, field_0x50);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user