SuperMarioOdysseyOnline/include/sead/controller/seadControllerBase.h
2022-06-16 14:33:18 -07:00

68 lines
1.9 KiB
C++

#pragma once
#include "math/seadBoundBox.h"
#include "math/seadVector.h"
#include "prim/seadBitFlag.h"
#include "prim/seadRuntimeTypeInfo.h"
namespace sead
{
class ControllerBase
{
SEAD_RTTI_BASE(ControllerBase)
public:
ControllerBase(int, int, int, int);
void setRightStickCrossThreshold(float, float);
void setPointerBound(const BoundBox2f& bound);
void setPadRepeat(u32, u8, u8);
void setLeftStickCrossThreshold(float, float);
// unknown return type
u32 getPadHoldCount(int) const;
BitFlag32 getButtonsTrigger() const { return mButtonsTrigger; }
BitFlag32 getButtonsRelease() const { return mButtonsRelease; }
BitFlag32 getButtonsRepeat() const { return mButtonsRepeat; }
BitFlag32 getButtonsHold() const { return mButtonsHold; }
const Vector2f& getTouchScreenPos() const { return mTouchScreenPos; }
const Vector2f& getLeftJoy() const { return mLeftJoy; }
const Vector2f& getRightJoy() const { return mRightJoy; }
protected:
void updateDerivativeParams_(u32, bool);
void setPointerWithBound_(bool, bool, const Vector2f& bound);
void setIdleBase_();
bool isIdleBase_();
// unknown return type
u32 getStickHold_(u32, const Vector2f&, float, float, int);
// unknown return type
u32 createStickCrossMask_();
private:
BitFlag32 mButtonsTrigger;
BitFlag32 mButtonsRelease;
BitFlag32 mButtonsRepeat;
unsigned int mFlags;
int _18;
int _1c;
BoundBox2f mPointerBound;
int mPadHoldCounts[32];
char _b0[32];
char _d0[32];
float mLeftStickThresholdX;
float mRightStickThresholdX;
float mLeftStickThresholdY;
float mRightStickThresholdY;
int _100;
int _104;
int _108;
int _10c;
unsigned int mIdleCounter;
sead::BitFlag32 mButtonsHold;
Vector2f mTouchScreenPos;
Vector2f mLeftJoy;
Vector2f mRightJoy;
Vector2f _130;
};
} // namespace sead