sead::ControllerBase class

Derived classes

class Controller
class ControllerWrapperBase

Public static variables

static const f32 cStickHoldThresholdDefault
static const f32 cStickReleaseThresholdDefault
static const Vector2f cInvalidPointer
static const Vector2i cInvalidPointerS32

Constructors, destructors, conversion operators

ControllerBase(s32 padBitMax, s32 leftStickCrossStartBit, s32 rightStickCrossStartBit, s32 touchKeyBit)

Public functions

auto getHoldMask() const -> u32
auto getTrigMask() const -> u32
auto getReleaseMask() const -> u32
auto getRepeatMask() const -> u32
auto getPadHoldCount(s32 bit) const -> u32
auto getLeftStick() const -> const Vector2f&
auto getRightStick() const -> const Vector2f&
auto getLeftAnalogTrigger() const -> f32
auto getRightAnalogTrigger() const -> f32
auto getPointer() const -> const Vector2f&
auto getPointerPrev() const -> const Vector2i&
auto isPointerOn() const -> bool
auto isPointerOnNow() const -> bool
auto isPointerOffNow() const -> bool
auto isPointerUnkFlag3() const -> bool
auto isHold(u32 mask) const -> bool
auto isTrig(u32 mask) const -> bool
auto isHoldAll(u32 mask) const -> bool
auto isRelease(u32 mask) const -> bool
auto isRepeat(u32 mask) const -> bool
auto isTrigWithRepeat(u32 mask) const -> bool
void setPadRepeat(u32 mask, u8 delay_frame, u8 pulse_frame)
void setLeftStickCrossThreshold(f32 hold, f32 release)
void setRightStickCrossThreshold(f32 hold, f32 release)
void setPointerBound(const BoundBox2f& bound)
auto getPointerBound() const -> const BoundBox2f&

Protected types

enum (anonymous) { cPadIdx_MaxBase = 32 }
enum PointerFlagMask { cPointerOn = 1 << 0, cPointerOnNow = 1 << 1, cPointerOffNow = 1 << 2, cPointerUnkFlag3 = 1 << 3 }
enum (anonymous) { cCrossUp, cCrossDown, cCrossLeft, cCrossRight }

Protected functions

auto isIdleBase_() -> bool
void setIdleBase_()
void setPointerWithBound_(bool is_on, bool touchkey_hold, const Vector2f& pos)
void updateDerivativeParams_(u32 prev_hold, bool prev_pointer_on)
auto getStickHold_(u32 prev_hold, const Vector2f& stick, f32 hold_threshold, f32 release_threshold, s32 start_bit) -> u32
auto createStickCrossMask_() -> u32

Protected variables

BitFlag32 mPadTrig
BitFlag32 mPadRelease
BitFlag32 mPadRepeat
BitFlag32 mPointerFlag
Vector2i mPointerS32
BoundBox2f mPointerBound
u32 mPadHoldCounts
u8 mPadRepeatDelays
u8 mPadRepeatPulses
f32 mLeftStickHoldThreshold
f32 mRightStickHoldThreshold
f32 mLeftStickReleaseThreshold
f32 mRightStickReleaseThreshold
s32 mPadBitMax
s32 mLeftStickCrossStartBit
s32 mRightStickCrossStartBit
s32 mTouchKeyBit
s32 mIdleFrame
BitFlag32 mPadHold
Vector2f mPointer
Vector2f mLeftStick
Vector2f mRightStick
f32 mLeftAnalogTrigger
f32 mRightAnalogTrigger