in atari_py/ale_interface/src/environment/ale_state.cpp [289:484]
void ALEState::setActionJoysticks(Event* event, int player_a_action, int player_b_action) {
// Reset keys
resetKeys(event);
switch(player_a_action) {
case PLAYER_A_NOOP:
break;
case PLAYER_A_FIRE:
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_UP:
event->set(Event::JoystickZeroUp, 1);
break;
case PLAYER_A_RIGHT:
event->set(Event::JoystickZeroRight, 1);
break;
case PLAYER_A_LEFT:
event->set(Event::JoystickZeroLeft, 1);
break;
case PLAYER_A_DOWN:
event->set(Event::JoystickZeroDown, 1);
break;
case PLAYER_A_UPRIGHT:
event->set(Event::JoystickZeroUp, 1);
event->set(Event::JoystickZeroRight, 1);
break;
case PLAYER_A_UPLEFT:
event->set(Event::JoystickZeroUp, 1);
event->set(Event::JoystickZeroLeft, 1);
break;
case PLAYER_A_DOWNRIGHT:
event->set(Event::JoystickZeroDown, 1);
event->set(Event::JoystickZeroRight, 1);
break;
case PLAYER_A_DOWNLEFT:
event->set(Event::JoystickZeroDown, 1);
event->set(Event::JoystickZeroLeft, 1);
break;
case PLAYER_A_UPFIRE:
event->set(Event::JoystickZeroUp, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_RIGHTFIRE:
event->set(Event::JoystickZeroRight, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_LEFTFIRE:
event->set(Event::JoystickZeroLeft, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_DOWNFIRE:
event->set(Event::JoystickZeroDown, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_UPRIGHTFIRE:
event->set(Event::JoystickZeroUp, 1);
event->set(Event::JoystickZeroRight, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_UPLEFTFIRE:
event->set(Event::JoystickZeroUp, 1);
event->set(Event::JoystickZeroLeft, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_DOWNRIGHTFIRE:
event->set(Event::JoystickZeroDown, 1);
event->set(Event::JoystickZeroRight, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case PLAYER_A_DOWNLEFTFIRE:
event->set(Event::JoystickZeroDown, 1);
event->set(Event::JoystickZeroLeft, 1);
event->set(Event::JoystickZeroFire, 1);
break;
case RESET:
event->set(Event::ConsoleReset, 1);
break;
default:
ale::Logger::Error << "Invalid Player A Action: " << player_a_action;
exit(-1);
}
switch(player_b_action) {
case PLAYER_B_NOOP:
break;
case PLAYER_B_FIRE:
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_UP:
event->set(Event::JoystickOneUp, 1);
break;
case PLAYER_B_RIGHT:
event->set(Event::JoystickOneRight, 1);
break;
case PLAYER_B_LEFT:
event->set(Event::JoystickOneLeft, 1);
break;
case PLAYER_B_DOWN:
event->set(Event::JoystickOneDown, 1);
break;
case PLAYER_B_UPRIGHT:
event->set(Event::JoystickOneUp, 1);
event->set(Event::JoystickOneRight, 1);
break;
case PLAYER_B_UPLEFT:
event->set(Event::JoystickOneUp, 1);
event->set(Event::JoystickOneLeft, 1);
break;
case PLAYER_B_DOWNRIGHT:
event->set(Event::JoystickOneDown, 1);
event->set(Event::JoystickOneRight, 1);
break;
case PLAYER_B_DOWNLEFT:
event->set(Event::JoystickOneDown, 1);
event->set(Event::JoystickOneLeft, 1);
break;
case PLAYER_B_UPFIRE:
event->set(Event::JoystickOneUp, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_RIGHTFIRE:
event->set(Event::JoystickOneRight, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_LEFTFIRE:
event->set(Event::JoystickOneLeft, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_DOWNFIRE:
event->set(Event::JoystickOneDown, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_UPRIGHTFIRE:
event->set(Event::JoystickOneUp, 1);
event->set(Event::JoystickOneRight, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_UPLEFTFIRE:
event->set(Event::JoystickOneUp, 1);
event->set(Event::JoystickOneLeft, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_DOWNRIGHTFIRE:
event->set(Event::JoystickOneDown, 1);
event->set(Event::JoystickOneRight, 1);
event->set(Event::JoystickOneFire, 1);
break;
case PLAYER_B_DOWNLEFTFIRE:
event->set(Event::JoystickOneDown, 1);
event->set(Event::JoystickOneLeft, 1);
event->set(Event::JoystickOneFire, 1);
break;
case RESET:
event->set(Event::ConsoleReset, 1);
ale::Logger::Info << "Sending Reset..." << std::endl;
break;
default:
ale::Logger::Error << "Invalid Player B Action: " << player_b_action << std::endl;
exit(-1);
}
}