revisió de capçaleres
This commit is contained in:
@@ -2,76 +2,57 @@
|
||||
|
||||
#include <SDL3/SDL_events.h> // Para SDL_Event, SDL_GamepadButtonEvent
|
||||
#include <SDL3/SDL_gamepad.h> // Para SDL_GamepadButton
|
||||
#include <memory> // Para std::shared_ptr
|
||||
#include <stddef.h> // Para size_t
|
||||
#include <memory> // Para shared_ptr
|
||||
#include <string> // Para string
|
||||
#include <vector> // Para vector
|
||||
class Input; // lines 10-10
|
||||
class Text; // lines 11-11
|
||||
enum class InputAction : int; // lines 12-12
|
||||
#include <string> // Para std::string
|
||||
#include <vector> // Para std::vector
|
||||
|
||||
// Declaraciones adelantadas
|
||||
class Input;
|
||||
class Text;
|
||||
enum class InputAction : int;
|
||||
|
||||
// Estructura para definir botones
|
||||
struct DefineButtonsButton
|
||||
{
|
||||
std::string label; // Texto en pantalla para el botón
|
||||
InputAction input; // Input asociado
|
||||
SDL_GamepadButton button; // Botón del mando correspondiente
|
||||
std::string label; // Texto en pantalla
|
||||
InputAction input; // Acción asociada
|
||||
SDL_GamepadButton button; // Botón del mando
|
||||
|
||||
// Constructor
|
||||
DefineButtonsButton(const std::string &lbl, InputAction inp, SDL_GamepadButton btn)
|
||||
: label(lbl), input(inp), button(btn) {}
|
||||
};
|
||||
|
||||
// Clase Bullet
|
||||
// Clase DefineButtons
|
||||
class DefineButtons
|
||||
{
|
||||
private:
|
||||
// Objetos
|
||||
Input *input_; // Objeto pata gestionar la entrada
|
||||
std::shared_ptr<Text> text_; // Objeto para escribir texto
|
||||
|
||||
// Variables
|
||||
bool enabled_ = false; // Indica si el objeto está habilitado
|
||||
int x_; // Posición donde dibujar el texto
|
||||
int y_; // Posición donde dibujar el texto
|
||||
std::vector<DefineButtonsButton> buttons_; // Vector con las nuevas definiciones de botones/acciones
|
||||
size_t index_controller_ = 0; // Indice del controlador a reasignar
|
||||
size_t index_button_ = 0; // Indice para saber qué botón se está definiendo
|
||||
std::vector<std::string> controller_names_; // Nombres de los mandos
|
||||
|
||||
// Incrementa el indice de los botones
|
||||
void incIndexButton();
|
||||
|
||||
// Comprueba el botón que se ha pulsado
|
||||
void doControllerButtonDown(const SDL_GamepadButtonEvent &event);
|
||||
|
||||
// Asigna los botones definidos al input
|
||||
void bindButtons();
|
||||
|
||||
// Guarda los cambios en las opciones
|
||||
void saveBindingsToOptions();
|
||||
|
||||
// Comprueba que un botón no esté ya asignado
|
||||
bool checkButtonNotInUse(SDL_GamepadButton button);
|
||||
|
||||
// Limpia la asignación de botones
|
||||
void clearButtons();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
DefineButtons();
|
||||
|
||||
// Destructor
|
||||
~DefineButtons() = default;
|
||||
|
||||
// Dibuja el objeto en pantalla
|
||||
void render();
|
||||
void render(); // Dibuja el objeto en pantalla
|
||||
void checkEvents(const SDL_Event &event); // Procesa los eventos
|
||||
bool enable(int index_controller); // Habilita la redefinición de botones
|
||||
bool isEnabled() const; // Comprueba si está habilitado
|
||||
|
||||
// Comprueba los eventos
|
||||
void checkEvents(const SDL_Event &event);
|
||||
private:
|
||||
// Objetos
|
||||
Input *input_ = nullptr; // Gestión de entrada
|
||||
std::shared_ptr<Text> text_; // Renderizado de texto
|
||||
|
||||
// Habilita el objeto
|
||||
bool enable(int index);
|
||||
// Variables
|
||||
bool enabled_ = false; // Indica si está activo
|
||||
int x_ = 0, y_ = 0; // Coordenadas de texto
|
||||
std::vector<DefineButtonsButton> buttons_; // Definiciones de botones
|
||||
size_t index_controller_ = 0; // Índice del controlador asignado
|
||||
size_t index_button_ = 0; // Índice del botón en proceso
|
||||
std::vector<std::string> controller_names_; // Nombres de los mandos
|
||||
|
||||
// Comprueba si está habilitado
|
||||
bool isEnabled();
|
||||
};
|
||||
// Métodos internos
|
||||
void incIndexButton(); // Incrementa el índice de botones
|
||||
void doControllerButtonDown(const SDL_GamepadButtonEvent &event); // Procesa pulsaciones
|
||||
void bindButtons(); // Asigna botones al sistema de entrada
|
||||
void saveBindingsToOptions(); // Guarda configuraciones
|
||||
bool checkButtonNotInUse(SDL_GamepadButton button); // Verifica uso de botones
|
||||
void clearButtons(); // Limpia asignaciones actuales
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user