2 // boards.cpp: Actual playable (we hope!) game boards
5 // © 2014 Underground Software
7 // JLH = James Hammons <jlhamm@acm.org>
10 // --- ---------- ------------------------------------------------------------
11 // JLH 03/03/2014 Created this file
18 std::vector<Level> levelStorage;
22 // We use anonymous structs to create these, to keep things simple. :-)
28 // . = Spot to move box to
29 // + = Spot to move box to, that already has a box on it
30 // o = Player initial position
31 // * = Player initial position, that has a spot under it
32 // - = Do not draw anything here
36 unsigned int width, height;
37 unsigned char state[5 * 5 + 40 + 1]; } board001 = { 5, 5,
38 // const char * state; } board001 = { 5, 5,
49 unsigned int width, height;
50 unsigned char state[7 * 7 + 40 + 1]; } board002 = { 7, 7,
58 "A Little Bit Harder..."
63 unsigned int width, height;
64 unsigned char state[7 * 5 + 40 + 1]; } board003 = { 7, 5,
75 unsigned int width, height;
76 unsigned char state[8 * 5 + 40 + 1]; } board004 = { 8, 5,
87 unsigned int width, height;
88 unsigned char state[8 * 7 + 40 + 1]; } board005 = { 8, 7,
100 static const struct {
101 unsigned int width, height;
102 unsigned char state[8 * 8 + 40 + 1]; } board006 = { 8, 8,
115 static const struct {
116 unsigned int width, height;
117 unsigned char state[8 * 6 + 40 + 1]; } board007 = { 8, 6,
128 static const struct {
129 unsigned int width, height;
130 unsigned char state[10 * 8 + 40 + 1]; } board008 = { 10, 8,
143 static const struct {
144 unsigned int width, height;
145 unsigned char state[9 * 7 + 40 + 1]; } board009 = { 9, 7,
157 static const struct {
158 unsigned int width, height;
159 unsigned char state[7 * 7 + 40 + 1]; } board010 = { 7, 7,
171 static const struct {
172 unsigned int width, height;
173 unsigned char state[10 * 8 + 40 + 1]; } board011 = { 10, 8,
186 static const struct {
187 unsigned int width, height;
188 unsigned char state[10 * 6 + 40 + 1]; } board012 = { 10, 6,
199 static const struct {
200 unsigned int width, height;
201 unsigned char state[9 * 7 + 40 + 1]; } board013 = { 9, 7,
213 static const struct {
214 unsigned int width, height;
215 unsigned char state[8 * 7 + 40 + 1]; } board014 = { 8, 7,
227 static const struct {
228 unsigned int width, height;
229 unsigned char state[8 * 7 + 40 + 1]; } board015 = { 8, 7,
241 static const struct {
242 unsigned int width, height;
243 unsigned char state[10 * 7 + 40 + 1]; } board016 = { 10, 7,
255 static const struct {
256 unsigned int width, height;
257 unsigned char state[7 * 7 + 40 + 1]; } board017 = { 7, 7,
269 static const struct {
270 unsigned int width, height;
271 unsigned char state[12 * 6 + 40 + 1]; } board018 = { 12, 6,
282 static const struct {
283 unsigned int width, height;
284 unsigned char state[10 * 7 + 40 + 1]; } board019 = { 10, 7,
296 static const struct {
297 unsigned int width, height;
298 unsigned char state[8 * 6 + 40 + 1]; } board020 = { 8, 6,
309 static const struct {
310 unsigned int width, height;
311 unsigned char state[7 * 7 + 40 + 1]; } board021 = { 7, 7,
323 static const struct {
324 unsigned int width, height;
325 unsigned char state[7 * 7 + 40 + 1]; } board022 = { 7, 7,
337 static const struct {
338 unsigned int width, height;
339 unsigned char state[9 * 7 + 40 + 1]; } board023 = { 9, 7,
351 static const struct {
352 unsigned int width, height;
353 unsigned char state[8 * 8 + 40 + 1]; } board024 = { 8, 8,
366 static const struct {
367 unsigned int width, height;
368 unsigned char state[8 * 8 + 40 + 1]; } board025 = { 8, 8,
381 static const struct {
382 unsigned int width, height;
383 unsigned char state[7 * 7 + 40 + 1]; } board026 = { 7, 7,
395 static const struct {
396 unsigned int width, height;
397 unsigned char state[8 * 7 + 40 + 1]; } board027 = { 8, 7,
409 static const struct {
410 unsigned int width, height;
411 unsigned char state[12 * 5 + 40 + 1]; } board028 = { 12, 5,
421 static const struct {
422 unsigned int width, height;
423 unsigned char state[8 * 7 + 40 + 1]; } board029 = { 8, 7,
435 static const struct {
436 unsigned int width, height;
437 unsigned char state[11 * 9 + 40 + 1]; } board030 = { 11, 9,
451 static const struct {
452 unsigned int width, height;
453 unsigned char state[11 * 7 + 40 + 1]; } board031 = { 11, 7,
465 static const struct {
466 unsigned int width, height;
467 unsigned char state[8 * 7 + 40 + 1]; } board032 = { 8, 7,
479 static const struct {
480 unsigned int width, height;
481 unsigned char state[9 * 8 + 40 + 1]; } board033 = { 9, 8,
494 static const struct {
495 unsigned int width, height;
496 unsigned char state[9 * 8 + 40 + 1]; } board034 = { 9, 8,
509 static const struct {
510 unsigned int width, height;
511 unsigned char state[9 * 8 + 40 + 1]; } board035 = { 9, 8,
524 static const struct {
525 unsigned int width, height;
526 unsigned char state[7 * 6 + 40 + 1]; } board036 = { 7, 6,
537 static const struct {
538 unsigned int width, height;
539 unsigned char state[8 * 7 + 40 + 1]; } board037 = { 8, 7,
551 static const struct {
552 unsigned int width, height;
553 unsigned char state[9 * 8 + 40 + 1]; } board038 = { 9, 8,
566 static const struct {
567 unsigned int width, height;
568 unsigned char state[12 * 7 + 40 + 1]; } board039 = { 12, 7,
580 static const struct {
581 unsigned int width, height;
582 unsigned char state[9 * 7 + 40 + 1]; } board040 = { 9, 7,
594 static const struct {
595 unsigned int width, height;
596 unsigned char state[8 * 7 + 40 + 1]; } board041 = { 8, 7,
608 static const struct {
609 unsigned int width, height;
610 unsigned char state[9 * 7 + 40 + 1]; } board042 = { 9, 7,
622 const void * boards[] = {
623 &board001, &board002, &board003, &board004, &board005, &board006, &board007, &board008,
624 &board009, &board010, &board011, &board012, &board013, &board014, &board015, &board016,
625 &board017, &board018, &board019, &board020, &board021, &board022, &board023, &board024,
626 &board025, &board026, &board027, &board028, &board029, &board030, &board031, &board032,
627 &board033, &board034, &board035, &board036, &board037, &board038, &board039, &board040,
628 &board041, &board042, //&board043, &board044, &board045, &board046, &board047, &board048,
629 // &board049, &board050, &board051, &board052, &board053, &board054, &board055, &board056,
630 // &board057, &board058, &board059, &board060, &board061, &board062, &board063, &board064,
631 // &board065, &board066, &board067, &board068, &board069, &board070, &board071, &board072,
632 // &board073, &board074, &board075, &board076, &board077, &board078, &board079, &board080,
633 // &board081, &board082, &board083, &board084, &board085, &board086, &board087, &board088,
634 // &board089, &board090, &board091, &board092, &board093, &board094, &board095, &board096,
635 // &board097, &board098, &board099, &board100, &board101, &board102, &board103, &board104,