style: aplicar todos los checks readability-* (225 fixes)

Cambios aplicados:
- readability-braces-around-statements (añadir llaves en ifs/fors)
- readability-implicit-bool-conversion (puntero → bool explícito)
- readability-container-size-empty (.empty() en lugar de .size()==0)
- readability-container-contains (.contains() C++20)
- readability-make-member-function-const (métodos const)
- readability-else-after-return (5 casos adicionales)
- Añadido #include <cmath> en defaults.hpp

Checks excluidos (justificados):
- identifier-naming: Cascada de 300+ cambios
- identifier-length: Nombres cortos son OK en este proyecto
- magic-numbers: Demasiados falsos positivos
- convert-member-functions-to-static: Rompe encapsulación
- use-anyofallof: C++20 ranges no universal
- function-cognitive-complexity: Complejidad aceptable
- clang-analyzer-security.insecureAPI.rand: rand() suficiente para juegos
This commit is contained in:
2025-12-18 19:51:43 +01:00
parent 2088ccdcc6
commit fdfb84170f
28 changed files with 258 additions and 167 deletions

View File

@@ -6,6 +6,7 @@
#include <SDL3/SDL.h>
#include <algorithm>
#include <cmath>
#include <iostream>
@@ -40,12 +41,13 @@ void Nau::inicialitzar(const Punt* spawn_point, bool activar_invulnerabilitat) {
// fitxer Només inicialitzem l'estat de la instància
// Use custom spawn point if provided, otherwise use center
if (spawn_point) {
if (spawn_point != nullptr) {
centre_.x = spawn_point->x;
centre_.y = spawn_point->y;
} else {
// Default: center of play area
float centre_x, centre_y;
float centre_x;
float centre_y;
Constants::obtenir_centre_zona(centre_x, centre_y);
centre_.x = static_cast<int>(centre_x);
centre_.y = static_cast<int>(centre_y);
@@ -69,8 +71,9 @@ void Nau::processar_input(float delta_time, uint8_t player_id) {
// Processar input continu (com teclapuls() del Pascal original)
// Basat en joc_asteroides.cpp línies 66-85
// Només processa input si la nau està viva
if (esta_tocada_)
if (esta_tocada_) {
return;
}
auto* input = Input::get();
@@ -88,9 +91,7 @@ void Nau::processar_input(float delta_time, uint8_t player_id) {
if (input->checkActionPlayer1(InputAction::THRUST, Input::ALLOW_REPEAT)) {
if (velocitat_ < Defaults::Physics::MAX_VELOCITY) {
velocitat_ += Defaults::Physics::ACCELERATION * delta_time;
if (velocitat_ > Defaults::Physics::MAX_VELOCITY) {
velocitat_ = Defaults::Physics::MAX_VELOCITY;
}
velocitat_ = std::min(velocitat_, Defaults::Physics::MAX_VELOCITY);
}
}
} else {
@@ -106,9 +107,7 @@ void Nau::processar_input(float delta_time, uint8_t player_id) {
if (input->checkActionPlayer2(InputAction::THRUST, Input::ALLOW_REPEAT)) {
if (velocitat_ < Defaults::Physics::MAX_VELOCITY) {
velocitat_ += Defaults::Physics::ACCELERATION * delta_time;
if (velocitat_ > Defaults::Physics::MAX_VELOCITY) {
velocitat_ = Defaults::Physics::MAX_VELOCITY;
}
velocitat_ = std::min(velocitat_, Defaults::Physics::MAX_VELOCITY);
}
}
}
@@ -116,15 +115,14 @@ void Nau::processar_input(float delta_time, uint8_t player_id) {
void Nau::actualitzar(float delta_time) {
// Només actualitzar si la nau està viva
if (esta_tocada_)
if (esta_tocada_) {
return;
}
// Decrementar timer de invulnerabilidad
if (invulnerable_timer_ > 0.0F) {
invulnerable_timer_ -= delta_time;
if (invulnerable_timer_ < 0.0F) {
invulnerable_timer_ = 0.0F;
}
invulnerable_timer_ = std::max(invulnerable_timer_, 0.0F);
}
// Aplicar física (moviment + fricció)
@@ -133,8 +131,9 @@ void Nau::actualitzar(float delta_time) {
void Nau::dibuixar() const {
// Només dibuixar si la nau està viva
if (esta_tocada_)
if (esta_tocada_) {
return;
}
// Si invulnerable, parpadear (toggle on/off)
if (es_invulnerable()) {
@@ -149,8 +148,9 @@ void Nau::dibuixar() const {
}
}
if (!forma_)
if (!forma_) {
return;
}
// Escalar velocitat per l'efecte visual (200 px/s → ~6 px d'efecte)
// El codi Pascal original sumava velocitat (0-6) al radi per donar
@@ -182,7 +182,10 @@ void Nau::aplicar_fisica(float delta_time) {
// Boundary checking amb radi de la nau
// CORRECCIÓ: Usar límits segurs i inequalitats inclusives
float min_x, max_x, min_y, max_y;
float min_x;
float max_x;
float min_y;
float max_y;
Constants::obtenir_limits_zona_segurs(Defaults::Entities::SHIP_RADIUS,
min_x,
max_x,
@@ -201,8 +204,6 @@ void Nau::aplicar_fisica(float delta_time) {
// Fricció - desacceleració gradual (time-based)
if (velocitat_ > 0.1F) {
velocitat_ -= Defaults::Physics::FRICTION * delta_time;
if (velocitat_ < 0.0F) {
velocitat_ = 0.0F;
}
velocitat_ = std::max(velocitat_, 0.0F);
}
}