161 Commits

Author SHA1 Message Date
JailDesigner 5d18d7d6c4 merge fix/neteja-warnings: neteja de warnings 2026-05-31 00:16:28 +02:00
JailDesigner 6852289e85 fix: silencia warning de stb_vorbis 2026-05-31 00:16:28 +02:00
JailDesigner 9c0aece0dd merge docs/arquitectura: guia d'arquitectura del projecte 2026-05-29 13:46:52 +02:00
JailDesigner 29a919be3a afig guia d'arquitectura del projecte 2026-05-29 13:46:12 +02:00
JailDesigner d89141e014 activa -Wextra -Wpedantic i neteja warnings 2026-05-19 15:42:50 +02:00
JailDesigner b65a615be2 merge audita-nolint: 11→7 NOLINT (neteja obsolets) 2026-05-18 06:33:16 +02:00
JailDesigner da56a81bc3 neteja NOLINT obsolets (11 a 7, sdl3gpu_shader + bulk segur) 2026-05-18 06:32:59 +02:00
JailDesigner a95b4bd1b6 merge: migració PostFX a versió analítica sense supersampling 2026-05-17 15:08:00 +02:00
JailDesigner b0c95111a2 elimina supersampling (Lanczos downscale, keybinding, menu, locale) 2026-05-17 15:07:28 +02:00
JailDesigner 96763847fb PostFXParams/Preset amb chroma_min/max + scan_*; presets AEE migrats 2026-05-17 15:06:42 +02:00
JailDesigner dcb004b5a7 shader postfx nou + spv regenerat + msl extret a headers 2026-05-17 15:06:24 +02:00
JailDesigner 70aa58ec46 merge: neteja tidy AEE (404→0) 2026-05-16 16:16:36 +02:00
JailDesigner e1bc1b597f refactor: extreure helpers per reduir complexitat cognitiva (tidy net) 2026-05-16 16:13:57 +02:00
JailDesigner b984e6041e fix: tidy statics, instance, stretch43, fill/find_if ranges, NOLINT externs 2026-05-16 15:17:38 +02:00
JailDesigner ae359f4a1e fix: tidy namespace Scenes::/Info:: PascalCase i locals UPPER_CASE 2026-05-16 15:06:16 +02:00
JailDesigner ae89b252e2 fix: tidy director/jdraw8/jinput/jfile (locals UPPER_CASE, file_*→Jf::) 2026-05-16 14:57:07 +02:00
JailDesigner 35cdd88cbb fix: tidy scenes enums Phase UPPER_CASE (intro/banner/mort/menu/credits) 2026-05-16 14:54:21 +02:00
JailDesigner 4cac807ce2 fix: tidy scenes (slides/secreta enums UPPER_CASE) i mapa membres _ 2026-05-16 14:46:22 +02:00
JailDesigner bbcc10da81 refactor: JI_* a Ji:: i JG_* a Jg:: 2026-05-16 14:43:16 +02:00
JailDesigner 9d30dd538c fix: tidy modulegame (enums UPPER_CASE, draw/update camelBack, membres _) 2026-05-16 14:40:18 +02:00
JailDesigner 1e00f5c3a4 fix: tidy gamepad/overlay/jfile (statics sense sufix, locals UPPER_CASE) 2026-05-16 14:37:56 +02:00
JailDesigner 7789c1c217 fix: menu.cpp enums UPPER_CASE i statics sense sufix 2026-05-16 14:35:28 +02:00
JailDesigner ec3cb78f6b fix: intro_sprites_scene snake_case → camelBack / UPPER_CASE 2026-05-16 14:32:25 +02:00
JailDesigner f37308a5f0 refactor: JD8_* a namespace Jd8:: 2026-05-16 14:24:22 +02:00
JailDesigner 1ce0d9c56c refactor: JA_* a namespace Ja:: (estil aee_arcade) 2026-05-16 14:15:25 +02:00
JailDesigner 08f587ffe4 merge: neteja cppcheck AEE 2026-05-16 13:52:34 +02:00
JailDesigner bf7be3a7f1 fix: cppcheck (21 troballes) 2026-05-16 13:52:31 +02:00
JailDesigner a48fe51f73 manuals tidy tier 3a: rondes, ternaris, anyofallof, padding, etc. 2026-05-14 19:24:02 +02:00
JailDesigner 0b82be193f manuals tidy tier 2: empty-catch, enum-size, trivially-destructible 2026-05-14 19:07:43 +02:00
JailDesigner 8676c0e773 manuals tidy tier 1: suffixes, params, switches, equals-default 2026-05-14 18:58:29 +02:00
JailDesigner b7a551c158 tidy-fix automàtic (sense naming) 2026-05-14 18:28:23 +02:00
JailDesigner 358e91ea30 moure source/scenes a source/game/scenes 2026-05-14 18:00:18 +02:00
JailDesigner 1aa0e96a91 afegir git hooks per format, tidy i cppcheck 2026-05-14 17:49:29 +02:00
JailDesigner 6ac16ebfeb binari i recursos a build/, targets en kebab 2026-05-14 17:26:15 +02:00
JailDesigner 5dcda36553 estandaritzat .clang-tidy amb el d'AEEA mantenint scenes/ al filtre 2026-05-14 16:35:44 +02:00
JailDesigner 41d429fc10 detecta Ninja com a generador de CMake si està al PATH 2026-05-14 16:23:47 +02:00
JailDesigner 4435bc4942 arreglos en makefile de macos 2026-05-03 18:07:13 +02:00
JailDesigner 4a4485c6f8 bugfixes v1.2 2026-04-18 18:16:41 +02:00
JailDesigner d09bb1cf6b actualitzat changelog 2026-04-18 17:57:05 +02:00
JailDesigner b1f9e57f36 fix: color de fonde dels sliders de 050505 a 000000 2026-04-18 15:20:25 +02:00
JailDesigner f7875baa2d refactor: fase 6 — Rule of 5 a Mapa i ModuleGame (no-copiables, no-movibles)
- Mapa té un JD8_Surface fondo propi que s'allibera al destructor: una
  còpia accidental provocaria double-free. Ara els 4 copy/move ops estan
  = delete.
