52 lines
1018 B
C++
52 lines
1018 B
C++
/*
|
|
* Level.h
|
|
*
|
|
* Created on: Nov 11, 2016
|
|
* Author: tibi
|
|
*/
|
|
|
|
#ifndef MODEL_LEVEL_H_
|
|
#define MODEL_LEVEL_H_
|
|
|
|
#include <cstdint>
|
|
#include <cstddef>
|
|
|
|
namespace farmlands {
|
|
namespace model {
|
|
|
|
typedef int16_t Cell;
|
|
|
|
class Level
|
|
{
|
|
public:
|
|
Level(size_t layerCount, size_t rowCount, size_t columnCount);
|
|
Level(const Level&) = delete;
|
|
Level& operator= (const Level&) = delete;
|
|
|
|
virtual ~Level();
|
|
|
|
inline size_t layerCount() const { return m_layers; }
|
|
inline size_t rowCount() const { return m_rows; }
|
|
inline size_t columnCount() const { return m_columns; }
|
|
|
|
Cell cell(size_t layer, size_t row, size_t col) const;
|
|
void setCell(size_t layer, size_t row, size_t col, Cell value);
|
|
|
|
int texture(size_t layer) const;
|
|
void setTexture(size_t layer, int textureId) const;
|
|
|
|
size_t m_cellWidth, m_cellHeight;
|
|
|
|
private:
|
|
Cell* m_cells;
|
|
int* m_textures;
|
|
size_t m_layers;
|
|
size_t m_rows;
|
|
size_t m_columns;
|
|
};
|
|
|
|
} /* namespace model */
|
|
} /* namespace farmlands */
|
|
|
|
#endif /* MODEL_LEVEL_H_ */
|