2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-14 06:06:11 +00:00

Add initial rumble support, use modified SDL branch to support all GC controller rumble modes

This commit is contained in:
2022-02-22 01:12:15 -08:00
parent c679c2e0f8
commit 40669f4dc9
8 changed files with 99 additions and 58 deletions

View File

@@ -10,11 +10,13 @@ namespace metaforce {
struct SAuroraControllerState {
u32 m_which = -1;
bool m_isGamecube = false;
bool m_hasRumble = false;
std::array<int16_t, size_t(aurora::ControllerAxis::MAX)> m_axes{};
std::bitset<size_t(aurora::ControllerButton::MAX)> m_btns{};
SAuroraControllerState() = default;
SAuroraControllerState(uint32_t which, bool isGamecube) : m_which(which), m_isGamecube(isGamecube) {}
SAuroraControllerState(uint32_t which, bool isGamecube, bool hasRumble)
: m_which(which), m_isGamecube(isGamecube), m_hasRumble(hasRumble) {}
void clamp();
};
@@ -82,8 +84,9 @@ struct CFinalInput {
u32 m_which = -1;
CFinalInput();
// CFinalInput(int cIdx, float dt, const boo::DolphinControllerState& data, const CFinalInput& prevInput, float leftDiv,
// float rightDiv);
// CFinalInput(int cIdx, float dt, const boo::DolphinControllerState& data, const CFinalInput& prevInput, float
// leftDiv,
// float rightDiv);
CFinalInput(int cIdx, float dt, const SAuroraControllerState& data, const CFinalInput& prevInput, float leftDiv,
float rightDiv);
CFinalInput(int cIdx, float dt, const CKeyboardMouseControllerData& data, const CFinalInput& prevInput);