JailDesigner
bf83f161b0
Fase 1e: cierre de naming sweep (#pragma once, locals, comentarios castellano)
...
Tres tareas de pulido para cerrar la Fase 1 por completo:
#pragma once uniforme:
- sdl_manager.hpp y game_scene.hpp pasan de #ifndef/#define guards
a #pragma once. Los archivos externos (stb_vorbis.h, fkyaml_node.hpp)
se mantienen intactos (codigo de terceros).
Variables locales y parametros restantes (catalan -> ingles):
- fitxer -> file, moviment -> movement, inici -> start
- comptador -> counter, escalada -> scaled
- missatges -> messages, llista -> list
- alçada -> height, amplada -> width, llargada -> length
- origen -> origin, distancia -> distance, valor -> value, desti -> target
- neteja -> clear, presenta -> present (SDLManager)
- total_enemics -> total_enemies, configurar -> configure, iniciar -> start
Comentarios catalan -> castellano:
- Cabeceras de fichero actualizadas con nombres nuevos
(escena_joc.hpp -> game_scene.hpp, etc.)
- Palabras tecnicas: trasllacio->traslacion, col-lisio->colision,
inicialitzacio->inicializacion, posicio->posicion, rotacio->rotacion,
velocitat->velocidad, acceleracio->aceleracion, explosio->explosion,
renderitzat->renderizado, calcul->calculo, transicio->transicion,
comprovacio->comprobacion, substitucio->sustitucion,
utilitzacio->utilizacion, opcio->opcion, configuracio->configuracion,
funcio->funcion, distancia, animacio->animacion
- Determinantes y conectores: aquest->este, aquesta->esta,
amb->con, sense->sin, pero->pero, mai->nunca, nomes->solo,
tambe->tambien, sempre->siempre, ja->ya, mateix->mismo,
vegada->vez, dintre->dentro, fora->fuera, dreta->derecha,
esquerra->izquierda, sortir->salir, sortida->salida,
petit->pequeno, gran->grande, nou->nuevo, vell->viejo,
molt->mucho, els->los, les->las, totes les->todas las,
d'->de, com->como, quan->cuando, mentre->mientras,
despres->despues, abans->antes, durant->durante, fins->hasta,
encara->aun, llavors->entonces, aixi->asi, perque->porque
- Sustantivos: classe->clase, metode->metodo, parametre->parametro,
versio->version, entitat->entidad, joc->juego, nivell->nivel,
enemic->enemigo, naus->naves, bales->balas, fitxer->archivo,
pentagon->pentagono, pun- tuacio->puntuacion, flotant->flotante,
titol->titulo, objectiu->objetivo, mostra->muestra, tipus->tipo
Strings literales preservados en valenciano segun decision del
usuario: el texto del HUD del juego (puntuaciones, mensajes en
pantalla, archivo de config) se mantiene en valenciano original.
70 fitxers tocats, +1117 / -1123. Compila i enllaca.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 12:12:30 +02:00
JailDesigner
7ee359b910
Fase 1d: rename del codi restant (effects, stage_system, locals)
...
Sweep final del naming a CamelCase/camelBack/lower_case:
Fitxers renombrats:
- effects/gestor_puntuacio_flotant.{hpp,cpp} -> floating_score_manager.{hpp,cpp}
- effects/puntuacio_flotant.hpp -> floating_score.hpp
Tipus (CamelCase):
- GestorPuntuacioFlotant -> FloatingScoreManager
- PuntuacioFlotant -> FloatingScore
- ConfigStage -> StageConfig
- ConfigSistemaStages -> StageSystemConfig
- NauTitol -> TitleShip
- EstatNau -> ShipState
Metodes publics (camelBack):
- obte_renderer -> getRenderer
- get_num_actius -> getActiveCount
- calcular_direccio_explosio -> computeExplosionDirection
- trobar_slot_lliure -> findFreeSlot
- explotar -> explode
- reiniciar -> reset
- es_valida -> isValid
- parsejar_fitxer -> parseFile
- carregar -> load
- crear_explosio -> createExplosion
- registrar_puntuacio -> registerScore
- construir_marcador -> buildScoreboard
- render_centered -> renderCentered
Camps struct publics (snake_case):
- actiu/actius -> active
- rotacio -> rotation, rotacio_visual -> visual_rotation
- acceleracio -> acceleration
- velocitat -> velocity
- escala/escala_inicial/objectiu/actual -> scale/initial_scale/...
- posicio/posicio_inicial/objectiu/actual -> position/initial_position/...
- fase_oscilacio -> oscillation_phase
- temps_estat -> state_time
- jugador_id -> player_id
- estat -> state
- brillantor -> brightness
- tipus -> type
Camps privats (sufix _):
- naus_ -> ships_, orni_ -> enemies_, bales_ -> bullets_
- gestor_puntuacio_ -> floating_score_manager_
- punt_mort_ -> death_position_, punt_spawn_ -> spawn_position_
- itocado_per_jugador_ -> hit_timer_per_player_
- vides_per_jugador_ -> lives_per_player_
- puntuacio_per_jugador_ -> score_per_player_
- estat_game_over_ -> game_over_state_
- continues_usados_ -> continues_used_
Constants:
- MARGE_ESQ/DRET/DALT/BAIX -> MARGIN_LEFT/RIGHT/TOP/BOTTOM
Variables locals i parametres comuns (snake_case):
- nau -> ship, enemic -> enemy, bala -> bullet
- forma -> shape, punt(s) -> point(s)
- jugador -> player, partida -> match
- temps -> time, missatge -> message
Diff: 59 fitxers, +1000/-1000 (simetric). Compila i enllaça.
Pendents per a futures fases (no bloquejants):
- Comentaris de capçalera en catala -> castella
- Variables locals/parametres minoritaris en catala
- Include guards (queden alguns #ifndef en lloc de #pragma once)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:44:45 +02:00
JailDesigner
5871d29d48
Fase 1c: rename d'escenes i sistema d'escenes
...
Tots els tipus, fitxers, namespace, enums i metodes relacionats amb
les escenes passen del catala a l'angles seguint el .clang-tidy:
Fitxers (renames git):
- source/game/escenes/escena_joc.{hpp,cpp} -> game/scenes/game_scene.{hpp,cpp}
- source/game/escenes/escena_titol.{hpp,cpp} -> game/scenes/title_scene.{hpp,cpp}
- source/game/escenes/escena_logo.{hpp,cpp} -> game/scenes/logo_scene.{hpp,cpp}
- source/core/system/context_escenes.hpp -> core/system/scene_context.hpp
- Carpeta game/escenes/ -> game/scenes/
Tipus (CamelCase):
- EscenaJoc -> GameScene
- EscenaTitol -> TitleScene
- EscenaLogo -> LogoScene
- ContextEscenes -> SceneContext
- Escena (enum class) -> SceneType
- Opcio -> Option
- EstatGameOver -> GameOverState
- EstatTitol -> TitleState
- EstatAnimacio -> AnimationState
- ConfigPartida -> MatchConfig
Namespace:
- GestorEscenes -> SceneManager
Valors d'enum SceneType:
- TITOL -> TITLE
- JOC -> GAME
- EIXIR -> EXIT
(LOGO mantingut)
Metodes (camelBack):
- executar -> run
- canviar_escena -> setNextScene
- escena_desti -> nextScene
- opcio (getter) -> option
- consumir_opcio -> consumeOption
- reset_opcio -> resetOption
- set_config_partida -> setMatchConfig
- get_config_partida -> getMatchConfig
Camps privats (lower_case_):
- escena_desti_ -> next_scene_
- opcio_ -> option_
- config_partida_ -> match_config_
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:41:11 +02:00
JailDesigner
ae5cc1cfb4
Fase 1b: rename d'entitats i metodes virtuals a CamelCase/camelBack
...
Tots els tipus d'entitat passen del catala a l'angles seguint el
.clang-tidy del projecte (tipus en CamelCase, metodes en camelBack,
membres en lower_case amb sufix _).
Renames de tipus:
- Entitat -> Entity (core/entities/entity.hpp)
- Nau -> Ship (game/entities/ship.{hpp,cpp})
- Enemic -> Enemy (game/entities/enemy.{hpp,cpp})
- Bala -> Bullet (game/entities/bullet.{hpp,cpp})
- TipusEnemic -> EnemyType
- AnimacioEnemic -> EnemyAnimation
Metodes virtuals (s'aplica a tot el codi, no nomes a entitats):
- actualitzar -> update
- dibuixar -> draw
- inicialitzar -> init
- processar_input -> processInput
- esta_actiu -> isActive
- es_collidable -> isCollidable
- get_collision_radius -> getCollisionRadius
Getters comuns:
- get_centre -> getCenter
- get_angle -> getAngle
- get_brightness -> getBrightness
- get_forma -> getShape
Metodes especifics:
- esta_viva -> isAlive
- esta_tocada -> isHit
- es_invulnerable -> isInvulnerable
- get_velocitat_vector -> getVelocityVector
- set_centre -> setCenter
- marcar_tocada -> markHit
- aplicar_fisica -> applyPhysics
- get_tipus -> getType
Camps privats:
- centre_ -> center_
- velocitat_ -> velocity_
- forma_ -> shape_
- esta_tocada_ -> is_hit_
- tipus_ -> type_
L'import d'audio/input d'AEEA quedara coherent (mateix estil).
Diff net: 30 fitxers, +437/-437 (la majoria es renames simetrics).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:37:18 +02:00
JailDesigner
cd38101f99
Fase 1a: Punt -> Vec2 amb operadors moderns
...
Primera sub-fase del naming sweep. Punt era un struct sense
operacions, conservat per compatibilitat amb el Pascal original.
Substituit per Vec2, un aggregate amb operadors aritmetics, dot,
length, normalized i length_squared (camelBack: lengthSquared)
seguint les regles del .clang-tidy del projecte.
Canvis:
- core/types.hpp reescrit: nou struct Vec2 amb +=,-=,*=,/=,
unary -, ==, dot, length, lengthSquared, normalized
- Operadors fora de la classe: +, -, *, / (amb float per ambdues
bandes), - unari, ==
- Vec2 segueix sent aggregate (sense constructors definits):
els 'designated initializers' del codi existent funcionen igual:
Vec2{.x = ..., .y = ...}
- Sed global sobre 35 fitxers: tots els 'Punt' -> 'Vec2'
Net: 35 fitxers tocats, +180 / -114. Compila i enllaça.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:33:27 +02:00
JailDesigner
6cf990bc1d
Fase 0: eliminar tot el codi llegacy (polars + primitives + bool dibuixar)
...
Aplicada la directiva "res llegacy" abans d'arrencar la migracio a fisica
vectorial + SDL3 GPU. Cada bossa de cruft que arrossegava el port de Pascal
queda eliminada.
Borrats (huerfanos):
- source/core/rendering/primitives.hpp/.cpp (modul/diferencia/angle_punt/
crear_poligon_regular)
- source/core/rendering/polygon_renderer.hpp/.cpp (rota_tri/rota_pol)
- core::types::Triangle, Poligon, IPunt
- Defaults::Entities::MAX_IPUNTS i alias a constants.hpp
- EscenaJoc::chatarra_cosmica_ (mai usat)
- Bresenham comentat dins de Rendering::linea()
Simplificat (parametre 'dibuixar' llegacy que sempre era true):
- Rendering::linea(...): treta la signatura bool dibuixar, retorn void
- Rendering::render_shape(...): treta la signatura bool dibuixar
- 11 callsites de linea() actualitzats (escena_joc, debris_manager)
- 12 callsites de render_shape() actualitzats
Modernitzats:
- 5 fitxers .shp netejats de comentaris polar->cartesia historics
- types.hpp queda nomes amb Punt (l'unica coordenada del joc)
- debris_manager.hpp afegit include explicit de defaults.hpp
Net: 452 linies eliminades, 56 afegides. Compila i enllaca correctament.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 11:10:42 +02:00
JailDesigner
1acdd3f38d
corregit make linux_release
2025-12-23 08:18:13 +01:00
JailDesigner
b4b76ed6e8
afegit default per a fullscreen
2025-12-19 17:26:20 +01:00
JailDesigner
6f4eb9c1fc
tidy: includes
2025-12-19 13:03:52 +01:00
JailDesigner
47f7ffb169
feat: implementar jerarquia d'entitats amb classe base Entitat
2025-12-19 13:01:58 +01:00
JailDesigner
70f2642e6d
feat(linter): afegir checks llvm-include-order i misc-include-cleaner
...
- Check 11: llvm-include-order (0 errors - codi ja compleix)
- Check 12: misc-include-cleaner (detectar includes no usats i faltants)
- Configurar IgnoreHeaders per SDL3 (genera falsos positius)
- Fix: afegir <cstdint> a nau.hpp, enemic.hpp, bala.hpp
- Fix: afegir <cmath> a nau.hpp, enemic.hpp (std::cos/sin)
Include order validat segons LLVM coding standards.
Headers més nets i compilació més ràpida.
2025-12-18 22:35:46 +01:00
JailDesigner
1a42f24a68
refactor(includes): convertir includes relativos a absolutos
...
- escena_joc.hpp: 7 includes cambiados de ../ a rutas absolutas
- pre-commit hook: añadir validación de includes relativos
- Bloquea commits con includes tipo #include "../foo.hpp"
- Coherencia con CMakeLists.txt (include_directories desde source/)
2025-12-18 22:24:17 +01:00
JailDesigner
364cf36183
perf: aplicar checks performance-* (91 fixes)
...
Cambios aplicados:
- Reemplazar std::endl con '\n' (91 casos)
* std::endl hace flush del buffer (más lento)
* '\n' solo inserta newline (más rápido)
* Mejora rendimiento de logging/debug
Check excluido:
- performance-enum-size: Tamaño de enum no es crítico para rendimiento
2025-12-18 21:24:07 +01:00
JailDesigner
7f6af6dd00
style: aplicar checks modernize-* (215 fixes)
...
Cambios aplicados:
- [[nodiscard]] añadido a funciones que retornan valores
- .starts_with() en lugar de .find() == 0
- Inicializadores designados {.x=0, .y=0}
- auto en castings obvios
- = default para constructores triviales
- Funciones deleted movidas a public
- std::numbers::pi_v<float> (C++20)
Checks excluidos:
- use-trailing-return-type: Estilo controversial
- avoid-c-arrays: Arrays C aceptables en ciertos contextos
2025-12-18 20:16:46 +01:00
JailDesigner
fdfb84170f
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
2025-12-18 19:51:43 +01:00
JailDesigner
76786203a0
style: aplicar readability-math-missing-parentheses
...
- Agregar paréntesis explícitos en operaciones matemáticas para claridad
- Ejemplos: '1.0F - a * b' → '1.0F - (a * b)'
- 291 correcciones aplicadas automáticamente con clang-tidy
- Check 2/N completado
🤖 Generated with Claude Code
2025-12-18 13:09:35 +01:00
JailDesigner
bc94eff176
style: aplicar readability-uppercase-literal-suffix
...
- Cambiar todos los literales float de minúscula a mayúscula (1.0f → 1.0F)
- 657 correcciones aplicadas automáticamente con clang-tidy
- Check 1/N completado
🤖 Generated with Claude Code
2025-12-18 13:06:48 +01:00
JailDesigner
bfb4903998
eliminat warning
2025-12-17 22:53:11 +01:00
JailDesigner
f3abab7a13
augmentat numero de debris de 100 a 150 per necesitats del logo
2025-12-17 22:53:05 +01:00
JailDesigner
54031e3520
afegit friendly fire
2025-12-17 19:39:33 +01:00
JailDesigner
8b9d26a02c
delay en naus en titol
2025-12-17 18:55:41 +01:00
JailDesigner
3d5277a395
fix: ratolí visible en fullscreen
2025-12-17 18:36:12 +01:00
JailDesigner
2555157bd7
fix: en alguns casos no podies tornar a unirte a la partida
2025-12-17 18:16:46 +01:00
JailDesigner
461eaedecf
retocs en nave2
2025-12-17 17:55:14 +01:00
JailDesigner
1891c9e49e
eliminades shapes sobrants
2025-12-17 17:44:23 +01:00
JailDesigner
829a895464
continue counter ara arriba fins a 0
2025-12-17 17:21:03 +01:00
JailDesigner
8bc259b25a
nous sons
2025-12-17 17:05:42 +01:00
JailDesigner
ec333efe66
afegida logica de continues
...
fix: el text no centrava correctament en horitzontal
2025-12-17 13:31:32 +01:00
JailDesigner
3b432e6580
layout de TITOL
2025-12-17 11:32:37 +01:00
JailDesigner
886ec8ab1d
amagat el cursor d'inici en mode finestra
2025-12-16 22:47:12 +01:00
JailDesigner
bc5982b286
treballant en les naus de title
2025-12-16 22:14:55 +01:00
JailDesigner
75a4a1b3b9
millorada la JOIN_PHASE i fase final de TITOL
2025-12-16 12:34:19 +01:00
JailDesigner
f3f0bfcd9a
afegit so a init_hud
2025-12-16 10:05:18 +01:00
JailDesigner
c959e0e3a0
animacions de INIT_HUD amb control d'inici i final
2025-12-16 09:39:53 +01:00
JailDesigner
8b896912b2
centralitzada la gestio d'SKIP per a les escenes
2025-12-16 08:33:29 +01:00
JailDesigner
3d0057220d
afegides tecles d'START. ja comença el joc amb el numero correcte de jugadors
2025-12-12 16:40:46 +01:00
JailDesigner
0c75f56cb5
treballant en context per a jugador 1, jugador 2 o els dos
2025-12-12 10:43:17 +01:00
JailDesigner
0ceaa75862
integrada classe Input
2025-12-11 12:41:03 +01:00
JailDesigner
087b8d346d
afegit segon jugador
2025-12-10 17:18:34 +01:00
JailDesigner
aca1f5200b
els enemics poden morir mentre fan spawn
2025-12-10 11:58:26 +01:00
JailDesigner
3b638f4715
respawn de nau i invulnerabilitat
2025-12-10 11:35:45 +01:00
JailDesigner
9a5adcbcc5
revisat el marcador
...
modificada la shape 03
2025-12-10 11:05:15 +01:00
JailDesigner
07e00fff09
eliminada ship2.shp i substituida ship.shp
2025-12-10 07:51:02 +01:00
JailDesigner
b4e0ca7eca
INIT_HUD amb temps de les animacions per percentatge
...
ordenats en subcarpetes els fitxers d'audio
corregit typo LIFES a LIVES
2025-12-09 22:57:01 +01:00
JailDesigner
b8173b205b
acabat INIT_HUD
2025-12-09 22:17:35 +01:00
JailDesigner
57d623d6bc
treballant en INIT_HUD
2025-12-09 22:09:24 +01:00
JailDesigner
64ab08973c
efecte maquina d'escriure per als textos d'entrada de fase
2025-12-09 19:38:29 +01:00
JailDesigner
94a7a38cdd
afegit sistema de punts
2025-12-09 16:56:07 +01:00
JailDesigner
76165e4345
limitada la velocitat angular dels debris i transformada en velocitat lineal tangencial
2025-12-09 13:38:18 +01:00
JailDesigner
20ca024100
les bales ara son redones
2025-12-09 12:58:44 +01:00