1 #ifndef HEADER_MARKMASK_H 2 #define HEADER_MARKMASK_H 3 4 class V2; 5 class Field; 6 7 #include "NoCopy.h" 8 #include "Dir.h" 9 #include "Cube.h" 10 11 /** 12 * Marks and unmasks object from game field. 13 */ 14 class MarkMask : public NoCopy { 15 private: 16 Cube *m_model; 17 Field *m_field; 18 private: 19 void writeModel(Cube *model, Cube *toOverride); 20 bool canGo(Dir::eDir dir) const; 21 bool isInRoom() const; 22 public: 23 MarkMask(Cube *model, Field *field); 24 25 Cube::t_models getResist(Dir::eDir dir) const; 26 Cube::t_models getPlacedResist(const V2 &loc) const; 27 void mask(); 28 void unmask(); 29 30 Dir::eDir getBorderDir() const; 31 bool isFullyOut() const; 32 33 static void unique(Cube::t_models *models); 34 }; 35 36 #endif 37