- ModuleGame ja era no-copiable implícitament per tindre unique_ptr
  members, però els = delete expliciten la intenció i protegeixen
  davant refactors futurs que afegeixquen tipus copiables.

Fi de la modernització RAII per fases (1–6).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 14:03:51 +02:00
JailDesigner c6e37af7d1 refactor: fase 5 — singletons a std::unique_ptr (elimina new/delete manual)
5 singletons afectats: Audio, Screen, Director, Resource::Cache, Resource::List.

- static T* instance → static std::unique_ptr<T> instance
- init(): new T() adoptat immediatament per unique_ptr (ownership RAII)
- destroy(): instance.reset() (sense delete manual)
- get(): retorna instance.get()
- Destructors moguts a public perquè std::default_delete hi pugui accedir
  (ctors privats + copy/move deleted → encapsulació efectiva mantinguda)

Ordre de destrucció preservat: SDL_AppQuit segueix cridant destroy() en
l'ordre invers a init() — la RAII automàtica no s'activa fins al final
del programa (LIFO de variables static).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 14:02:01 +02:00
JailDesigner 5e57034a38 refactor: fase 4 — llista enllaçada de Momia a std::vector<unique_ptr>
Eliminada completament la recursivitat per next-pointer:
- Momia::next, clear(), insertar() desapareixen
- update()/draw() no recursen: operen només sobre la instància pròpia
- ModuleGame::momies: Momia* (head de llista) → std::vector<std::unique_ptr<Momia>>
  - Destructor simplificat (vector s'autodestrueix)
  - Draw: range-for sobre el vector
  - Update: std::erase_if + decrement sincronitzat de info::ctx.momies
  - Cheat "alone": momies.clear()
  - iniciarMomies i nova_momia: emplace_back(std::make_unique<Momia>(...))

Zero new/delete manuals al cicle de vida de les momies.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 13:56:05 +02:00
JailDesigner 2a8fbbb095 refactor: fase 3 — Text::bitmap_ a std::vector<Uint8>
- bitmap_: Uint8* (owning, free'd al destructor) → std::vector<Uint8>
- loadBitmap copia des del buffer de LoadGif i fa free(pixels) de
  l'intermedi (gif.h usa malloc internament)
- ~Text() eliminat: regla 0 aplicada (vector es destrueix sol)
- Les 4 comprovacions !bitmap_ → bitmap_.empty()

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 13:44:07 +02:00
JailDesigner 53e93ef697 refactor: fase 2 — elimina malloc/free a jdraw8 i paletes d'escenes
- JD8_Init/Quit: new[]/delete[] per a screen, main_palette, pixel_data
- JD8_NewSurface/FreeSurface: new Uint8[64000]{}/delete[]
- JD8_LoadPalette: uniforme — sempre retorna `new Color[256]`, copiant del
  LoadPalette extern al path no-cached (l'intermedi raw es frees amb free()
  perquè gif.h el malloca)
- JD8_SetScreenPalette: delete[] la paleta reemplaçada
- slides/secreta/menu/banner/mort scenes: std::free/std::malloc → delete[]/new Color[256]

Ownership uniforme: tot el cicle de vida de surface/palette usa new[]/delete[].

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 13:42:31 +02:00
JailDesigner e7aa2463b4 refactor: fase 1 — cleanup mecànic de baix risc (NULL→nullptr, typedef→using, explicit, enum class local)
- jdraw8.hpp: typedef → using (JD8_Surface, JD8_Palette)
- jdraw8.cpp: NULL → nullptr, C-casts → static_cast/reinterpret_cast, anon enum FadeType → enum class
- momia.cpp: NULL → nullptr
- bola/mapa/marcador/momia/engendro: explicit als constructors

Zero canvis de lògica ni ownership. Primera fase de la modernització RAII.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 13:37:48 +02:00
JailDesigner 27f8b0ae36 cppcheck 2026-04-18 13:22:13 +02:00
JailDesigner 2e1a82ff40 afegit suppress a cppcheck 2026-04-18 12:55:27 +02:00
JailDesigner 94aa69cffe afegit resource::cache
normalitzat Audio
2026-04-18 11:41:34 +02:00
JailDesigner 7409c799c3 build: unifica .clang-format/.clang-tidy i exclou external/ i spv/ amb dummies 2026-04-17 16:21:56 +02:00