diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-06-30 15:17:50 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-01 01:17:50 +0300 |
| commit | 227cf2353acb8dbea8b765a34d5aad9a68373d44 (patch) | |
| tree | 20cfc7a18c1bbc95eec8b332a70eeefc18b560a7 /src | |
| parent | 214cfce7f6767cbe9781b36546de31c5082ff362 (diff) | |
some more wii tests/improvements (#2512)
* some more wii tests/improvements
* merge Z2AudioCS changes
Diffstat (limited to 'src')
| -rw-r--r-- | src/SSystem/SComponent/c_API_controller_pad.cpp | 143 | ||||
| -rw-r--r-- | src/Z2AudioLib/Z2LinkMgr.cpp | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_alink_demo.inc | 17 | ||||
| -rw-r--r-- | src/d/d_home_button.cpp | 212 | ||||
| -rw-r--r-- | src/m_Do/m_Re_controller_pad.cpp | 350 |
5 files changed, 711 insertions, 13 deletions
diff --git a/src/SSystem/SComponent/c_API_controller_pad.cpp b/src/SSystem/SComponent/c_API_controller_pad.cpp index c8c29794a6..4ac6aad2db 100644 --- a/src/SSystem/SComponent/c_API_controller_pad.cpp +++ b/src/SSystem/SComponent/c_API_controller_pad.cpp @@ -5,13 +5,156 @@ #include "SSystem/SComponent/c_API_controller_pad.h" #include "m_Do/m_Do_controller_pad.h" +#include "global.h" + +#if PLATFORM_WII +#include "m_Do/m_Re_controller_pad.h" +#endif /* 8026328C-802632AC 25DBCC 0020+00 0/0 3/3 0/0 .text cAPICPad_recalibrate__Fv */ void cAPICPad_recalibrate() { mDoCPd_c::recalibrate(); + + #if PLATFORM_WII + mReCPd::stopMoter(); + #endif } /* 802632AC-802632C8 25DBEC 001C+00 0/0 3/3 1/1 .text cAPICPad_ANY_BUTTON__FUl */ u32 cAPICPad_ANY_BUTTON(u32 portNo) { return mDoCPd_c::getTrig(portNo) & (PAD_BUTTON_A | PAD_BUTTON_B | PAD_BUTTON_START); } + +#if PLATFORM_WII +u32 cAPICPad_BUTTON(u32 i_padNo) { + return mReCPd::getHold(i_padNo); +} + +u32 cAPICPad_Z_BUTTON(u32 i_padNo) { + return mReCPd::getHoldUp(i_padNo); +} + +u32 cAPICPad_R_BUTTON(u32 i_padNo) { + return 0; +} + +u32 cAPICPad_L_BUTTON(u32 i_padNo) { + return mReCPd::getHoldZ1(i_padNo); +} + +u32 cAPICPad_A_BUTTON(u32 i_padNo) { + return mReCPd::getHoldA(i_padNo); +} + +u32 cAPICPad_B_BUTTON(u32 i_padNo) { + return mReCPd::getHoldB(i_padNo); +} + +u32 cAPICPad_X_BUTTON(u32 i_padNo) { + return mReCPd::getHoldRight(i_padNo); +} + +u32 cAPICPad_Y_BUTTON(u32 i_padNo) { + return mReCPd::getHoldLeft(i_padNo); +} + +u32 cAPICPad_TRIGGER(u32 i_padNo) { + return mReCPd::getTrig(i_padNo); +} + +u32 cAPICPad_Z_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigUp(i_padNo); +} + +u32 cAPICPad_R_TRIGGER(u32 i_padNo) { + return 0; +} + +u32 cAPICPad_UP_TRIGGER(u32 i_padNo) { + return 0; +} + +u32 cAPICPad_DOWN_TRIGGER(u32 i_padNo) { + return 0; +} + +u32 cAPICPad_LEFT_TRIGGER(u32 i_padNo) { + return 0; +} + +u32 cAPICPad_RIGHT_TRIGGER(u32 i_padNo) { + return 0; +} + +u32 cAPICPad_L_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigZ1(i_padNo); +} + +u32 cAPICPad_A_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigA(i_padNo); +} + +u32 cAPICPad_B_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigB(i_padNo); +} + +u32 cAPICPad_X_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigRight(i_padNo); +} + +u32 cAPICPad_Y_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigLeft(i_padNo); +} + +u32 cAPICPad_START_TRIGGER(u32 i_padNo) { + return mReCPd::getTrigStart(i_padNo); +} + +f32 cAPICPad_X_STICK(u32 i_padNo) { + return mReCPd::getPad(i_padNo).field_0x4[0].ex_status.fs.stick.x; +} + +f32 cAPICPad_X_STICK_3D(u32 i_padNo) { + return mReCPd::getPad(i_padNo).m_stick3D; +} + +f32 cAPICPad_Y_STICK(u32 i_padNo) { + return mReCPd::getPad(i_padNo).field_0x4[0].ex_status.fs.stick.y; +} + +f32 cAPICPad_VALUE_STICK(u32 i_padNo) { + return mReCPd::getPad(i_padNo).m_stickValue; +} + +s16 cAPICPad_ANGLE_STICK(u32 i_padNo) { + return mReCPd::getPad(i_padNo).m_stickAngle; +} + +s16 cAPICPad_ANGLE_STICK_3D(u32 i_padNo) { + return mReCPd::getFSStickAngle3DRev(i_padNo); +} + +f32 cAPICPad_X_SUBSTICK(u32 i_padNo) { + return 0.0f; +} + +f32 cAPICPad_Y_SUBSTICK(u32 i_padNo) { + return 0.0f; +} + +f32 cAPICPad_VALUE_SUBSTICK(u32 i_padNo) { + return 0.0f; +} + +s16 cAPICPad_ANGLE_SUBSTICK(u32 i_padNo) { + return 0; +} + +f32 cAPICPad_L_ANALOG(u32 i_padNo) { + return 0.0f; +} + +f32 cAPICPad_R_ANALOG(u32 i_padNo) { + return 0.0f; +} +#endif diff --git a/src/Z2AudioLib/Z2LinkMgr.cpp b/src/Z2AudioLib/Z2LinkMgr.cpp index 116c987ffb..4367cde681 100644 --- a/src/Z2AudioLib/Z2LinkMgr.cpp +++ b/src/Z2AudioLib/Z2LinkMgr.cpp @@ -4,7 +4,7 @@ // #include "Z2AudioLib/Z2LinkMgr.h" -#include "Z2AudioCSD\Z2AudioCS.h" +#include "Z2AudioLib\Z2AudioCS.h" #include "d/d_com_inf_game.h" /* 802C321C-802C3220 2BDB5C 0004+00 0/0 1/1 0/0 .text setLinkGroupInfo__14Z2CreatureLinkFUc */ diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index 280f965341..5d8438cf04 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -4173,12 +4173,23 @@ static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* i_actor, void* i_data) { /* 8011F658-8011F7D8 119F98 0180+00 1/1 0/0 0/0 .text checkAcceptWarp__9daAlink_cFv */ bool daAlink_c::checkAcceptWarp() { + #if VERSION != VERSION_WII_USA_R0 cM3dGPla plane; + #endif - if (mLinkAcch.ChkGroundHit() && !checkModeFlg(MODE_PLAYER_FLY) && - !checkNoResetFlg0(FLG0_UNDERWATER)) + if (mLinkAcch.ChkGroundHit() && !checkModeFlg(MODE_PLAYER_FLY) + #if VERSION != VERSION_WII_USA_R0 + && !checkNoResetFlg0(FLG0_UNDERWATER) + #endif + ) { - if (!getSlidePolygon(&plane) && !checkForestOldCentury()) { + if ( + #if VERSION != VERSION_WII_USA_R0 + !getSlidePolygon(&plane) && + #endif + !checkForestOldCentury() + ) + { if (checkMidnaRide() || ((daMidna_c*)getMidnaActor())->checkPortalObjRide()) { if ((checkField() || checkCastleTown()) && !checkStageName("R_SP161")) { if ((checkWolf() && (checkModeFlg(MODE_UNK_1000) || diff --git a/src/d/d_home_button.cpp b/src/d/d_home_button.cpp index f5604d5624..837695a0f5 100644 --- a/src/d/d_home_button.cpp +++ b/src/d/d_home_button.cpp @@ -1,5 +1,12 @@ #include "d/d_home_button.h" +#include "JSystem/JFramework/JFWDisplay.h" +#include "Z2AudioLib/Z2AudioCS.h" #include "Z2AudioLib/Z2AudioMgr.h" +#include "d/d_com_inf_game.h" +#include "m_Do/m_Do_Reset.h" +#include "m_Do/m_Do_graphic.h" +#include "m_Do/m_Do_lib.h" +#include "m_Do/m_Re_controller_pad.h" int SECallback(int param_0, int param_1) { if (param_0 == 5) { @@ -11,6 +18,40 @@ int SECallback(int param_0, int param_1) { } } +// NONMATCHING - stack +void drawCallback(J2DOrthoGraph& param_0, void* param_1) { + Mtx sp8; + if (mDoGph_gInf_c::isWide()) { + MTXOrtho(sp8, 228.0f, -228.0f, -416.0f, 416.0f, 0.0f, 500.0f); + } else { + MTXOrtho(sp8, 228.0f, -228.0f, -304.0f, 304.0f, 0.0f, 500.0f); + } + + GXSetProjection(sp8, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT4, GX_VA_POS, GX_POS_XY, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT4, GX_VA_CLR0, GX_CLR_RGB, GX_RGB8, 0); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetNumChans(1); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_CLEAR); + GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_ENABLE); + GXSetCullMode(GX_CULL_NONE); + GXLoadPosMtxImm(g_mDoMtx_identity, 3); + GXSetCurrentMtx(3); + + HBMDraw(); +} + +dHomeButton_c* dHomeButton_c::m_myObj; + +u8 dHomeButton_c::lbl_8053A724; +u8 dHomeButton_c::lbl_8053A725; + void dHomeButton_c::create_(int param_0, void* param_1) { initCursorPos(); initHomeButtonInfo(param_0, param_1); @@ -22,34 +63,187 @@ void dHomeButton_c::create_(int param_0, void* param_1) { HBMCreate(&m_info); } +// NONMATCHING int dHomeButton_c::execute_() { - // NONMATCHING + if (m_myObj == NULL) { + return 0; + } + + calcCursorPos(); + + if (field_0x7c == 0 && !mDoRst::isReset()) { + bool var_r30 = false; + for (u32 i = 0; i < 4; i++) { + if (mReCPd::chkDevTypeValid(i) && mReCPd::getTrigHome(i)) { + var_r30 = true; + } + } + + if (var_r30) { + mReCPd::enableDpd(0); + Z2AudioCS::disconnect(0); + + HBMSetAdjustFlag(mDoGph_gInf_c::isWide()); + HBMInit(); + + mDoGph_gInf_c::setTickRate(OS_TIMER_CLOCK / 60); + field_0x7c = 1; + lbl_8053A724 = 0; + } + } + + if (field_0x7c) { + if (lbl_8053A724 == 0 && mDoRst::isReset()) { + HBMStartBlackOut(); + onReset(); + } + + if (HBMCalc(&m_controllerData) >= HBM_SELECT_HOMEBTN) { + int selectBtn = HBMGetSelectBtnNum(); + if (selectBtn == HBM_SELECT_BTN1) { + mDoRst::onReturnToMenu(); + onReset(); + } else if (selectBtn == HBM_SELECT_BTN2) { + mDoRst_resetCallBack(-1, NULL); + onReset(); + } + + Z2AudioCS::connect(0); + mDoGph_gInf_c::setTickRate(field_0x78); + field_0x7c = 0; + mReCPd::setExtensionCallback(); + } else { + drawCapture(0xFF, drawCallback, NULL); + } + } + + return field_0x7c; } -void dHomeButton_c::initHomeButtonInfo(int param_0, void* param_1) { - // NONMATCHING +void dHomeButton_c::initHomeButtonInfo(int param_0, void* i_layoutBuf) { + m_info.layoutBuf = i_layoutBuf; + m_info.spkSeBuf = dComIfG_getObjectRes("HomeBtn", "SpeakerSe.arc"); + m_info.msgBuf = dComIfG_getObjectRes("HomeBtn", "home.csv"); + m_info.configBuf = dComIfG_getObjectRes("HomeBtn", "config.txt"); + m_info.sound_callback = SECallback; + m_info.backFlag = 0; + m_info.region = param_0; + m_info.cursor = 0; + + m_info.adjust.x = 1.3684211f; + m_info.adjust.y = 1.0f; + m_info.frameDelta = 1.0f; } void dHomeButton_c::initCursorPos() { - // NONMATCHING + for (int i = 0; i < 4; i++) { + m_controllerData.wiiCon[i].pos.x = 0.0f; + m_controllerData.wiiCon[i].pos.y = 0.0f; + m_controllerData.wiiCon[i].use_devtype = 0; + } } void dHomeButton_c::calcCursorPos() { - // NONMATCHING + for (u32 i = 0; i < 4; i++) { + WPADDeviceType sp8; + WPADResult result = WPADProbe(i, &sp8); + + if (result == -2 || result == -3 || result == 0) { + m_controllerData.wiiCon[i].kpad = &mReCPd::m_pad[i].field_0x4[0]; + } else { + m_controllerData.wiiCon[i].kpad = NULL; + } + } } void dHomeButton_c::onReset() { - // NONMATCHING + mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor); + lbl_8053A724 = 1; } void dHomeButton_c::create(int param_0, void* param_1) { - // NONMATCHING + m_myObj = new dHomeButton_c(); + m_myObj->create_(param_0, param_1); } int dHomeButton_c::execute() { - // NONMATCHING + if (m_myObj) { + return m_myObj->execute_(); + } + + return NULL; } +// NONMATCHING void dHomeButton_c::drawCapture(u8 param_0, void (*param_1)(J2DOrthoGraph&, void*), void* param_2) { - // NONMATCHING + if (lbl_8053A725 == 0) { + GXSetTexCopySrc(0, 0, 640, 456); + GXSetTexCopyDst(640, 456, (GXTexFmt)mDoGph_gInf_c::m_fullFrameBufferTimg->format, GX_FALSE); + GXCopyTex(mDoGph_gInf_c::m_fullFrameBufferTex, GX_FALSE); + lbl_8053A725 = 1; + } + + JFWDisplay::getManager()->setClearColor(g_clearColor); + mDoGph_gInf_c::beginRender(); + GXSetAlphaUpdate(GX_DISABLE); + j3dSys.drawInit(); + + J2DOrthoGraph sp30(0.0f, 0.0f, 640.0f, 456.0f, -1.0f, 1.0f); + sp30.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), + mDoGph_gInf_c::getMinXF() + mDoGph_gInf_c::getWidthF(), + mDoGph_gInf_c::getMinYF() + mDoGph_gInf_c::getHeightF()), + -1.0f, 1.0f); + sp30.setPort(); + + dComIfGp_setCurrentGrafPort(&sp30); + mDoLib_setResTimgObj(mDoGph_gInf_c::m_fullFrameBufferTimg, + &mDoGph_gInf_c::m_fullFrameBufferTexObj, 0, NULL); + + GXLoadTexObj(&mDoGph_gInf_c::m_fullFrameBufferTexObj, GX_TEXMAP0); + GXSetNumChans(0); + GXSetNumIndStages(0); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 60); + GXSetNumTevStages(1); + + GXColor sp14 = {0, 0, 0, param_0}; + GXSetTevColor(GX_TEVREG0, sp14); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetZCompLoc(GX_TRUE); + GXSetZMode(GX_DISABLE, GX_ALWAYS, GX_DISABLE); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_CLEAR); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); + GXSetFogRangeAdj(GX_DISABLE, 0, NULL); + GXSetCullMode(GX_CULL_NONE); + GXSetDither(GX_TRUE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_S8, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + + GXPosition2f32(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF()); + GXTexCoord2u8(0, 0); + + GXPosition2f32(mDoGph_gInf_c::getMaxXF(), mDoGph_gInf_c::getMinYF()); + GXTexCoord2u8(1, 0); + + GXPosition2f32(mDoGph_gInf_c::getMaxXF(), mDoGph_gInf_c::getMaxYF()); + GXTexCoord2u8(1, 1); + + GXPosition2f32(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMaxYF()); + GXTexCoord2u8(0, 1); + + if (param_1 != NULL) { + param_1(sp30, param_2); + } + + JFWDisplay::getManager()->endRender(); + JFWDisplay::getManager()->setFader(NULL); } diff --git a/src/m_Do/m_Re_controller_pad.cpp b/src/m_Do/m_Re_controller_pad.cpp index e69de29bb2..24a97449dd 100644 --- a/src/m_Do/m_Re_controller_pad.cpp +++ b/src/m_Do/m_Re_controller_pad.cpp @@ -0,0 +1,350 @@ +#include "m_Do/m_Re_controller_pad.h" +#include "Z2AudioLib/Z2AudioCS.h" + +mReCPd::Pad mReCPd::m_pad[4]; +WPADInfo mReCPd::m_pad_info[4]; + +void mReCPd::Pad::Acc::clean() { + +} + +void mReCPd::Pad::Acc::changeStts(u32, bool) { + +} + +void mReCPd::Pad::Acc::calcSwingVec() { + +} + +void mReCPd::Pad::Acc::calcSttsRem() { + +} + +void mReCPd::Pad::Acc::calcSttsFs() { + +} + +void mReCPd::Pad::clean() { + +} + +void mReCPd::Pad::cleanOneTime() { + +} + +void mReCPd::Pad::copyRemAcc() { + +} + +void mReCPd::Pad::copyFSAcc() { + +} + +void mReCPd::Pad::cleanTrig() { + m_remAcc.m_swing = 0; + m_FSAcc.m_swing = 0; + + for (int i = 0; i < 10; i++) { + field_0x4[i].trig = 0; + } +} + +void mReCPd::Pad::cleanHold() { + for (int i = 0; i < 10; i++) { + field_0x4[i].hold = 0; + } +} + +void mReCPd::Pad::cleanRelease() { + for (int i = 0; i < 10; i++) { + field_0x4[i].release = 0; + } +} + +void mReCPd::Pad::clearUpDown() { + +} + +void mReCPd::Pad::calcDpdBox(Vec2*, Vec2*, f32, f32) { + +} + +void mReCPd::Pad::calcDpdOld() { + +} + +void mReCPd::enableDpd(u32 param_0) { + KPADEnableDPD(param_0); +} + +void mReCPd::disableDpd(u32 param_0) { + KPADDisableDPD(param_0); +} + +void mReCPd::Pad::calcDpd2DPos() { + +} + +void mReCPd::Pad::calcDpdRatioPos() { + +} + +void mReCPd::Pad::calcDpdPlayCirPos() { + +} + +void mReCPd::Pad::calcDpdPlayBoxPos() { + +} + +void mReCPd::onConnect(u32 i_padNo) { + m_pad[i_padNo].field_0x1dd4 = 1; + m_pad[i_padNo].field_0x1e04 = 1; +} + +static void l_mReCPd_extensionCallback(s32 i_padNo, s32 param_1) { + Z2AudioCS::extensionProcess(i_padNo, param_1); + mReCPd::m_pad[i_padNo].field_0x1dec = param_1; + mReCPd::m_pad[i_padNo].field_0x1df0 = 1; +} + +void mReCPd::setExtensionCallback() { + WPADSetExtensionCallback(0, l_mReCPd_extensionCallback); +} + +void mReCPd::onGetInfoAsync(u32 i_padNo) { + m_pad[i_padNo].field_0x1ddd = 1; + m_pad[i_padNo].field_0x1de0 = 1800; +} + +void mReCPd::create() { + +} + +void mReCPd::startMoterWave(motorWave_t*, u8*, bool) { + +} + +void mReCPd::startMoterWave(int, u8*, bool) { + +} + +void mReCPd::stopMoterWave(motorWave_t*) { + +} + +void mReCPd::stopMoterWave(int) { + +} + +void mReCPd::updateMoterWave() { + +} + +void mReCPd::stopMoter() { + +} + +void mReCPd::getLowBat(u32) { + +} + +void mReCPd::setLowBat(u32, int) { + +} + +void mReCPd::onLowBatChk(u32) { + +} + +void mReCPd::procNoData(u32) { + +} + +void mReCPd::read() { + +} + +void mReCPd::calibrateDist(int) { + +} + +void mReCPd::getDpd2DPos(u32) { + +} + +void mReCPd::getDpdRatioPos(u32) { + +} + +void mReCPd::getDpdRatioBoxPos(u32) { + +} + +void mReCPd::chkDpdOk(u32) { + +} + +void mReCPd::chkDpdValid(u32) { + +} + +void mReCPd::chkDpdPosIn(u32) { + +} + +void mReCPd::getKPADAcc(u32, Vec*, int) { + +} + +void mReCPd::getAngleXy(u32) { + +} + +void mReCPd::getAngleZy(u32) { + +} + +void mReCPd::getKPADAccValue(u32, int) { + +} + +void mReCPd::getKPADAccValueMax(u32) { + +} + +void mReCPd::getKPADAccSpeed(u32, int) { + +} + +void mReCPd::getKPADAccSpeedMax(u32) { + +} + +void mReCPd::getKPADFsAccValue(u32, int) { + +} + +void mReCPd::getKPADFsAccValueMax(u32) { + +} + +s16 mReCPd::getFSStickAngle3DRev(u32) { + +} + +void mReCPd::calcUnderVec(Pad::Acc*, f32) { + +} + +u32 mReCPd::getHoldB(u32 i_padNo) { + return m_pad[i_padNo].field_0x4[0].hold & WPAD_BUTTON_B; +} + +u32 mReCPd::getHoldMinus(u32 i_padNo) { + if (chkSwingBlock(i_padNo)) { + return 0; + } else { + return m_pad[i_padNo].field_0x4[0].hold & WPAD_BUTTON_MINUS; + } +} + +u32 mReCPd::getHoldPlus(u32 i_padNo) { + if (chkSwingBlock(i_padNo)) { + return 0; + } else { + return m_pad[i_padNo].field_0x4[0].hold & WPAD_BUTTON_PLUS; + } +} + +u32 mReCPd::getHoldZ1(u32 i_padNo) { + return m_pad[i_padNo].field_0x4[0].hold & WPAD_BUTTON_Z; +} + +u32 mReCPd::getTrigB(u32 i_padNo) { + return m_pad[i_padNo].field_0x4[0].trig & WPAD_BUTTON_B; +} + +u32 mReCPd::getTrigMinus(u32 i_padNo) { + if (chkSwingBlock(i_padNo)) { + return 0; + } else { + return m_pad[i_padNo].field_0x4[0].trig & WPAD_BUTTON_MINUS; + } +} + +u32 mReCPd::getTrigHome(u32 i_padNo) { + if (chkSwingBlock(i_padNo)) { + return 0; + } else { + return m_pad[i_padNo].field_0x4[0].trig & WPAD_BUTTON_HOME; + } +} + +u32 mReCPd::getTrigPlus(u32 i_padNo) { + if (chkSwingBlock(i_padNo)) { + return 0; + } else { + return m_pad[i_padNo].field_0x4[0].trig & WPAD_BUTTON_PLUS; + } +} + +u32 mReCPd::getTrigZ1(u32 i_padNo) { + return m_pad[i_padNo].field_0x4[0].trig & WPAD_BUTTON_Z; +} + +u32 mReCPd::chkSwingBlock(u32 i_padNo) { + return m_pad[i_padNo].m_swingBlock > 0; +} + +u32 mReCPd::getTrigSwing(u32 i_padNo) { + return m_pad[i_padNo].m_remAcc.m_swing; +} + +Vec2& mReCPd::getSwingVec(u32 i_padNo) { + return m_pad[i_padNo].m_remAcc.m_swingVec; +} + +u32 mReCPd::chkSimpleProbe(u32 i_padNo) { + if (m_pad[i_padNo].field_0x1dd4 == 0) { + return 0; + } else if (m_pad[i_padNo].field_0x1dfc + 3 <= 2) { + return 0; + } else if (m_pad[i_padNo].field_0x1df8 == 0xFD || m_pad[i_padNo].field_0x1df8 == 0xFF) { + return 0; + } else { + return 1; + } +} + +BOOL mReCPd::chkDevTypeValid(u32 i_padNo) { + if (!chkSimpleProbe(i_padNo)) { + return FALSE; + } + + if (m_pad[i_padNo].field_0x1df4 < 20 && m_pad[i_padNo].field_0x1de4 == 0xFF && m_pad[i_padNo].field_0x1de8 != 0) { + return FALSE; + } + + return TRUE; +} + +u32 mReCPd::getFSTrigSwing(u32 i_padNo) { + return m_pad[i_padNo].m_FSAcc.m_swing; +} + +int mReCPd::m_cal_value; + +void mReCPd::plusCalValue() { + m_cal_value++; + if (m_cal_value >= 2) { + m_cal_value = 2; + } +} + +void mReCPd::minusCalValue() { + m_cal_value--; + if (m_cal_value <= -2) { + m_cal_value = -2; + } +} |
