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>
This commit is contained in:
2026-04-18 14:03:51 +02:00
parent c6e37af7d1
commit f7875baa2d
2 changed files with 10 additions and 0 deletions

View File

@@ -30,6 +30,11 @@ class Mapa {
explicit Mapa(JD8_Surface gfx, Prota* sam); explicit Mapa(JD8_Surface gfx, Prota* sam);
~Mapa(void); ~Mapa(void);
Mapa(const Mapa&) = delete;
Mapa& operator=(const Mapa&) = delete;
Mapa(Mapa&&) = delete;
Mapa& operator=(Mapa&&) = delete;
void draw(); void draw();
void update(); void update();
bool novaMomia(); bool novaMomia();

View File

@@ -31,6 +31,11 @@ class ModuleGame : public scenes::Scene {
ModuleGame(); ModuleGame();
~ModuleGame() override; ~ModuleGame() override;
ModuleGame(const ModuleGame&) = delete;
ModuleGame& operator=(const ModuleGame&) = delete;
ModuleGame(ModuleGame&&) = delete;
ModuleGame& operator=(ModuleGame&&) = delete;
void onEnter() override; void onEnter() override;
void tick(int delta_ms) override; void tick(int delta_ms) override;
bool done() const override { return phase_ == Phase::Done; } bool done() const override { return phase_ == Phase::Done; }