Rally X
ELEN3009 Project by Justin Wernick and David Schneider
|
00001 #ifndef SCREENPANEL_H 00002 #define SCREENPANEL_H 00003 00004 #include <allegro5/allegro.h> 00005 00006 #include "../logic/Maze.h" 00007 #include "../logic/GameObject.h" 00008 #include "../logic/PlayerCar.h" 00009 #include "../logic/EnemyCar.h" 00010 #include "../logic/Checkpoint.h" 00011 #include "../logic/Rock.h" 00012 #include "../logic/Smokescreen.h" 00013 #include "../logic/DestroyedObjectPopup.h" 00014 #include "../logic/AllegroWrappers.h" 00015 00029 class ScreenPanel 00030 { 00031 public: 00046 ScreenPanel(ALLEGRO_BITMAP* back, ALLEGRO_BITMAP* front, int x, int y, int width, int height); 00047 00051 virtual ~ScreenPanel(); 00052 00067 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) = 0; 00068 00074 virtual void flip(); 00075 00076 protected: 00077 static const ALLEGRO_COLOR BLANK; 00078 00079 ALLEGRO_BITMAP* _back; 00080 00081 int _width; 00082 int _height; 00083 private: 00087 ScreenPanel(const ScreenPanel& ref); 00091 ScreenPanel& operator=(const ScreenPanel& rhs); 00092 00093 AllegroInit _allegro; 00094 00095 ALLEGRO_BITMAP* _front; 00096 }; 00097 00098 #endif // SCREENPANEL_H