* Add link target to the Makefile.
[matthijs/ABM2.git] / ABM2 / Playground.h
1 #pragma once\r
2 \r
3 #include "Engine/engine.h"\r
4 \r
5 #define PLAYGROUND_ROWS 11\r
6 #define PLAYGROUND_COLS 15\r
7 #define PLAYGROUND_BORDER_LEFT 20\r
8 #define PLAYGROUND_BORDER_TOP 66\r
9 #define PLAYGROUND_BORDER_RIGHT 20\r
10 #define PLAYGROUND_BORDER_BOTTOM 18\r
11 #define FIELD_UNIT_WIDTH 40\r
12 #define FIELD_UNIT_HEIGHT 36\r
13 #define BOMBERMAN_BASE_SPEED \r
14 enum TMoveDirection { N,NNE,NE,NEE,E,SEE,SE,SSE,S,SSW,SW,SWW,W,NWW,NW,NNW }; //(0-15 clockwise)\r
15 \r
16 class Bomberman\r
17 {\r
18 public:\r
19         Bomberman(int xloc, int yloc);\r
20         ~Bomberman();\r
21         void Update();\r
22         void move(int xloc, int yloc);\r
23         void move_to(int xloc, int yloc);\r
24         void move_to_direction(TMoveDirection dir, int speed);\r
25         int getY();\r
26         int getX();\r
27         int getHeight();\r
28         int getWidth();\r
29         int getCenterX();\r
30         int getCenterY();\r
31         int getOffsetX();\r
32         int getOffsetY();\r
33         int getFieldCenterX();\r
34         int getFieldCenterY();\r
35 private:\r
36 #ifdef WIN32\r
37         int x,y;\r
38         LPDIRECT3DTEXTURE9 texture;\r
39 #endif // WIN32\r
40 };\r
41 \r
42 class Item\r
43 {\r
44 public:\r
45 #ifdef WIN32\r
46         Item(LPDIRECT3DTEXTURE9 t, int texnr, int subwidth, int subheight, int colnr, int rownr);\r
47 #endif // WIN32\r
48         ~Item();\r
49         void Draw();\r
50         int col, row, tex_num, subitem_height, subitem_width;\r
51 private:\r
52 #ifdef WIN32\r
53         LPDIRECT3DTEXTURE9 texture;\r
54 #endif // WIN32\r
55 };\r
56 \r
57 class Playground : public ITask\r
58 {\r
59 public:\r
60         bool Start();\r
61         void Update();\r
62         void Stop();\r
63         AUTO_SIZE;\r
64 private:\r
65 #ifdef WIN32\r
66         LPDIRECT3DTEXTURE9 background;\r
67         LPDIRECT3DTEXTURE9 foreground;\r
68 \r
69         Bomberman *bomberman;\r
70         Item *field[PLAYGROUND_COLS][PLAYGROUND_ROWS];\r
71 \r
72         void move_up();\r
73         void move_down();\r
74         void move_right();\r
75         void move_left();\r
76 \r
77         DWORD old_counter;\r
78 #endif // WIN32\r
79 };\r