]> Shamusworld >> Repos - warehouse-man-deluxe/blobdiff - src/boards.cpp
Moved level storage to global location.
[warehouse-man-deluxe] / src / boards.cpp
index d8c2a42d3f2d6cc640258ee30144e9ecbe7e13e3..8a2fbbe0df4a5ced9df75d27b3dc23bb22fe8c40 100644 (file)
 // JLH  03/03/2014  Created this file
 //
 
+#include "boards.h"
+
+
+// Level storage...
+std::vector<Level> levelStorage;
+
+
 //
 // We use anonymous structs to create these, to keep things simple. :-)
 //
 //   . = Spot to move box to
 //   + = Spot to move box to, that already has a box on it
 //   o = Player initial position
+//   * = Player initial position, that has a spot under it
+//   - = Do not draw anything here
 //
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[5 * 5 + 1]; } board001 = { 5, 5,
+       unsigned char state[5 * 5 + 40 + 1]; } board001 = { 5, 5,
+//     const char * state; } board001 = { 5, 5,
        "@@@@@"
        "@o  @"
        "@ X @"
        "@ . @"
        "@@@@@"
+       "Neophyte"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[7 * 7 + 1]; } board002 = { 7, 7,
+       unsigned char state[7 * 7 + 40 + 1]; } board002 = { 7, 7,
        "@@@@@@@"
        "@     @"
        "@ X.X @"
@@ -44,216 +55,583 @@ static const struct {
        "@ X.X @"
        "@o    @"
        "@@@@@@@"
+       "A Little Bit Harder..."
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[7 * 5 + 1]; } board003 = { 7, 5,
+       unsigned char state[7 * 5 + 40 + 1]; } board003 = { 7, 5,
        "@@@@@@@"
        "@. X .@"
        "@ XoX @"
        "@. X .@"
        "@@@@@@@"
+       "Boxed In"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[8 * 5 + 1]; } board004 = { 8, 5,
+       unsigned char state[8 * 5 + 40 + 1]; } board004 = { 8, 5,
        "@@@@@@@@"
        "@  ..X @"
        "@ Xo X @"
        "@ X..  @"
        "@@@@@@@@"
+       "Edging Out"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[8 * 7 + 1]; } board005 = { 8, 7,
-       " @@@@@@@"
-       " @     @"
+       unsigned char state[8 * 7 + 40 + 1]; } board005 = { 8, 7,
+       "-@@@@@@@"
+       "-@     @"
        "@@ .X. @"
        "@o X X @"
        "@  .X. @"
        "@@     @"
-       " @@@@@@@"
+       "-@@@@@@@"
+       "Rotation"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[8 * 8 + 1]; } board006 = { 8, 8,
-       " @@@@@  "
+       unsigned char state[8 * 8 + 40 + 1]; } board006 = { 8, 8,
+       "-@@@@@--"
        "@@   @@@"
        "@  @   @"
        "@ @  @ @"
        "@ X X@ @"
        "@.@    @"
        "@. o@@@@"
-       "@@@@@   "
+       "@@@@@---"
+       "Headless Chicken"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[8 * 6 + 1]; } board007 = { 8, 6,
+       unsigned char state[8 * 6 + 40 + 1]; } board007 = { 8, 6,
        "@@@@@@@@"
        "@ X. X.@"
        "@o.X X.@"
        "@ X. X.@"
        "@ .X X.@"
        "@@@@@@@@"
+       "Two Lines"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[10 * 8 + 1]; } board008 = { 10, 8,
-       "   @@@@@@@"
-       "  @@  @ o@"
-       "  @   @  @"
-       "  @X X X @"
-       "  @ X@@  @"
+       unsigned char state[10 * 8 + 40 + 1]; } board008 = { 10, 8,
+       "---@@@@@@@"
+       "--@@  @ o@"
+       "--@   @  @"
+       "--@X X X @"
+       "--@ X@@  @"
        "@@@ X @ @@"
-       "@.....  @ "
-       "@@@@@@@@@ "
+       "@.....  @-"
+       "@@@@@@@@@-"
+       "Easy Does It"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[9 * 7 + 1]; } board009 = { 9, 7,
+       unsigned char state[9 * 7 + 40 + 1]; } board009 = { 9, 7,
        "@@@@@@@@@"
        "@   +   @"
        "@ X.@.X @"
        "@  X.X  @"
        "@@@.X.@@@"
-       "  @@o@@  "
-       "   @@@   "
+       "--@@o@@--"
+       "---@@@---"
+       "Claustrophobia"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[7 * 7 + 1]; } board010 = { 7, 7,
-       "  @@@@@"
+       unsigned char state[7 * 7 + 40 + 1]; } board010 = { 7, 7,
+       "--@@@@@"
        "@@@   @"
        "@o .X.@"
        "@  X X@"
        "@@@.X.@"
-       "  @   @"
-       "  @@@@@"
+       "--@   @"
+       "--@@@@@"
+       "Tight Squeeze"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[10 * 8 + 1]; } board011 = { 10, 8,
-       "  @@@@    "
-       "  @  @    "
+       unsigned char state[10 * 8 + 40 + 1]; } board011 = { 10, 8,
+       "--@@@@----"
+       "--@  @----"
        "@@@  @@@@@"
        "@  ..X   @"
        "@oX.. X  @"
        "@@@ X@@@@@"
-       "  @  @    "
-       "  @@@@    "
+       "--@  @----"
+       "--@@@@----"
+       "Crossroads"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[10 * 6 + 1]; } board012 = { 10, 6,
-       " @@@@@@@@@"
+       unsigned char state[10 * 6 + 40 + 1]; } board012 = { 10, 6,
+       "-@@@@@@@@@"
        "@@       @"
        "@   @X@X @"
        "@ XX  .X.@"
        "@ o@@@...@"
-       "@@@@ @@@@@"
+       "@@@@-@@@@@"
+       "In The Corner"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[9 * 7 + 1]; } board013 = { 9, 7,
-       "   @@@@@ "
+       unsigned char state[9 * 7 + 40 + 1]; } board013 = { 9, 7,
+       "---@@@@@-"
        "@@@@   @@"
        "@ X X X @"
        "@o......@"
        "@ X X X @"
        "@@@@   @@"
-       "   @@@@@ "
+       "---@@@@@-"
+       "Get In Line"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[8 * 7 + 1]; } board014 = { 8, 7,
-       "  @@@@@ "
-       "@@@  o@ "
+       unsigned char state[8 * 7 + 40 + 1]; } board014 = { 8, 7,
+       "--@@@@@-"
+       "@@@  o@-"
        "@  X. @@"
        "@  .X. @"
        "@@@ +X @"
-       "  @   @@"
-       "  @@@@@ "
+       "--@   @@"
+       "--@@@@@-"
+       "Tighter Squeeze"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[8 * 7 + 1]; } board015 = { 8, 7,
-       "@@@@@@@ "
+       unsigned char state[8 * 7 + 40 + 1]; } board015 = { 8, 7,
+       "@@@@@@@-"
        "@ .X. @@"
        "@ X X  @"
        "@ .X.  @"
        "@ @@@ @@"
-       "@  o  @ "
-       "@@@@@@@ "
+       "@  o  @-"
+       "@@@@@@@-"
+       "Rotation #2"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[10 * 7 + 1]; } board016 = { 10, 7,
-       "   @@@@@@ "
-       " @@@    @ "
+       unsigned char state[10 * 7 + 40 + 1]; } board016 = { 10, 7,
+       "---@@@@@@-"
+       "-@@@    @-"
        "@@. X@@ @@"
        "@..X X  o@"
        "@.. X X @@"
-       "@@@@@@  @ "
-       "     @@@@ "
+       "@@@@@@  @-"
+       "-----@@@@-"
+       "Up Against A Wall"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[7 * 7 + 1]; } board017 = { 7, 7,
-       " @@@@@ "
+       unsigned char state[7 * 7 + 40 + 1]; } board017 = { 7, 7,
+       "-@@@@@-"
        "@@ . @@"
        "@ X.X @"
        "@  .Xo@"
        "@ X.X @"
        "@@ . @@"
-       " @@@@@ "
+       "-@@@@@-"
+       "Lizard Eye"
 };
 
 
 static const struct {
        unsigned int width, height;
-       unsigned char state[12 * 6 + 1]; } board018 = { 12, 6,
-       " @@@@@@@@@@ "
+       unsigned char state[12 * 6 + 40 + 1]; } board018 = { 12, 6,
+       "-@@@@@@@@@@-"
        "@@   @o   @@"
        "@ X ....X  @"
        "@  X@@@@ X @"
-       "@   @  @  @@"
-       "@@@@@  @@@@ "
+       "@   @--@  @@"
+       "@@@@@--@@@@-"
+       "Two Rooms"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[10 * 7 + 40 + 1]; } board019 = { 10, 7,
+       "-@@@@@@@--"
+       "-@     @@@"
+       "@@X@@@   @"
+       "@ o X  X @"
+       "@ ..@ X @@"
+       "@@..@   @-"
+       "-@@@@@@@@-"
+       "Untitled1"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 6 + 40 + 1]; } board020 = { 8, 6,
+       "---@@@@@"
+       "@@@@  .@"
+       "@   X +@"
+       "@ XX X.@"
+       "@@o@@..@"
+       "-@@@@@@@"
+       "Untitled2"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[7 * 7 + 40 + 1]; } board021 = { 7, 7,
+       "@@@@@@@"
+       "@.   .@"
+       "@ X@X @"
+       "@.XoX.@"
+       "@ X@X @"
+       "@.   .@"
+       "@@@@@@@"
+       "Cornered"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[7 * 7 + 40 + 1]; } board022 = { 7, 7,
+       "@@@@@@@"
+       "@  .  @"
+       "@ X@X @"
+       "@. + .@"
+       "@ X@X @"
+       "@  .o @"
+       "@@@@@@@"
+       "Diamond"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 7 + 40 + 1]; } board023 = { 9, 7,
+       "@@@@@@@@-"
+       "@    o @-"
+       "@ X..  @@"
+       "@@@..@  @"
+       "--@@XXX @"
+       "---@    @"
+       "---@@@@@@"
+       "Untitled3"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 8 + 40 + 1]; } board024 = { 8, 8,
+       "@@@@@@@@"
+       "@   o  @"
+       "@ XX@  @"
+       "@@  X @@"
+       "-@.X  @-"
+       "-@@. @@-"
+       "--@..@--"
+       "--@@@@--"
+       "Untitled4"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 8 + 40 + 1]; } board025 = { 8, 8,
+       "-@@@@@@-"
+       "-@. ..@-"
+       "-@. X.@-"
+       "@@@  X@@"
+       "@ X  X @"
+       "@ @X@@ @"
+       "@   o  @"
+       "@@@@@@@@"
+       "Untitled5"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[7 * 7 + 40 + 1]; } board026 = { 7, 7,
+       "-@@@@@@"
+       "@@ . o@"
+       "@ X X @"
+       "@. + .@"
+       "@ X X @"
+       "@@ . @@"
+       "-@@@@@-"
+       "Untitled6"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 7 + 40 + 1]; } board027 = { 8, 7,
+       "--@@@@@@"
+       "--@    @"
+       "@@@XXX @"
+       "@o X.. @"
+       "@ X...@@"
+       "@@@@  @-"
+       "---@@@@-"
+       "Untitled7"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[12 * 5 + 40 + 1]; } board028 = { 12, 5,
+       "@@@@@@@@@@@@"
+       "@    ... X @"
+       "@ XXX+++ Xo@"
+       "@    ... X @"
+       "@@@@@@@@@@@@"
+       "Untitled8"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 7 + 40 + 1]; } board029 = { 8, 7,
+       "@@@@@@@@"
+       "@  @   @"
+       "@ X..X @"
+       "@oX.+ @@"
+       "@ X..X @"
+       "@  @   @"
+       "@@@@@@@@"
+       "Untitled9"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[11 * 9 + 40 + 1]; } board030 = { 11, 9,
+       "--@@@@@----"
+       "--@   @----"
+       "@@@X.X@@@@@"
+       "@   . X   @"
+       "@ @@X@@ o @"
+       "@   . @@@@@"
+       "@@@ . @----"
+       "--@   @----"
+       "--@@@@@----"
+       "Untitled10"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[11 * 7 + 40 + 1]; } board031 = { 11, 7,
+       "---@@@@@@@@"
+       "@@@@    . @"
+       "@  X X X. @"
+       "@  .@@@@.@@"
+       "@ X.X X o@-"
+       "@  .  @@@@-"
+       "@@@@@@@----"
+       "Untitled11"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 7 + 40 + 1]; } board032 = { 8, 7,
+       "-@@@@@--"
+       "-@   @@@"
+       "@@X@o .@"
+       "@  XX@.@"
+       "@ @X  .@"
+       "@     .@"
+       "@@@@@@@@"
+       "Untitled12"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 8 + 40 + 1]; } board033 = { 9, 8,
+       "---@@@@@-"
+       "@@@@.  @@"
+       "@ X.X.  @"
+       "@oX@ @X @"
+       "@ X. .  @"
+       "@@@@X@X @"
+       "--@. .  @"
+       "--@@@@@@@"
+       "Untitled13"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 8 + 40 + 1]; } board034 = { 9, 8,
+       "---@@@@@-"
+       "---@ o @-"
+       "---@XXX@-"
+       "@@@@   @-"
+       "@   .@X@@"
+       "@ X.X. .@"
+       "@  @.@.@@"
+       "@@@@@@@@-"
+       "Untitled14"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 8 + 40 + 1]; } board035 = { 9, 8,
+       "@@@@@@---"
+       "@    @---"
+       "@ X  @@@@"
+       "@ X+..+ @"
+       "@ +..+X @"
+       "@@@@  X @"
+       "---@ o  @"
+       "---@@@@@@"
+       "Untitled15"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[7 * 6 + 40 + 1]; } board036 = { 7, 6,
+       "@@@@@@@"
+       "@  +  @"
+       "@ .+. @"
+       "@ XXX @"
+       "@ o.  @"
+       "@@@@@@@"
+       "Untitled16"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 7 + 40 + 1]; } board037 = { 8, 7,
+       "@@@@@@@@"
+       "@..    @"
+       "@..X Xo@"
+       "@X@XXX@@"
+       "@..X X @"
+       "@..    @"
+       "@@@@@@@@"
+       "Untitled17"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 8 + 40 + 1]; } board038 = { 9, 8,
+       "---@@@@@@"
+       "@@@@.  o@"
+       "@  XXX  @"
+       "@.@@.@@.@"
+       "@   X   @"
+       "@  X.@ @@"
+       "@@@@   @-"
+       "---@@@@@-"
+       "Untitled18"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[12 * 7 + 40 + 1]; } board039 = { 12, 7,
+       "--@@@@@@@@@@"
+       "@@@   .    @"
+       "@   @@X@@  @"
+       "@ oX. . .X@@"
+       "@@ X@@X@@ @ "
+       "-@    .   @ "
+       "-@@@@@@@@@@ "
+       "Untitled19"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 7 + 40 + 1]; } board040 = { 9, 7,
+       "@@@@@@@@@"
+       "@.  .  .@"
+       "@@XXXXX@@"
+       "@..o+ ..@"
+       "@@XXXXX@@"
+       "@.  .  .@"
+       "@@@@@@@@@"
+       "Untitled20"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[8 * 7 + 40 + 1]; } board041 = { 8, 7,
+       "@@@@@---"
+       "@   @---"
+       "@  X@@@@"
+       "@.+*+  @"
+       "@ XX+  @"
+       "@   .  @"
+       "@@@@@@@@"
+       "Untitled21"
+};
+
+
+static const struct {
+       unsigned int width, height;
+       unsigned char state[9 * 7 + 40 + 1]; } board042 = { 9, 7,
+       "-@@@@@@@-"
+       "@@.X X.@@"
+       "@.+ X +.@"
+       "@  XoX  @"
+       "@.+ X +.@"
+       "@@.X X.@@"
+       "-@@@@@@@-"
+       "Untitled22"
 };
 
 
 const void * boards[] = {
        &board001, &board002, &board003, &board004, &board005, &board006, &board007, &board008,
        &board009, &board010, &board011, &board012, &board013, &board014, &board015, &board016,
-       &board017, &board018, //&board019, &board020, &board021, &board022, &board023, &board024,
+       &board017, &board018, &board019, &board020, &board021, &board022, &board023, &board024,
+       &board025, &board026, &board027, &board028, &board029, &board030, &board031, &board032,
+       &board033, &board034, &board035, &board036, &board037, &board038, &board039, &board040,
+       &board041, &board042, //&board043, &board044, &board045, &board046, &board047, &board048,
+//     &board049, &board050, &board051, &board052, &board053, &board054, &board055, &board056,
+//     &board057, &board058, &board059, &board060, &board061, &board062, &board063, &board064,
+//     &board065, &board066, &board067, &board068, &board069, &board070, &board071, &board072,
+//     &board073, &board074, &board075, &board076, &board077, &board078, &board079, &board080,
+//     &board081, &board082, &board083, &board084, &board085, &board086, &board087, &board088,
+//     &board089, &board090, &board091, &board092, &board093, &board094, &board095, &board096,
+//     &board097, &board098, &board099, &board100, &board101, &board102, &board103, &board104,
 };