#ifndef LEVELS_H
#define LEVELS_H

/* Sokoban level definitions for SunView */

/* Map elements */
#define EMPTY ' '
#define WALL '#'
#define BOX '$'
#define BOX_ON_GOAL '*'
#define PLAYER '@'
#define PLAYER_ON_GOAL '+'
#define GOAL '.'

/* Level structure */
typedef struct {
    char *name;
    char *data;
} Level;

/* Sokoban levels borrowed from ttysokoban */
static Level levels[] = {
    {
        "Level 1",
        "   ########## \n ###        ##\n #   #  # $  #\n## #      #  #\n#@    #      #\n# #   # #  # #\n#  .###      #\n##### ########\n"
    },
    {
        "Level 2",
        " #######      \n #@ #  ###### \n #. #       # \n##$##  #    ##\n#  ##  ###   #\n#      #     #\n##  #  #  ####\n ##########   \n"
    },
    {
        "Level 3",
        "    ######    \n ####    #### \n #     # # .# \n## #  #     ##\n#@$#    #    #\n#    #     # #\n####    #    #\n   ###########\n"
    },
    {
        "Level 4",
        " #####   #####\n #   #####   #\n## #  $      #\n#@     #######\n# #.     ##  #\n#    #   ##  #\n###      ##  #\n  ############\n"
    },
    {
        "Level 5",
        "   ###########\n ### .    #  #\n ### #  #    #\n####      # ##\n#@     # ## # \n# $ # ##    # \n###   ####  # \n  #####  #### \n"
    },
    {
        "Level 6",
        "         #####\n##########   #\n#.           #\n#  ##    #  ##\n#  #####  ### \n#     #   $ # \n#  #     #@ # \n############# \n"
    },
    {
        "Level 7",
        "#####         \n#@  ######### \n#      . #####\n##  # #      #\n ###   #     #\n ###      $# #\n ###   ###   #\n   ##### #####\n"
    },
    {
        "Level 8",
        "    #### #####\n ####  ###   #\n #.          #\n # #  ##  ####\n## ##  #     #\n#@  #$ #     #\n#      #######\n########      \n"
    },
    {
        "Level 9",
        "   ########   \n ###      ### \n # $ #  #   # \n## #        # \n#@    ##  # # \n#      #  . # \n#####  ###### \n    ####      \n"
    },
    {
        "Level 10",
        "       ####   \n########  ### \n#@        ### \n#  ####   ####\n##     #     #\n # $ #      .#\n ###      ####\n   ########   \n"
    }
};

#define NUM_LEVELS (sizeof(levels) / sizeof(levels[0]))

#endif /* LEVELS_H */