1 #ifndef _pool8_h
2 #define _pool8_h
3 
4 #ifndef _pool_h
5 #	include "pool.h"
6 #endif
7 
8 class HalfBallMover;
9 
10 class Pool8 : public Pool {
11 	public:
12 		Pool8(double ft);						// Parameter: Tischgr��e in Fu�
13 		virtual ~Pool8();
14 
15 		void InitTable();
16 		virtual void InitPlayground();
17 		virtual void DrawBackground() const;
18 		virtual void ResetGame();
19 
20 		virtual void InPocket( Ball *b );
21 		virtual int  IsSelectable(Ball *b);
22 
23 	protected:
24 		virtual void Triangle( const Vec2 &v );
25 		ColorId	black_col;
26 		ColorId	full_col;		// f�r Normal-Mode
27 		ColorId	half_col;		// f�r Normal-Mode
28 		ColorId	ball_col[7];	// f�r Deluxe-Mode
29 
30 		HalfBallMover	*mh;
31 
32 		Ball	*ball[15];		// 0-6 full // 7 black // 8-15 half
33 		Vec2	ball_p[15];		// default positions for these balls
34 		int	balls_in_pocket;
35 };
36 
37 class Pool9 : public Pool8 {
38 	public:
Pool9(double ft)39 		Pool9( double ft ) : Pool8(ft)	{}
40 		virtual ~Pool9();
41 
42 	protected:
43 		virtual void Triangle( const Vec2 &v );
44 };
45 
46 class Pool8Demo : public Pool8 {
47 	public:
Pool8(ft)48 		Pool8Demo( double ft, double s=100.0 ) : Pool8(ft), shot_speed(s)	{}
49 		virtual ~Pool8Demo();
50 
51 		virtual const Real &GetPresetA() const;
52 		virtual const Real &GetSlowGranularity() const;
53 
54 		virtual void InitPlayground();
55 		virtual void DrawBackground() const;
56 
57 	protected:
58 		Real			shot_speed;
59 
60 	public:
61 		static Real	PresetA;
62 		static Real	SlowGranularity;
63 };
64 
65 #ifdef DEBUG
66 class Pool8Test : public Pool8Demo {
67 	public:
Pool8Demo(ft,s)68 		Pool8Test( double ft, double s=100.0 ) : Pool8Demo(ft,s)		{}
69 		virtual ~Pool8Test();
70 		virtual void InitPlayground();
71 		virtual void DrawBackground() const;
72 
73 	private:
74 		class TestField	*field_queue;
75 
76 friend class TestField;
77 };
78 #endif
79 
80 #endif
81