some more wii tests/improvements (#2512)

* some more wii tests/improvements

* merge Z2AudioCS changes
This commit is contained in:
TakaRikka
2025-06-30 15:17:50 -07:00
committed by GitHub
parent 214cfce7f6
commit 227cf2353a
16 changed files with 1561 additions and 62 deletions
@@ -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
+1 -1
View File
@@ -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 */
+14 -3
View File
@@ -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) ||
+203 -9
View File
@@ -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);
}
+350
View File
@@ -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;
}
}