Commit Graph
100 Commits
Author SHA1 Message Date
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 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
JailDesignerandClaude Opus 4.7 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
JailDesignerandClaude Opus 4.7 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
JailDesignerandClaude Opus 4.7 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
JailDesignerandClaude Opus 4.7 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
JailDesignerandClaude Opus 4.7 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
JailDesignerandClaude Opus 4.7 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
JailDesigner 417699d276 renombrats els fitxers de musica 2026-04-17 13:29:07 +02:00
JailDesignerandClaude Opus 4.7 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
JailDesigner 52369be7ae el logo nou de la intro es tornava a descentrar 2026-04-16 22:15:37 +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 5cda8fc3f9 centrat correctament el logo de jailgames (el nou) 2026-04-16 20:18:28 +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 083a57dab5 ordenada la carpeta data 2026-04-16 16:37:30 +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 d343e719ca step 9: intro_sprites_scene com a sub-escena (elimina doIntroSprites + 3 variants aleatòries) 2026-04-16 08:38:47 +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 6125277d70 docs: plan de migració scenes:: al repo (per a continuar des d'altres equips) 2026-04-16 00:18:09 +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 91fe0625d3 fix: make release en windows 2026-04-05 18:12:40 +02:00
JailDesigner c7be3dcc1f changelog.md 2026-04-05 17:51:29 +02:00
JailDesigner b0209c8220 fix: no estava carregant gamecontrollerdb.txt 2026-04-05 17:50:07 +02:00
JailDesigner 6570415ed0 afegit changelog.md 2026-04-05 17:47:58 +02:00
JailDesigner 8fc61de359 modificat README.md 2026-04-05 17:45:01 +02:00
JailDesigner 9f37518647 eliminats warnings 2026-04-05 17:39:44 +02:00
JailDesigner 0784cb1197 ajustats els defaults 2026-04-05 15:20:50 +02:00
JailDesigner 6a58f75773 overlay amb outline
afegits credits dels ports
2026-04-05 15:17:26 +02:00
JailDesigner ec0f233033 logo alternatiu opcional 2026-04-05 14:35:53 +02:00
JailDesigner 00f8d6d7e3 fix: eixir amb la pausa activa 2026-04-05 13:44:54 +02:00
JailDesigner 486f00bd44 v1.1 per a coincidir amb el original 2026-04-05 13:35:25 +02:00
JailDesigner df18a818fb afegits icons 2026-04-05 11:33:29 +02:00
JailDesigner 21bb22b63f acces a la carpeta data en release 2026-04-05 10:20:46 +02:00
JailDesigner d598d4fc58 eliminats warnings del codi original tocant lo menos posible 2026-04-05 10:10:48 +02:00
JailDesigner 75b6b6fac7 primera versio de make release, encara no funcional 100% 2026-04-05 10:08:21 +02:00
JailDesigner c0553c6d37 - afegida carpeta release
- jitter en renderInfo
2026-04-05 09:39:05 +02:00
JailDesigner 3aa6078054 claude.md 2026-04-05 01:46:26 +02:00
JailDesigner e7202c9332 modificat el delay de director per acceptar framerates de hasta 250FPS 2026-04-05 01:42:34 +02:00
JailDesigner 22ee9538a2 vsync, integer scale 2026-04-05 01:31:02 +02:00