Rally X
ELEN3009 Project by Justin Wernick and David Schneider
|
00001 #ifndef INFOPANEL_H 00002 #define INFOPANEL_H 00003 00004 #include <allegro5/allegro.h> 00005 #include <allegro5/allegro_primitives.h> 00006 00007 #include <sstream> 00008 using namespace std; 00009 00010 #include "../presentation/ScreenPanel.h" 00011 #include "../presentation/ColourStore.h" 00012 #include "../logic/Maze.h" 00013 #include "../logic/GameObject.h" 00014 #include "../logic/PlayerCar.h" 00015 #include "../logic/EnemyCar.h" 00016 #include "../logic/Checkpoint.h" 00017 #include "../logic/AllegroWrappers.h" 00018 00030 class InfoPanel : public ScreenPanel 00031 { 00032 public: 00047 InfoPanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height); 00048 00054 ~InfoPanel(); 00055 00074 virtual void draw(const Maze& maze, const list<PlayerCar>& players, const list<EnemyCar>& enemies, const list<Checkpoint>& checkpoints, const list<Rock>& rocks, const list<Smokescreen>& smokescreens, const list<DestroyedObjectPopup>& popups); 00075 private: 00079 InfoPanel(const InfoPanel& ref); 00083 InfoPanel& operator=(const InfoPanel& rhs); 00092 float getPanelX(const double& x) const; 00101 float getPanelY(const double& y) const; 00102 00113 void draw(const Maze& maze); 00114 00123 void draw(const GameObject& object); 00124 00125 AllegroDrawingInit _drawing; 00126 ColourStore _colourStore; 00127 00128 float _petrolHeadingY; 00129 float _petrolGuageY; 00130 float _petrolGuageHeight; 00131 float _checkpointHeadingY; 00132 float _checkpointValueY; 00133 float _miniMazeY; 00134 float _miniMazeHeight; 00135 float _miniMazeblockWidth; 00136 00137 ALLEGRO_FONT* _panelFont; 00138 }; 00139 00140 #endif // INFOPANEL_H