revisió de capçaleres

This commit is contained in:
2025-05-29 09:58:23 +02:00
parent 677e4d465d
commit 0fc8224ef8
45 changed files with 1870 additions and 2684 deletions

View File

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