69 lines
1.2 KiB
C++
69 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
#include "core/jail/jdraw8.hpp"
|
|
#include "game/info.hpp"
|
|
#include "game/prota.hpp"
|
|
|
|
enum : std::uint8_t {
|
|
CONTE_RES = 0,
|
|
CONTE_TRESOR = 1,
|
|
CONTE_FARAO = 2,
|
|
CONTE_CLAU = 3,
|
|
CONTE_MOMIA = 4,
|
|
CONTE_PERGAMI = 5,
|
|
CONTE_DIAMANT = 6,
|
|
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();
|
|
|
|
Mapa(const Mapa&) = delete;
|
|
auto operator=(const Mapa&) -> Mapa& = delete;
|
|
Mapa(Mapa&&) = delete;
|
|
auto operator=(Mapa&&) -> Mapa& = delete;
|
|
|
|
void draw();
|
|
void update();
|
|
auto novaMomia() -> bool;
|
|
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;
|
|
};
|