1c99ab4030b095164f1e8a079a20255c783e1ca2
[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         int x,y;\r
37         LPDIRECT3DTEXTURE9 texture;\r
38 };\r
39 \r
40 class Item\r
41 {\r
42 public:\r
43         Item(LPDIRECT3DTEXTURE9 t, int texnr, int subwidth, int subheight, int colnr, int rownr);\r
44         ~Item();\r
45         void Draw();\r
46         int col, row, tex_num, subitem_height, subitem_width;\r
47 private:\r
48         LPDIRECT3DTEXTURE9 texture;\r
49 };\r
50 \r
51 class Playground : public ITask\r
52 {\r
53 public:\r
54         bool Start();\r
55         void Update();\r
56         void Stop();\r
57         AUTO_SIZE;\r
58 private:\r
59         LPDIRECT3DTEXTURE9 background;\r
60         LPDIRECT3DTEXTURE9 foreground;\r
61 \r
62         Bomberman *bomberman;\r
63         Item *field[PLAYGROUND_COLS][PLAYGROUND_ROWS];\r
64 \r
65         void move_up();\r
66         void move_down();\r
67         void move_right();\r
68         void move_left();\r
69 \r
70         DWORD old_counter;\r
71 };\r