1#include "Game/System/WPadPointer.hpp"
2#include "Game/Util.hpp"
3#include <JSystem/JUtility/JUTVideo.hpp>
7WPadPointer::WPadPointer(
const WPad* pPad) {
9 mPosPlayRadius = 0.029999999f;
10 mPosSensitivity = 0.5f;
11 mHoriPlayRadius = 0.0;
12 mHoriSensitivity = 1.0f;
13 mDistPlayRadius = 0.0f;
14 mDistSensitivity = 1.0f;
23 mPointingPosArray =
new TVec2f[0x78];
24 mHorizonArray =
new TVec2f[0x78];
30void WPadPointer::reset() {
31 for (s32 i = 0; i < _C; i++) {
32 TVec2f* cur = &mPointingPosArray[i];
35 cur = &mHorizonArray[i];
47 KPADSetPosParam(mPad->mChannel, mPosPlayRadius, mPosSensitivity);
48 KPADSetHoriParam(mPad->mChannel, mHoriPlayRadius, mHoriSensitivity);
49 KPADSetDistParam(mPad->mChannel, mDistPlayRadius, mDistSensitivity);
53void WPadPointer::setSensorBarLevel(f32 lvl) {
54 KPADSetSensorHeight(mPad->mChannel, lvl);
90void WPadPointer::getPointingPos(TVec2f* pOut)
const {
92 pOut->set(mPointingPosArray[mEnablePastCount - 1]);
100void WPadPointer::getHorizonVec(TVec2f* pOut)
const {
102 pOut->set(mHorizonArray[mEnablePastCount - 1]);
110void WPadPointer::getPastPointingPos(TVec2f* pOut, s32 idx)
const {
111 pOut->set(mPointingPosArray[mEnablePastCount - 1 - idx]);
114u32 WPadPointer::getEnablePastCount()
const {
115 return mEnablePastCount;
118void WPadPointer::getPointingPosBasedOnScreen(TVec2f* pOut)
const {
119 pOut->x = (0.5f + (0.5f * mPointingPosArray->x)) * (int)MR::getScreenWidth();
120 pOut->y = (0.5f + (0.5f * mPointingPosArray->y)) * (int)(JUTVideo::sManager->mRenderModeObj->efbHeight);