Merge pull request #659 from Parlane/classic_controller_fix2

Classic controller fix
This commit is contained in:
Pierre Bourdon 2014-07-28 20:34:00 -07:00
commit 062bce8b7e
2 changed files with 17 additions and 6 deletions

View File

@ -92,8 +92,8 @@ void Classic::GetState(u8* const data)
double x, y; double x, y;
m_left_stick->GetState(&x, &y); m_left_stick->GetState(&x, &y);
ccdata->lx = (x * 0x1F) + 0x20; ccdata->lx = Classic::LEFT_STICK_CENTER_X + (x * Classic::LEFT_STICK_RADIUS);
ccdata->ly = (y * 0x1F) + 0x20; ccdata->ly = Classic::LEFT_STICK_CENTER_Y + (y * Classic::LEFT_STICK_RADIUS);
} }
// right stick // right stick
@ -102,8 +102,8 @@ void Classic::GetState(u8* const data)
u8 x_, y_; u8 x_, y_;
m_right_stick->GetState(&x, &y); m_right_stick->GetState(&x, &y);
x_ = (x * 0x1F) + 0x20; x_ = Classic::RIGHT_STICK_CENTER_X + (x * Classic::RIGHT_STICK_RADIUS);
y_ = (y * 0x1F) + 0x20; y_ = Classic::RIGHT_STICK_CENTER_Y + (y * Classic::RIGHT_STICK_RADIUS);
ccdata->rx1 = x_; ccdata->rx1 = x_;
ccdata->rx2 = x_ >> 1; ccdata->rx2 = x_ >> 1;
@ -117,8 +117,8 @@ void Classic::GetState(u8* const data)
u8 lt, rt; u8 lt, rt;
m_triggers->GetState(&ccdata->bt, classic_trigger_bitmasks, trigs); m_triggers->GetState(&ccdata->bt, classic_trigger_bitmasks, trigs);
lt = trigs[0] * 0x1F; lt = trigs[0] * Classic::LEFT_TRIGGER_RANGE;
rt = trigs[1] * 0x1F; rt = trigs[1] * Classic::RIGHT_TRIGGER_RANGE;
ccdata->lt1 = lt; ccdata->lt1 = lt;
ccdata->lt2 = lt >> 3; ccdata->lt2 = lt >> 3;

View File

@ -35,6 +35,17 @@ public:
PAD_UP = 0x0100, PAD_UP = 0x0100,
}; };
static const u8 LEFT_STICK_CENTER_X = 0x20;
static const u8 LEFT_STICK_CENTER_Y = 0x20;
static const u8 LEFT_STICK_RADIUS = 0x1F;
static const u8 RIGHT_STICK_CENTER_X = 0x10;
static const u8 RIGHT_STICK_CENTER_Y = 0x10;
static const u8 RIGHT_STICK_RADIUS = 0x0F;
static const u8 LEFT_TRIGGER_RANGE = 0x1F;
static const u8 RIGHT_TRIGGER_RANGE = 0x1F;
private: private:
Buttons* m_buttons; Buttons* m_buttons;
MixedTriggers* m_triggers; MixedTriggers* m_triggers;