Merge pull request #1 from dbalatoni13/downgrade

Implement PADControlMotor
This commit is contained in:
Phillip Stephens 2025-04-03 15:26:08 -07:00 committed by GitHub
commit 3d53dbed93
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -455,31 +455,35 @@ uint32_t PADRead(PADStatus* status) {
return rumbleSupport; return rumbleSupport;
} }
void PADControlAllMotors(const uint32_t* commands) { void PADControlMotor(int32_t chan, uint32_t command) {
for (uint32_t i = 0; i < 4; ++i) { auto controller = aurora::input::get_controller_for_player(chan);
auto controller = aurora::input::get_controller_for_player(i); auto instance = aurora::input::get_instance_for_player(chan);
auto instance = aurora::input::get_instance_for_player(i);
if (controller == nullptr) { if (controller == nullptr) {
continue; return;
} }
if (controller->m_isGameCube) { if (controller->m_isGameCube) {
if (commands[i] == PAD_MOTOR_STOP) { if (command == PAD_MOTOR_STOP) {
aurora::input::controller_rumble(instance, 0, 1, 0); aurora::input::controller_rumble(instance, 0, 1, 0);
} else if (commands[i] == PAD_MOTOR_RUMBLE) { } else if (command == PAD_MOTOR_RUMBLE) {
aurora::input::controller_rumble(instance, 1, 1, 0); aurora::input::controller_rumble(instance, 1, 1, 0);
} else if (commands[i] == PAD_MOTOR_STOP_HARD) { } else if (command == PAD_MOTOR_STOP_HARD) {
aurora::input::controller_rumble(instance, 0, 0, 0); aurora::input::controller_rumble(instance, 0, 0, 0);
} }
} else { } else {
if (commands[i] == PAD_MOTOR_STOP) { if (command == PAD_MOTOR_STOP) {
aurora::input::controller_rumble(instance, 0, 0, 1); aurora::input::controller_rumble(instance, 0, 0, 1);
} else if (commands[i] == PAD_MOTOR_RUMBLE) { } else if (command == PAD_MOTOR_RUMBLE) {
aurora::input::controller_rumble(instance, 32767, 32767, 0); aurora::input::controller_rumble(instance, 32767, 32767, 0);
} else if (commands[i] == PAD_MOTOR_STOP_HARD) { } else if (command == PAD_MOTOR_STOP_HARD) {
aurora::input::controller_rumble(instance, 0, 0, 0); aurora::input::controller_rumble(instance, 0, 0, 0);
} }
} }
}
void PADControlAllMotors(const uint32_t* commands) {
for (uint32_t i = 0; i < 4; ++i) {
PADControlMotor(i, commands[i]);
} }
} }