Commit Graph

79 Commits

Author SHA1 Message Date
JailDesigner 1ce0d9c56c refactor: JA_* a namespace Ja:: (estil aee_arcade) 2026-05-16 14:15:25 +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 4a4485c6f8 bugfixes 2026-04-18 18:16:41 +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 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 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
JailDesigner 1c11a3057b afegits events de canvas d'emscripten 2026-04-16 22:12:30 +02:00
JailDesigner e8b0b12f98 internal resolution 2026-04-16 21:40:14 +02:00
JailDesigner 16a3f5b470 treballant en internal resolution 2026-04-16 20:53:13 +02:00
JailDesigner 5956d874c3 animacio de tancar el menu 2026-04-16 20:14:35 +02:00
JailDesigner e0f9b60f22 menu de sistema amb versió i opció per a tancar i reiniciar 2026-04-16 20:01:58 +02:00
JailDesigner d3bdd9b783 afegit fix de mandos en emscripten android 2026-04-16 19:35:48 +02:00
JailDesigner a36662ac6e fix: shaders on i off no afectaven a crtpi 2026-04-16 19:26:45 +02:00
JailDesigner 52431adb0e afegits tots els valors d'escala que dona sdl3 2026-04-16 19:15:35 +02:00
JailDesigner a3fc1119ae menu ara permet amagar items en funció d'altres items 2026-04-16 19:01:35 +02:00
JailDesigner 6394e9afab varies coses i detallets 2026-04-16 18:46:58 +02:00
JailDesigner fe41919e1e clang-format
mogudes coses de config.yaml a debug.yaml
2026-04-16 16:46:18 +02:00
JailDesigner 0cd09f6d28 idem 2026-04-16 16:37:38 +02:00
JailDesigner 4244bcaea3 acabat amb resource.pack 2026-04-16 16:21:44 +02:00
JailDesigner b2d5f5af61 feat: resource.pack estil coffee_crisis — Fase 1 (pack + helper + eina pack_resources) 2026-04-16 13:58:39 +02:00
JailDesigner 7f26b8dbd0 opcions per defecte d'emscripten 2026-04-16 13:40:21 +02:00
JailDesigner 550e3e0e12 refactor: JA_Sound_t RAII — buffer amb unique_ptr + SDLFreeDeleter, elimina JA_NewSound 2026-04-16 13:28:31 +02:00
JailDesigner 96a3cf9ebc step B.2: elimina fiber — Director posseeix l'escena, JD8_Flip sense yield, fiber.hpp/cpp esborrats 2026-04-16 11:14:48 +02:00
JailDesigner 4e18f83ec5 step B.1: fades de ModuleGame tick-based amb scenes::PaletteFade (fases FadingIn/FadingOut sense redibuixar, per no perdre el frame final) 2026-04-16 10:27:04 +02:00
JailDesigner f9346add79 refactor: jail_audio RAII polish — JA_Music_t amb vector<Uint8>/string + elimina overload i camp morts 2026-04-16 10:02:55 +02:00
JailDesigner b3ff620c81 refactor: file_getfilebuffer → file_readfile (std::vector<char>) — elimina 3 leaks (paleta + música gameplay + música cinemàtica) 2026-04-16 09:43:27 +02:00
JailDesigner e18b7321eb step 8: intro_scene substituix doIntro() (revelat JAILGAMES lletra a lletra + cicle de paleta) 2026-04-16 08:00:22 +02:00
JailDesigner 6063b1c606 step 7: secreta_scene amb swap de tomba1→tomba2 i red pulse animat 2026-04-16 00:13:02 +02:00
JailDesigner 829d7431c1 step 6: credits_scene substituix doCredits() (scroll vertical + parallax condicional) 2026-04-16 00:03:25 +02:00
JailDesigner 605c273173 step 5: slides_scene amb wipe suau per easing (substituix doSlides) 2026-04-15 23:50:59 +02:00
JailDesigner ad38fc09cf step 4: intro_new_logo_scene substituix doIntroNewLogo(); doIntroSprites exposat temporalment 2026-04-15 23:28:22 +02:00
JailDesigner 8720e775a0 step 3: menu_scene substituix doMenu() + fix JI_Update al fiber loop 2026-04-15 23:19:58 +02:00
JailDesigner 2cb38ffb49 step 2: banner_scene substituix doBanner() (piràmides 2-5) + helper playMusic compartit 2026-04-15 23:13:05 +02:00
JailDesigner d86cb21efa step 1: mort_scene substituix doMort() amb la capa scenes:: 2026-04-15 23:05:45 +02:00
JailDesigner 4436f7f569 scenes: infraestructura de la capa scenes:: (scene, timeline, sprite mover, frame animator, palette fade, surface handle, registry) 2026-04-15 19:40:39 +02:00
JailDesigner 1507a1c740 fase 4+5: fibers cooperatius substitueixen el game thread, sense mutex ni cv 2026-04-15 18:50:43 +02:00
JailDesigner 801a8ad1bd fase 3: port de jail_audio header-only amb streaming i sense SDL_AddTimer 2026-04-15 18:23:34 +02:00
JailDesigner 80fa7b46e7 fase 2: fades de jd8 a màquina d'estats i helper wait_frame_or_skip a les cinemàtiques 2026-04-15 18:12:03 +02:00
JailDesigner 7f85b50c63 fase 1: jail i game a c++ idiomàtic (raii, info::ctx, cheats arreglats) 2026-04-15 18:03:46 +02:00
JailDesigner 2c833d086e noves opcions de menu i config.yaml per desactivar les dos coses visuals que he afegit al port 2026-04-08 19:22:11 +02:00
JailDesigner b0209c8220 fix: no estava carregant gamecontrollerdb.txt 2026-04-05 17:50:07 +02:00