- 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>
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>
- 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>