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