summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pacman-c++/constants.h2
-rw-r--r--pacman-c++/mainwidget.cpp213
2 files changed, 47 insertions, 168 deletions
diff --git a/pacman-c++/constants.h b/pacman-c++/constants.h
index 3d78d1d..e7755d4 100644
--- a/pacman-c++/constants.h
+++ b/pacman-c++/constants.h
@@ -8,7 +8,7 @@ namespace Constants {
8 const unsigned int height; 8 const unsigned int height;
9 } 9 }
10 field_size = { 16, 16 }, 10 field_size = { 16, 16 },
11 map_size = { 30, 30 }, 11 map_size = { 35, 17 },
12 map_size_pixel = { field_size.width * map_size.width, 12 map_size_pixel = { field_size.width * map_size.width,
13 field_size.height * map_size.height }; 13 field_size.height * map_size.height };
14 const unsigned int sprite_margin = 2; 14 const unsigned int sprite_margin = 2;
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp
index 73612af..780312f 100644
--- a/pacman-c++/mainwidget.cpp
+++ b/pacman-c++/mainwidget.cpp
@@ -25,173 +25,50 @@ Transmission::map_t createDummyMap()
25 } 25 }
26 } 26 }
27 27
28 // T
29 unsigned x = 0, y = 0;
30 map[x + 0][y + 0] |= Color::none | Transmission::block;
31 map[x + 1][y + 0] |= Color::none | Transmission::block;
32 map[x + 2][y + 0] |= Color::none | Transmission::block;
33 map[x + 3][y + 0] |= Color::none | Transmission::block;
34 map[x + 4][y + 0] |= Color::none | Transmission::block;
35 map[x + 2][y + 1] |= Color::none | Transmission::block;
36 map[x + 2][y + 2] |= Color::none | Transmission::block;
37 map[x + 2][y + 3] |= Color::none | Transmission::block;
38 map[x + 2][y + 4] |= Color::none | Transmission::block;
39 x += 6;
40
41 // U
42 map[x + 0][y + 0] |= Color::none | Transmission::block;
43 map[x + 0][y + 1] |= Color::none | Transmission::block;
44 map[x + 0][y + 2] |= Color::none | Transmission::block;
45 map[x + 0][y + 3] |= Color::none | Transmission::block;
46 map[x + 0][y + 4] |= Color::none | Transmission::block;
47 map[x + 1][y + 4] |= Color::none | Transmission::block;
48 map[x + 2][y + 0] |= Color::none | Transmission::block;
49 map[x + 2][y + 1] |= Color::none | Transmission::block;
50 map[x + 2][y + 2] |= Color::none | Transmission::block;
51 map[x + 2][y + 3] |= Color::none | Transmission::block;
52 map[x + 2][y + 4] |= Color::none | Transmission::block;
53 x += 4;
54
55 // :
56 map[x + 0][y + 1] |= Color::none | Transmission::block;
57 map[x + 0][y + 3] |= Color::none | Transmission::block;
58 x += 2;
59
60 // W
61 map[x + 0][y + 0] |= Color::none | Transmission::block;
62 map[x + 0][y + 1] |= Color::none | Transmission::block;
63 map[x + 0][y + 2] |= Color::none | Transmission::block;
64 map[x + 0][y + 3] |= Color::none | Transmission::block;
65 map[x + 0][y + 4] |= Color::none | Transmission::block;
66 map[x + 1][y + 4] |= Color::none | Transmission::block;
67 map[x + 2][y + 4] |= Color::none | Transmission::block;
68 map[x + 3][y + 4] |= Color::none | Transmission::block;
69 map[x + 2][y + 1] |= Color::none | Transmission::block;
70 map[x + 2][y + 2] |= Color::none | Transmission::block;
71 map[x + 4][y + 0] |= Color::none | Transmission::block;
72 map[x + 4][y + 1] |= Color::none | Transmission::block;
73 map[x + 4][y + 2] |= Color::none | Transmission::block;
74 map[x + 4][y + 3] |= Color::none | Transmission::block;
75 map[x + 4][y + 4] |= Color::none | Transmission::block;
76 x += 6;
77
78 // I
79 map[x + 0][y + 0] |= Color::none | Transmission::block;
80 map[x + 0][y + 1] |= Color::none | Transmission::block;
81 map[x + 0][y + 2] |= Color::none | Transmission::block;
82 map[x + 0][y + 3] |= Color::none | Transmission::block;
83 map[x + 0][y + 4] |= Color::none | Transmission::block;
84 x += 2;
85
86 // E
87 map[x + 0][y + 0] |= Color::none | Transmission::block;
88 map[x + 0][y + 1] |= Color::none | Transmission::block;
89 map[x + 0][y + 2] |= Color::none | Transmission::block;
90 map[x + 0][y + 3] |= Color::none | Transmission::block;
91 map[x + 0][y + 4] |= Color::none | Transmission::block;
92 map[x + 1][y + 0] |= Color::none | Transmission::block;
93 map[x + 2][y + 0] |= Color::none | Transmission::block;
94 map[x + 1][y + 2] |= Color::none | Transmission::block;
95 map[x + 2][y + 2] |= Color::none | Transmission::block;
96 map[x + 1][y + 4] |= Color::none | Transmission::block;
97 map[x + 2][y + 4] |= Color::none | Transmission::block;
98 x += 4;
99
100 // N
101 map[x + 0][y + 0] |= Color::none ^ Transmission::block;
102 map[x + 0][y + 1] |= Color::none ^ Transmission::block;
103 map[x + 0][y + 2] |= Color::none ^ Transmission::block;
104 map[x + 0][y + 3] |= Color::none ^ Transmission::block;
105 map[x + 0][y + 4] |= Color::none ^ Transmission::block;
106 map[x + 1][y + 1] |= Color::none ^ Transmission::block;
107 map[x + 2][y + 2] |= Color::none ^ Transmission::block;
108 map[x + 3][y + 3] |= Color::none ^ Transmission::block;
109 map[x + 4][y + 0] |= Color::none ^ Transmission::block;
110 map[x + 4][y + 1] |= Color::none ^ Transmission::block;
111 map[x + 4][y + 2] |= Color::none ^ Transmission::block;
112 map[x + 4][y + 3] |= Color::none ^ Transmission::block;
113 map[x + 4][y + 4] |= Color::none ^ Transmission::block;
114
115 // F
116 x = 5;
117 y = 6;
118 map[x + 0][y + 0] |= Color::none | Transmission::block;
119 map[x + 0][y + 1] |= Color::none | Transmission::block;
120 map[x + 0][y + 2] |= Color::none | Transmission::block;
121 map[x + 0][y + 3] |= Color::none | Transmission::block;
122 map[x + 0][y + 4] |= Color::none | Transmission::block;
123 map[x + 1][y + 0] |= Color::none | Transmission::block;
124 map[x + 2][y + 0] |= Color::none | Transmission::block;
125 map[x + 1][y + 2] |= Color::none | Transmission::block;
126 map[x + 2][y + 2] |= Color::none | Transmission::block;
127 x += 4;
128
129 // O
130 map[x + 0][y + 0] |= Color::none | Transmission::block;
131 map[x + 0][y + 1] |= Color::none | Transmission::block;
132 map[x + 0][y + 2] |= Color::none | Transmission::block;
133 map[x + 0][y + 3] |= Color::none | Transmission::block;
134 map[x + 0][y + 4] |= Color::none | Transmission::block;
135 map[x + 1][y + 0] |= Color::none | Transmission::block;
136 map[x + 2][y + 0] |= Color::none | Transmission::block;
137 map[x + 1][y + 4] |= Color::none | Transmission::block;
138 map[x + 2][y + 4] |= Color::none | Transmission::block;
139 map[x + 3][y + 0] |= Color::none | Transmission::block;
140 map[x + 3][y + 1] |= Color::none | Transmission::block;
141 map[x + 3][y + 2] |= Color::none | Transmission::block;
142 map[x + 3][y + 3] |= Color::none | Transmission::block;
143 map[x + 3][y + 4] |= Color::none | Transmission::block;
144 x += 5;
145
146 // O
147 map[x + 0][y + 0] |= Color::none | Transmission::block;
148 map[x + 0][y + 1] |= Color::none | Transmission::block;
149 map[x + 0][y + 2] |= Color::none | Transmission::block;
150 map[x + 0][y + 3] |= Color::none | Transmission::block;
151 map[x + 0][y + 4] |= Color::none | Transmission::block;
152 map[x + 1][y + 0] |= Color::none | Transmission::block;
153 map[x + 2][y + 0] |= Color::none | Transmission::block;
154 map[x + 1][y + 4] |= Color::none | Transmission::block;
155 map[x + 2][y + 4] |= Color::none | Transmission::block;
156 map[x + 3][y + 0] |= Color::none | Transmission::block;
157 map[x + 3][y + 1] |= Color::none | Transmission::block;
158 map[x + 3][y + 2] |= Color::none | Transmission::block;
159 map[x + 3][y + 3] |= Color::none | Transmission::block;
160 map[x + 3][y + 4] |= Color::none | Transmission::block;
161 x += 5;
162
163 // P
164 map[x + 0][y + 0] |= Color::none | Transmission::block;
165 map[x + 0][y + 1] |= Color::none | Transmission::block;
166 map[x + 0][y + 2] |= Color::none | Transmission::block;
167 map[x + 0][y + 3] |= Color::none | Transmission::block;
168 map[x + 0][y + 4] |= Color::none | Transmission::block;
169 map[x + 1][y + 0] |= Color::none | Transmission::block;
170 map[x + 2][y + 0] |= Color::none | Transmission::block;
171 map[x + 1][y + 2] |= Color::none | Transmission::block;
172 map[x + 2][y + 2] |= Color::none | Transmission::block;
173 map[x + 3][y + 0] |= Color::none | Transmission::block;
174 map[x + 3][y + 1] |= Color::none | Transmission::block;
175 map[x + 3][y + 2] |= Color::none | Transmission::block;
176 x += 5;
177
178 map[15][16] |= Color::red | Transmission::block;
179 map[15][17] |= Color::blue | Transmission::block;
180 map[15][18] |= Color::green | Transmission::block;
181 map[15][19] |= Transmission::bonuspoint;
182
183 map[15][15] |= Color::red;
184 map[15][15] |= Transmission::pacman;
185 map[15][15] |= Transmission::direction_right;
186
187 map[16][15] |= Color::blue;
188 map[16][15] |= Transmission::pacman;
189 map[16][15] |= Transmission::direction_up;
190
191 map[17][15] |= Color::green;
192 map[17][15] |= Transmission::pacman;
193 map[17][15] |= Transmission::direction_left;
194 28
29 const char *tmpl[] = {
30 " # # ",
31 " #### ###### # #### # # ###### ### ",
32 " # # ",
33 " # ##### # # # # # ### # # # ",
34 " # # # # # # # # # # ## # # ",
35 " # # # # # # # # ### # # # # ",
36 " # # # # # # # # # # # # ## # ",
37 " # # ### ##### # ### # # # ",
38 " ### # ",
39 " # # ### #### #### #### ##### ",
40 " #### # #..# #..# #..# # # ",
41 " # # ### #..# #..# #### # # # # ",
42 " # # # #..# #..# # # ",
43 " # #### # #### #### # # ##### # ",
44 " # # ",
45 " #### ###### # ##### # ####### ### ",
46 " # # "
47 };
48
49
50 for (unsigned int x = 0; x < Constants::map_size.width; ++x)
51 {
52 for (unsigned int y = 0; y < Constants::map_size.height; ++y)
53 {
54 Transmission::field_t &cur = map[x][y];
55 cur = Transmission::none;
56 if (tmpl[y][x] == '#')
57 cur |= Color::none | Transmission::block;
58 /* this is a simple hack to create areas where no
59 * autoplaced points will be placed (see below)
60 */
61 else if (tmpl[y][x] == '.')
62 cur |= Transmission::point;
63 }
64 }
65
66 map[0][0] |= Transmission::bonuspoint;
67 map[1][0] |= Color::red | Transmission::pacman | Transmission::direction_right;
68 map[2][0] |= Color::blue | Transmission::pacman | Transmission::direction_up;
69 map[3][0] |= Color::green | Transmission::pacman | Transmission::direction_down;
70
71 /* auto place normal points*/
195 for (unsigned int x = 0; x < Constants::map_size.width; ++x) 72 for (unsigned int x = 0; x < Constants::map_size.width; ++x)
196 { 73 {
197 for (unsigned int y = 0; y < Constants::map_size.height; ++y) 74 for (unsigned int y = 0; y < Constants::map_size.height; ++y)
@@ -199,6 +76,8 @@ Transmission::map_t createDummyMap()
199 Transmission::field_t &cur = map[x][y]; 76 Transmission::field_t &cur = map[x][y];
200 if (cur == Transmission::none) 77 if (cur == Transmission::none)
201 cur |= Transmission::point; 78 cur |= Transmission::point;
79 else if (cur == Transmission::point)
80 cur = Transmission::none;
202 } 81 }
203 } 82 }
204 83
@@ -216,7 +95,7 @@ MainWidget::MainWidget()
216 createGui(); 95 createGui();
217 updateMap(createDummyMap()); 96 updateMap(createDummyMap());
218 97
219#if 0 98#if 1
220 emit startGame(); 99 emit startGame();
221#else 100#else
222 Phonon::MediaObject *player = Phonon::createPlayer(Phonon::MusicCategory, 101 Phonon::MediaObject *player = Phonon::createPlayer(Phonon::MusicCategory,