Commit Graph

119 Commits

Author SHA1 Message Date
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
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
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
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
27f8b0ae36 cppcheck 2026-04-18 13:22:13 +02:00
2e1a82ff40 afegit suppress a cppcheck 2026-04-18 12:55:27 +02:00
94aa69cffe afegit resource::cache
normalitzat Audio
2026-04-18 11:41:34 +02:00
7409c799c3 build: unifica .clang-format/.clang-tidy i exclou external/ i spv/ amb dummies 2026-04-17 16:21:56 +02:00
417699d276 renombrats els fitxers de musica 2026-04-17 13:29:07 +02:00
9d86137203 arreglos en make i cmake per estandaritzar amb la resta de projectes
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 12:59:31 +02:00
52369be7ae el logo nou de la intro es tornava a descentrar 2026-04-16 22:15:37 +02:00
1c11a3057b afegits events de canvas d'emscripten 2026-04-16 22:12:30 +02:00
e8b0b12f98 internal resolution 2026-04-16 21:40:14 +02:00
16a3f5b470 treballant en internal resolution 2026-04-16 20:53:13 +02:00
5cda8fc3f9 centrat correctament el logo de jailgames (el nou) 2026-04-16 20:18:28 +02:00
5956d874c3 animacio de tancar el menu 2026-04-16 20:14:35 +02:00
e0f9b60f22 menu de sistema amb versió i opció per a tancar i reiniciar 2026-04-16 20:01:58 +02:00
d3bdd9b783 afegit fix de mandos en emscripten android 2026-04-16 19:35:48 +02:00
a36662ac6e fix: shaders on i off no afectaven a crtpi 2026-04-16 19:26:45 +02:00
52431adb0e afegits tots els valors d'escala que dona sdl3 2026-04-16 19:15:35 +02:00
a3fc1119ae menu ara permet amagar items en funció d'altres items 2026-04-16 19:01:35 +02:00
6394e9afab varies coses i detallets 2026-04-16 18:46:58 +02:00
fe41919e1e clang-format
mogudes coses de config.yaml a debug.yaml
2026-04-16 16:46:18 +02:00
0cd09f6d28 idem 2026-04-16 16:37:38 +02:00
083a57dab5 ordenada la carpeta data 2026-04-16 16:37:30 +02:00
4244bcaea3 acabat amb resource.pack 2026-04-16 16:21:44 +02:00
b2d5f5af61 feat: resource.pack estil coffee_crisis — Fase 1 (pack + helper + eina pack_resources) 2026-04-16 13:58:39 +02:00
7f26b8dbd0 opcions per defecte d'emscripten 2026-04-16 13:40:21 +02:00
550e3e0e12 refactor: JA_Sound_t RAII — buffer amb unique_ptr + SDLFreeDeleter, elimina JA_NewSound 2026-04-16 13:28:31 +02:00
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
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
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
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
d343e719ca step 9: intro_sprites_scene com a sub-escena (elimina doIntroSprites + 3 variants aleatòries) 2026-04-16 08:38:47 +02:00
e18b7321eb step 8: intro_scene substituix doIntro() (revelat JAILGAMES lletra a lletra + cicle de paleta) 2026-04-16 08:00:22 +02:00
6125277d70 docs: plan de migració scenes:: al repo (per a continuar des d'altres equips) 2026-04-16 00:18:09 +02:00
6063b1c606 step 7: secreta_scene amb swap de tomba1→tomba2 i red pulse animat 2026-04-16 00:13:02 +02:00
829d7431c1 step 6: credits_scene substituix doCredits() (scroll vertical + parallax condicional) 2026-04-16 00:03:25 +02:00
605c273173 step 5: slides_scene amb wipe suau per easing (substituix doSlides) 2026-04-15 23:50:59 +02:00
ad38fc09cf step 4: intro_new_logo_scene substituix doIntroNewLogo(); doIntroSprites exposat temporalment 2026-04-15 23:28:22 +02:00
8720e775a0 step 3: menu_scene substituix doMenu() + fix JI_Update al fiber loop 2026-04-15 23:19:58 +02:00
2cb38ffb49 step 2: banner_scene substituix doBanner() (piràmides 2-5) + helper playMusic compartit 2026-04-15 23:13:05 +02:00
d86cb21efa step 1: mort_scene substituix doMort() amb la capa scenes:: 2026-04-15 23:05:45 +02:00
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
1507a1c740 fase 4+5: fibers cooperatius substitueixen el game thread, sense mutex ni cv 2026-04-15 18:50:43 +02:00
801a8ad1bd fase 3: port de jail_audio header-only amb streaming i sense SDL_AddTimer 2026-04-15 18:23:34 +02:00
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
7f85b50c63 fase 1: jail i game a c++ idiomàtic (raii, info::ctx, cheats arreglats) 2026-04-15 18:03:46 +02:00
2c833d086e noves opcions de menu i config.yaml per desactivar les dos coses visuals que he afegit al port v1.11 2026-04-08 19:22:11 +02:00
91fe0625d3 fix: make release en windows 2026-04-05 18:12:40 +02:00