void ALEState::setActionJoysticks()

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); 
  }
}