mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 13:23:27 -04:00
Use struct bitfields for pad buttons, matching several functions
This commit is contained in:
@@ -82,6 +82,8 @@ public:
|
||||
|
||||
u32 getButton() const { return mButton.mButton; }
|
||||
u32 getTrigger() const { return mButton.mTrigger; }
|
||||
u32 getRelease() const { return mButton.mRelease; }
|
||||
u32 getRepeat() const { return mButton.mRepeat; }
|
||||
|
||||
f32 getMainStickX() const { return mMainStick.mPosX; }
|
||||
f32 getMainStickY() const { return mMainStick.mPosY; }
|
||||
@@ -124,7 +126,7 @@ public:
|
||||
void stopMotor() { mRumble.stopMotor(mPortNum); }
|
||||
void stopMotorHard() { mRumble.stopMotorHard(mPortNum); }
|
||||
|
||||
static PADStatus & getPortStatus(u32 port) { return mPadStatus[port]; }
|
||||
static PADStatus & getPortStatus(EPadPort port) { return mPadStatus[port]; }
|
||||
|
||||
struct CButton {
|
||||
CButton() { clear(); }
|
||||
@@ -221,6 +223,10 @@ public:
|
||||
mRumble.startPatternedRumble(param_2, rumble, param_4);
|
||||
}
|
||||
|
||||
// TODO:
|
||||
void isResetOccurred(int*) {}
|
||||
void suppressPadReset(u32) {}
|
||||
|
||||
/* 0x18 */ CButton mButton;
|
||||
/* 0x48 */ CStick mMainStick;
|
||||
/* 0x58 */ CStick mSubStick;
|
||||
|
||||
@@ -3,6 +3,22 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
// made up name
|
||||
struct controller_pad_buttons {
|
||||
bool left : 1;
|
||||
bool right : 1;
|
||||
bool down : 1;
|
||||
bool up : 1;
|
||||
bool z : 1;
|
||||
bool r : 1;
|
||||
bool l : 1;
|
||||
bool a : 1;
|
||||
bool b : 1;
|
||||
bool x : 1;
|
||||
bool y : 1;
|
||||
bool start : 1;
|
||||
};
|
||||
|
||||
struct interface_of_controller_pad {
|
||||
/* 0x00 */ f32 mMainStickPosX;
|
||||
/* 0x04 */ f32 mMainStickPosY;
|
||||
@@ -20,10 +36,8 @@ struct interface_of_controller_pad {
|
||||
/* 0x24 */ f32 mAnalogB;
|
||||
/* 0x28 */ f32 mTriggerLeft;
|
||||
/* 0x2C */ f32 mTriggerRight;
|
||||
/* 0x30 */ u8 mButtonHold0;
|
||||
/* 0x31 */ u8 mButtonHold1;
|
||||
/* 0x32 */ u8 mButtonTrig0;
|
||||
/* 0x33 */ u8 mButtonTrig1;
|
||||
/* 0x30 */ controller_pad_buttons mButtonHold;
|
||||
/* 0x32 */ controller_pad_buttons mButtonTrig;
|
||||
/* 0x34 */ s8 mGamepadErrorFlags;
|
||||
/* 0x35 */ u8 mHoldLockL;
|
||||
/* 0x36 */ u8 mTrigLockL;
|
||||
|
||||
@@ -97,7 +97,16 @@ public:
|
||||
|
||||
struct daAgb_GbaFlg {
|
||||
/* 0x0 */ u16 field_0x0;
|
||||
/* 0x2 */ u8 field_0x2;
|
||||
/* 0x2 */ struct {
|
||||
u8 m7 : 1;
|
||||
u8 m6 : 1;
|
||||
u8 m5 : 1;
|
||||
u8 m4 : 1;
|
||||
u8 m3 : 1;
|
||||
u8 m2 : 1;
|
||||
u8 m1 : 1;
|
||||
u8 m0 : 1;
|
||||
} field_0x2;
|
||||
/* 0x3 */ u8 field_0x3;
|
||||
/* 0x4 */ u16 field_0x4;
|
||||
/* 0x6 */ u16 field_0x6;
|
||||
@@ -173,7 +182,7 @@ public:
|
||||
/* 0x650 */ u32 field_0x650;
|
||||
/* 0x654 */ int field_0x654;
|
||||
/* 0x658 */ u16 field_0x658;
|
||||
/* 0x65A */ u16 field_0x65a;
|
||||
/* 0x65A */ u16 mPrevButtons;
|
||||
/* 0x65C */ u16 field_0x65c;
|
||||
/* 0x65E */ u16 field_0x65e;
|
||||
/* 0x660 */ u16 mDenyMessage;
|
||||
|
||||
@@ -314,7 +314,7 @@ public:
|
||||
void getStickAngY(int);
|
||||
void calcStickPos(s16, cXyz*);
|
||||
BOOL flyCheck();
|
||||
BOOL mirrorCancelCheck();
|
||||
bool mirrorCancelCheck();
|
||||
void setWingEmitter();
|
||||
void setHane02Emitter();
|
||||
void deleteHane02Emitter();
|
||||
|
||||
@@ -7,31 +7,31 @@
|
||||
extern JUTGamePad* g_mDoCPd_gamePad[4];
|
||||
extern interface_of_controller_pad g_mDoCPd_cpadInfo[4];
|
||||
|
||||
#define CPad_CHECK_HOLD_A(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold0 & 1)
|
||||
#define CPad_CHECK_HOLD_B(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold1 >> 7) & 1)
|
||||
#define CPad_CHECK_HOLD_X(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold1 >> 6) & 1)
|
||||
#define CPad_CHECK_HOLD_Y(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold1 >> 5) & 1)
|
||||
#define CPad_CHECK_HOLD_Z(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 3) & 1)
|
||||
#define CPad_CHECK_HOLD_START(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold1 >> 4) & 1)
|
||||
#define CPad_CHECK_HOLD_L(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 1) & 1)
|
||||
#define CPad_CHECK_HOLD_R(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 2) & 1)
|
||||
#define CPad_CHECK_HOLD_UP(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 4) & 1)
|
||||
#define CPad_CHECK_HOLD_DOWN(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 5) & 1)
|
||||
#define CPad_CHECK_HOLD_RIGHT(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 6) & 1)
|
||||
#define CPad_CHECK_HOLD_LEFT(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonHold0 >> 7) & 1)
|
||||
#define CPad_CHECK_HOLD_A(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.a)
|
||||
#define CPad_CHECK_HOLD_B(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.b)
|
||||
#define CPad_CHECK_HOLD_X(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.x)
|
||||
#define CPad_CHECK_HOLD_Y(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.y)
|
||||
#define CPad_CHECK_HOLD_Z(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.z)
|
||||
#define CPad_CHECK_HOLD_START(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.start)
|
||||
#define CPad_CHECK_HOLD_L(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.l)
|
||||
#define CPad_CHECK_HOLD_R(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.r)
|
||||
#define CPad_CHECK_HOLD_UP(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.up)
|
||||
#define CPad_CHECK_HOLD_DOWN(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.down)
|
||||
#define CPad_CHECK_HOLD_RIGHT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.right)
|
||||
#define CPad_CHECK_HOLD_LEFT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.left)
|
||||
|
||||
#define CPad_CHECK_TRIG_A(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig0 & 1)
|
||||
#define CPad_CHECK_TRIG_B(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig1 >> 7) & 1)
|
||||
#define CPad_CHECK_TRIG_X(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig1 >> 6) & 1)
|
||||
#define CPad_CHECK_TRIG_Y(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig1 >> 5) & 1)
|
||||
#define CPad_CHECK_TRIG_Z(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 3) & 1)
|
||||
#define CPad_CHECK_TRIG_START(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig1 >> 4) & 1)
|
||||
#define CPad_CHECK_TRIG_L(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 1) & 1)
|
||||
#define CPad_CHECK_TRIG_R(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 2) & 1)
|
||||
#define CPad_CHECK_TRIG_UP(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 4) & 1)
|
||||
#define CPad_CHECK_TRIG_DOWN(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 5) & 1)
|
||||
#define CPad_CHECK_TRIG_RIGHT(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 6) & 1)
|
||||
#define CPad_CHECK_TRIG_LEFT(padNo) ((g_mDoCPd_cpadInfo[padNo].mButtonTrig0 >> 7) & 1)
|
||||
#define CPad_CHECK_TRIG_A(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.a)
|
||||
#define CPad_CHECK_TRIG_B(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.b)
|
||||
#define CPad_CHECK_TRIG_X(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.x)
|
||||
#define CPad_CHECK_TRIG_Y(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.y)
|
||||
#define CPad_CHECK_TRIG_Z(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.z)
|
||||
#define CPad_CHECK_TRIG_START(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.start)
|
||||
#define CPad_CHECK_TRIG_L(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.l)
|
||||
#define CPad_CHECK_TRIG_R(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.r)
|
||||
#define CPad_CHECK_TRIG_UP(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.up)
|
||||
#define CPad_CHECK_TRIG_DOWN(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.down)
|
||||
#define CPad_CHECK_TRIG_RIGHT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.right)
|
||||
#define CPad_CHECK_TRIG_LEFT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.left)
|
||||
|
||||
int mDoCPd_Create();
|
||||
int mDoCPd_Read();
|
||||
|
||||
+26
-33
@@ -557,58 +557,51 @@ bool daAgb_c::FlashCheck() {
|
||||
return false;
|
||||
}
|
||||
|
||||
#define MASK_INSERT_BUTTON(field, value, fieldshift, valueshift) \
|
||||
temp = (bool)(((value) & (1 << valueshift))); \
|
||||
(field) = ((temp << fieldshift) & (1 << fieldshift)) | ((field) & ~(1 << fieldshift))
|
||||
|
||||
/* 800D0734-800D0978 .text FlagsRecv__7daAgb_cFv */
|
||||
void daAgb_c::FlagsRecv() {
|
||||
// Nonmatching - regalloc and a couple rlwinms
|
||||
interface_of_controller_pad* pad_p = &g_mDoCPd_cpadInfo[mDoGaC_getPortNo()];
|
||||
u32 temp_r3 = BigLittleChange(mGbaFlg.field_0x0);
|
||||
|
||||
u32 temp_r0 = temp_r3 >> 0x10U;
|
||||
BOOL temp;
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 4, 0x16);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 5, 0x17);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 7, 0x15);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 6, 0x14);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 0, 0x10);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold1, temp_r3, 7, 0x11);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 2, 0x18);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold0, temp_r3, 1, 0x19);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonHold1, temp_r3, 4, 0x13);
|
||||
temp = !!temp;
|
||||
u16 buttons = temp_r3 >> 0x10U;
|
||||
pad_p->mButtonHold.up = buttons & 0x0040;
|
||||
pad_p->mButtonHold.down = buttons & 0x0080;
|
||||
pad_p->mButtonHold.left = buttons & 0x0020;
|
||||
pad_p->mButtonHold.right = buttons & 0x0010;
|
||||
pad_p->mButtonHold.a = buttons & 0x0001;
|
||||
pad_p->mButtonHold.b = buttons & 0x0002;
|
||||
pad_p->mButtonHold.r = buttons & 0x0100;
|
||||
pad_p->mButtonHold.l = buttons & 0x0200;
|
||||
pad_p->mButtonHold.start = buttons & 0x0008;
|
||||
|
||||
u32 temp_r5 = temp_r0 & (temp_r0 ^ field_0x65a);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r5, 4, 0x06);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r5, 5, 0x07);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r5, 7, 0x05);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r5, 6, 0x04);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r5, 0, 0x00);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig1, temp_r5, 7, 0x01);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r5, 2, 0x08);
|
||||
u16 temp_r6 = temp_r5 & 0xFFFF;
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig0, temp_r6, 1, 0x09);
|
||||
MASK_INSERT_BUTTON(pad_p->mButtonTrig1, temp_r6, 4, 0x03);
|
||||
// Buttons just pressed this frame
|
||||
u16 triggeredButtons = buttons & (buttons ^ mPrevButtons);
|
||||
pad_p->mButtonTrig.up = triggeredButtons & 0x0040;
|
||||
pad_p->mButtonTrig.down = triggeredButtons & 0x0080;
|
||||
pad_p->mButtonTrig.left = triggeredButtons & 0x0020;
|
||||
pad_p->mButtonTrig.right = triggeredButtons & 0x0010;
|
||||
pad_p->mButtonTrig.a = triggeredButtons & 0x0001;
|
||||
pad_p->mButtonTrig.b = triggeredButtons & 0x0002;
|
||||
pad_p->mButtonTrig.r = triggeredButtons & 0x0100;
|
||||
pad_p->mButtonTrig.l = triggeredButtons & 0x0200;
|
||||
pad_p->mButtonTrig.start = triggeredButtons & 0x0008;
|
||||
|
||||
g_mDoCPd_cpadInfo[mDoGaC_getPortNo()].mGamepadErrorFlags = 0;
|
||||
|
||||
field_0x65a = temp_r0;
|
||||
mPrevButtons = buttons;
|
||||
field_0x673 = mGbaFlg.field_0x3 != 0;
|
||||
field_0x630 = BigLittleChange(mGbaFlg.field_0x4) >> 0x10;
|
||||
field_0x632 = BigLittleChange(mGbaFlg.field_0x6) >> 0x10;
|
||||
field_0x67a = (mGbaFlg.field_0x2 >> 2);
|
||||
field_0x67a = mGbaFlg.field_0x2.m2;
|
||||
|
||||
if (!dComIfGs_isEventBit(0x1708) && ((mGbaFlg.field_0x2 >> 3) & 1)) {
|
||||
if (!dComIfGs_isEventBit(0x1708) && mGbaFlg.field_0x2.m3) {
|
||||
dComIfGs_onEventBit(0x1708);
|
||||
}
|
||||
|
||||
if (!dComIfGs_isEventBit(0x1A10) && ((mGbaFlg.field_0x2 >> 4) & 1)) {
|
||||
if (!dComIfGs_isEventBit(0x1A10) && mGbaFlg.field_0x2.m4) {
|
||||
dComIfGs_onEventBit(0x1A10);
|
||||
}
|
||||
|
||||
if (!dComIfGs_isEventBit(0x1A08) && ((mGbaFlg.field_0x2 >> 5) & 1)) {
|
||||
if (!dComIfGs_isEventBit(0x1A08) && mGbaFlg.field_0x2.m5) {
|
||||
dComIfGs_onEventBit(0x1A08);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -779,9 +779,8 @@ BOOL daNpc_Md_c::flyCheck() {
|
||||
}
|
||||
|
||||
/* 0000362C-00003648 .text mirrorCancelCheck__10daNpc_Md_cFv */
|
||||
BOOL daNpc_Md_c::mirrorCancelCheck() {
|
||||
/* Nonmatching */
|
||||
return CPad_CHECK_TRIG_B(0);
|
||||
bool daNpc_Md_c::mirrorCancelCheck() {
|
||||
return CPad_CHECK_TRIG_B(0) != false;
|
||||
}
|
||||
|
||||
/* 00003648-00003674 .text setWingEmitter__10daNpc_Md_cFv */
|
||||
|
||||
@@ -28,39 +28,33 @@ inline void mDoCPd_TRIGGER_CONV(u8 analog, f32& param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
#define MASK_INSERT_BUTTON(field, value, fieldshift, valueshift) \
|
||||
temp = (bool)(((value) & (1 << valueshift))); \
|
||||
(field) = ((temp << fieldshift) & (1 << fieldshift)) | ((field) & ~(1 << fieldshift))
|
||||
|
||||
/* 80007598-800078C0 .text mDoCPd_Convert__FP27interface_of_controller_padP10JUTGamePad */
|
||||
static s32 mDoCPd_Convert(interface_of_controller_pad* pInterface, JUTGamePad* pPad) {
|
||||
// the temp var stuff is hacky but seems required for matching codegen, including the !!temp at the end
|
||||
BOOL temp;
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 4, 3);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 5, 2);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 7, 0);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 6, 1);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 3, 4);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 2, 5);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 1, 6);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold0, pPad->mButton.mButton, 0, 8);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold1, pPad->mButton.mButton, 7, 9);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold1, pPad->mButton.mButton, 6, 10);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold1, pPad->mButton.mButton, 5, 11);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonHold1, pPad->mButton.mButton, 4, 12);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 4, 3);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 5, 2);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 7, 0);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 6, 1);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 3, 4);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 2, 5);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 1, 6);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig0, pPad->mButton.mTrigger, 0, 8);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig1, pPad->mButton.mTrigger, 7, 9);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig1, pPad->mButton.mTrigger, 6, 10);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig1, pPad->mButton.mTrigger, 5, 11);
|
||||
MASK_INSERT_BUTTON(pInterface->mButtonTrig1, pPad->mButton.mTrigger, 4, 12);
|
||||
temp = !!temp;
|
||||
pInterface->mButtonHold.up = pPad->mButton.mButton & CButton::DPAD_UP;
|
||||
pInterface->mButtonHold.down = pPad->mButton.mButton & CButton::DPAD_DOWN;
|
||||
pInterface->mButtonHold.left = pPad->mButton.mButton & CButton::DPAD_LEFT;
|
||||
pInterface->mButtonHold.right = pPad->mButton.mButton & CButton::DPAD_RIGHT;
|
||||
pInterface->mButtonHold.z = pPad->mButton.mButton & CButton::Z;
|
||||
pInterface->mButtonHold.r = pPad->mButton.mButton & CButton::R;
|
||||
pInterface->mButtonHold.l = pPad->mButton.mButton & CButton::L;
|
||||
pInterface->mButtonHold.a = pPad->mButton.mButton & CButton::A;
|
||||
pInterface->mButtonHold.b = pPad->mButton.mButton & CButton::B;
|
||||
pInterface->mButtonHold.x = pPad->mButton.mButton & CButton::X;
|
||||
pInterface->mButtonHold.y = pPad->mButton.mButton & CButton::Y;
|
||||
pInterface->mButtonHold.start = pPad->mButton.mButton & CButton::START;
|
||||
|
||||
pInterface->mButtonTrig.up = pPad->mButton.mTrigger & CButton::DPAD_UP;
|
||||
pInterface->mButtonTrig.down = pPad->mButton.mTrigger & CButton::DPAD_DOWN;
|
||||
pInterface->mButtonTrig.left = pPad->mButton.mTrigger & CButton::DPAD_LEFT;
|
||||
pInterface->mButtonTrig.right = pPad->mButton.mTrigger & CButton::DPAD_RIGHT;
|
||||
pInterface->mButtonTrig.z = pPad->mButton.mTrigger & CButton::Z;
|
||||
pInterface->mButtonTrig.r = pPad->mButton.mTrigger & CButton::R;
|
||||
pInterface->mButtonTrig.l = pPad->mButton.mTrigger & CButton::L;
|
||||
pInterface->mButtonTrig.a = pPad->mButton.mTrigger & CButton::A;
|
||||
pInterface->mButtonTrig.b = pPad->mButton.mTrigger & CButton::B;
|
||||
pInterface->mButtonTrig.x = pPad->mButton.mTrigger & CButton::X;
|
||||
pInterface->mButtonTrig.y = pPad->mButton.mTrigger & CButton::Y;
|
||||
pInterface->mButtonTrig.start = pPad->mButton.mTrigger & CButton::START;
|
||||
|
||||
pInterface->mMainStickPosX = pPad->getMainStickX();
|
||||
pInterface->mMainStickPosY = pPad->getMainStickY();
|
||||
|
||||
Reference in New Issue
Block a user