Ja es pot gastar el teclat com a control independent del primer mando
Ja pot jugar un jugador amb teclat i altre amb mando Es pot asignar el teclat a qualsevol dels dos jugadors Continua podentse gastar mando i teclat a l'hora per al mateix jugador
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
#include <SDL2/SDL_stdinc.h> // Para Uint8
|
||||
#include "manage_hiscore_table.h"
|
||||
#include <vector> // Para vector
|
||||
#include "input.h"
|
||||
#include <string>
|
||||
enum class InputType : int;
|
||||
enum class ScreenFilter : int;
|
||||
@@ -57,8 +58,8 @@ struct OptionsAudio
|
||||
{
|
||||
OptionsMusic music; // Opciones para la música
|
||||
OptionsSound sound; // Opciones para los efectos de sonido
|
||||
bool enabled; // Indica si el audio está activo o no
|
||||
int volume; // Volumen al que suenan el audio
|
||||
bool enabled; // Indica si el audio está activo o no
|
||||
int volume; // Volumen al que suenan el audio
|
||||
};
|
||||
|
||||
// Estructura para las opciones del juego
|
||||
@@ -75,25 +76,35 @@ struct OptionsController
|
||||
{
|
||||
int index; // Indice en el vector de mandos
|
||||
int player_id; // Jugador asociado al mando
|
||||
Uint8 device_type; // Indica si se utilizará teclado o mando o ambos
|
||||
InputDeviceToUse type; // Indica si se utilizará teclado o mando o ambos
|
||||
std::string name; // Nombre del dispositivo
|
||||
bool plugged; // Indica si el mando se encuentra conectado
|
||||
std::vector<InputType> inputs; // Listado de inputs
|
||||
std::vector<SDL_GameControllerButton> buttons; // Listado de botones asignados a cada input
|
||||
|
||||
// Constructor por defecto
|
||||
OptionsController()
|
||||
: index(-1), player_id(-1), type(InputDeviceToUse::CONTROLLER), name(""), plugged(false)
|
||||
{
|
||||
inputs = {InputType::FIRE_LEFT, InputType::FIRE_CENTER, InputType::FIRE_RIGHT, InputType::START, InputType::SERVICE};
|
||||
buttons = {SDL_CONTROLLER_BUTTON_X, SDL_CONTROLLER_BUTTON_Y, SDL_CONTROLLER_BUTTON_B, SDL_CONTROLLER_BUTTON_START, SDL_CONTROLLER_BUTTON_BACK};
|
||||
}
|
||||
};
|
||||
|
||||
// Estructura con todas las opciones de configuración del programa
|
||||
struct Options
|
||||
{
|
||||
OptionsGame game; // Opciones para el propio juego
|
||||
OptionsVideo video; // Opciones relativas a la clase screen
|
||||
OptionsAudio audio; // Opciones para el audio
|
||||
std::vector<OptionsController> controller; // Opciones con las asignaciones del mando para cada jugador
|
||||
OptionsGame game; // Opciones para el propio juego
|
||||
OptionsVideo video; // Opciones relativas a la clase screen
|
||||
OptionsAudio audio; // Opciones para el audio
|
||||
std::vector<OptionsController> controllers; // Opciones con las asignaciones del mando para cada jugador
|
||||
};
|
||||
|
||||
// Variables
|
||||
extern Options options;
|
||||
|
||||
void initOptions();
|
||||
|
||||
// Carga el fichero de configuración
|
||||
bool loadOptionsFile(std::string file_path);
|
||||
|
||||
@@ -101,4 +112,16 @@ bool loadOptionsFile(std::string file_path);
|
||||
bool saveOptionsFile(std::string file_path);
|
||||
|
||||
// Convierte valores de 0 a 100 en valores de 0 a 128
|
||||
int to_JA_volume(int vol);
|
||||
int to_JA_volume(int vol);
|
||||
|
||||
// Asigna el teclado al jugador
|
||||
void setKeyboardToPlayer(int player_id);
|
||||
|
||||
// Intercambia el teclado de jugador
|
||||
void swapOptionsKeyboard();
|
||||
|
||||
// Intercambia los jugadores asignados a los dos primeros mandos
|
||||
void swapOptionsControllers();
|
||||
|
||||
// Averigua quien está usando el teclado
|
||||
int getPlayerWhoUsesKeyboard();
|
||||
Reference in New Issue
Block a user