52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
//
|
|
// Created by trotfunky on 04/11/2019.
|
|
//
|
|
|
|
#ifndef LABYRINTHE_MAZE_H
|
|
#define LABYRINTHE_MAZE_H
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <DataHandling/Texture.h>
|
|
#include <DataHandling/Model3D.h>
|
|
|
|
#include "TileTypes.h"
|
|
|
|
class Maze {
|
|
public:
|
|
Maze(const std::string& maze_map, unsigned int scaling_factor, const Texture& floor_texture,
|
|
const Texture& wall_texture, const Texture& outside_texture, Model3D& objective);
|
|
~Maze();
|
|
|
|
void draw();
|
|
|
|
bool remove_objective(const Vec2i& position);
|
|
|
|
unsigned int scaling_factor;
|
|
Texture map;
|
|
|
|
unsigned int total_objectives = 0;
|
|
|
|
private:
|
|
const Texture& floor;
|
|
const Texture& wall;
|
|
const Texture& out;
|
|
Model3D& objective;
|
|
|
|
GLuint display_list_index = -1;
|
|
|
|
const double objective_altitude = 0;
|
|
const double wall_height = 2;
|
|
unsigned corner_pos;
|
|
|
|
Vec3d outside_position;
|
|
std::vector<Vec3d> objective_positions;
|
|
// FIXME : Draw only border walls...
|
|
std::vector<Vec3d> wall_positions;
|
|
|
|
void preapre_display_list();
|
|
};
|
|
|
|
|
|
#endif //LABYRINTHE_MAZE_H
|