Files
aee/source/game/mapa.hpp
Sergio Valor 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

65 lines
1.2 KiB
C++

#pragma once
#include "core/jail/jdraw8.hpp"
#include "game/info.hpp"
#include "game/prota.hpp"
#define CONTE_RES 0
#define CONTE_TRESOR 1
#define CONTE_FARAO 2
#define CONTE_CLAU 3
#define CONTE_MOMIA 4
#define CONTE_PERGAMI 5
#define CONTE_DIAMANT 6
#define VALOR_DIAMANT 5
struct Tomba {
bool costat[4];
Uint8 contingut;
bool oberta;
Uint16 x, y;
};
struct Vertex {
Uint8 columna;
Uint8 fila;
};
class Mapa {
public:
explicit Mapa(JD8_Surface gfx, Prota* sam);
~Mapa(void);
Mapa(const Mapa&) = delete;
Mapa& operator=(const Mapa&) = delete;
Mapa(Mapa&&) = delete;
Mapa& operator=(Mapa&&) = delete;
void draw();
void update();
bool novaMomia();
void comprovaCaixa(Uint8 num);
Tomba tombes[16];
protected:
void preparaFondoEstatic();
void preparaTombes();
void comprovaUltimCami();
void comprovaPorta();
JD8_Surface gfx;
JD8_Surface fondo;
Vertex vertex;
Vertex ultim_vertex;
Uint8 frame_torxes;
Prota* sam;
bool farao;
bool clau;
bool porta_oberta;
bool nova_momia;
};