1 #ifndef _billard_h 2 #define _billard_h 3 4 #ifndef _real_h 5 # include "real.h" 6 #endif 7 #ifndef _game_h 8 # include "game.h" 9 #endif 10 11 class ShadedBallMover; // forward 12 class Wall; 13 14 class Billard : public Game { 15 public: 16 Billard(double wx, double wy); 17 virtual ~Billard(); 18 19 virtual const Real & GetPresetA() const; 20 virtual const Real & GetPresetHaft() const; 21 virtual const Real & GetSlowGranularity() const; 22 23 virtual const Real AreaOffX() const; 24 virtual const Real AreaOffY() const; 25 virtual const Real AreaWidth() const; 26 virtual const Real AreaHeight() const; 27 28 virtual const Real PAreaOffX() const; 29 virtual const Real PAreaOffY() const; 30 virtual const Real PAreaWidth() const; 31 virtual const Real PAreaHeight() const; 32 33 virtual const Real TAreaOffX() const; 34 virtual const Real TAreaOffY() const; 35 virtual const Real TAreaWidth() const; 36 virtual const Real TAreaHeight() const; 37 38 virtual void InitPlayground(); 39 virtual void DrawBackground() const; 40 41 void InitTable(); 42 virtual int SelectTable( int col ); 43 44 public: 45 static Real PresetA; 46 static Real PresetHaft; 47 static Real SlowGranularity; 48 static Real FrameOffset; 49 static Real InnerCushion; 50 static Real OuterCushion; 51 52 protected: 53 void InitArea( double width, double height ); 54 Real area_off_x; 55 Real area_off_y; 56 Real area_width; 57 Real area_height; 58 59 ShadedBallMover *m; 60 61 ColorId table_col; 62 ColorId outer_cushion_col; 63 ColorId inner_cushion_col; 64 ColorId marker_col; 65 66 ColorId table_line_col; 67 ColorId table_light_col; 68 ColorId table_dark_col; 69 70 void DrawMarker( const Real &midx, const Real &midy, const Real &ox, const Real &oy ) const; 71 72 private: 73 Wall *w[4]; 74 75 friend class Konfi; 76 }; 77 78 #endif 79