00001
00008 #ifndef _GAMETILE_
00009 #define _GAMETILE_
00010
00011 #include "Quaxbomber.h"
00012 #include "Model.h"
00013 #include "CoveredGameTileModel.h"
00014
00015 #include <String>
00016 #include <vector>
00017 #include <gl/gl.h>
00018
00019 using namespace std;
00020
00021 class GameTile {
00022 public:
00038 enum InvisibleState {CLEAN, BOMB, LIFE, TIMEFREEZER};
00039
00058 enum VisibleState {COVERED, UNCOVERED, COVERED_ACTIVE, UNCOVERED_ACCTIVE, COVERED_BOMB_MARKED, COVERED_BOMB_PROPOSED, EXPLODE};
00059
00061 InvisibleState currentIState;
00063 VisibleState currentVState;
00065 int bombCounter;
00067 int goodieCounter;
00068
00070 vector<Model*> modelList;
00072 vector<GameTile*> neighborList;
00073
00074
00075 public:
00076 GameTile();
00077 GameTile(InvisibleState invState, VisibleState visState);
00078 void setInvisibleState(InvisibleState s);
00079 void setVisibleState(VisibleState s);
00080 void addModel(Model *m);
00081 void addNeighbor(GameTile *gt);
00082 void renderModel();
00083 void uncover();
00084 int getBombCounter();
00085 int getGoodieCounter();
00086 };
00087
00088 #endif