#include "MapManager.h"

u8* const level_map[LEVEL_COUNT] =
{
    map_IntroLevel_compressed,
    map_ConceptLevel1_compressed,
    map_ConceptLevel2_compressed,
    map_ConceptLevel3_compressed,
    map_ConceptLevel4_compressed,
    map_GestureLevel_compressed,
    map_CombinedLevel1_compressed,
    map_CombinedLevel2_compressed,
    map_FinalLevel_compressed
};

const u16 level_map_size[LEVEL_COUNT] =
{
    MAP_INTROLEVEL_COMPRESSED_SIZE,
    MAP_CONCEPTLEVEL1_COMPRESSED_SIZE,
    MAP_CONCEPTLEVEL2_COMPRESSED_SIZE,
    MAP_CONCEPTLEVEL3_COMPRESSED_SIZE,
    MAP_CONCEPTLEVEL4_COMPRESSED_SIZE,
    MAP_GESTURELEVEL_COMPRESSED_SIZE,
    MAP_COMBINEDLEVEL1_COMPRESSED_SIZE,
    MAP_COMBINEDLEVEL2_COMPRESSED_SIZE,
    MAP_FINALLEVEL_COMPRESSED_SIZE
};

u8* const level_map_enemies[LEVEL_COUNT] =
{
    map_IntroLevel_enemies,
    map_ConceptLevel1_enemies,
    map_ConceptLevel2_enemies,
    map_ConceptLevel3_enemies,
    map_ConceptLevel4_enemies,
    map_GestureLevel_enemies,
    map_CombinedLevel1_enemies,
    map_CombinedLevel2_enemies,
    map_FinalLevel_enemies
};

const u8 level_map_enemies_size[LEVEL_COUNT] =
{
    MAP_INTROLEVEL_ENEMIES_SIZE,
    MAP_CONCEPTLEVEL1_ENEMIES_SIZE,
    MAP_CONCEPTLEVEL2_ENEMIES_SIZE,
    MAP_CONCEPTLEVEL3_ENEMIES_SIZE,
    MAP_CONCEPTLEVEL4_ENEMIES_SIZE,
    MAP_GESTURELEVEL_ENEMIES_SIZE,
    MAP_COMBINEDLEVEL1_ENEMIES_SIZE,
    MAP_COMBINEDLEVEL2_ENEMIES_SIZE,
    MAP_FINALLEVEL_ENEMIES_SIZE
};

u8* const level_links[LEVEL_COUNT] =
{
    NULL,
    NULL,
    NULL,
    map_ConceptLevel3_links,
    map_ConceptLevel4_links,
    map_GestureLevel_links,
    map_CombinedLevel1_links,
    map_CombinedLevel2_links,
    map_FinalLevel_links
};

const u8 level_links_array_size[LEVEL_COUNT] =
{
    0,
    0,
    0,
    MAP_CONCEPTLEVEL3_LINK_ARRAY_SIZE,
    MAP_CONCEPTLEVEL4_LINK_ARRAY_SIZE,
    MAP_GESTURELEVEL_LINK_ARRAY_SIZE,
    MAP_COMBINEDLEVEL1_LINK_ARRAY_SIZE,
    MAP_COMBINEDLEVEL2_LINK_ARRAY_SIZE,
    MAP_FINALLEVEL_LINK_ARRAY_SIZE
};

u8* const level_start_position[LEVEL_COUNT] =
{
    map_IntroLevel_startPosition,
    map_ConceptLevel1_startPosition,
    map_ConceptLevel2_startPosition,
    map_ConceptLevel3_startPosition,
    map_ConceptLevel4_startPosition,
    map_GestureLevel_startPosition,
    map_CombinedLevel1_startPosition,
    map_CombinedLevel2_startPosition,
    map_FinalLevel_startPosition
};

u8* const level_water_regions[LEVEL_COUNT] =
{
    map_IntroLevel_water,
    map_ConceptLevel1_water,
    map_ConceptLevel2_water,
    map_ConceptLevel3_water,
    map_ConceptLevel4_water,
    map_GestureLevel_water,
    map_CombinedLevel1_water,
    map_CombinedLevel2_water,
    map_FinalLevel_water
};

const u8 level_water_array_size[LEVEL_COUNT] =
{
    MAP_INTROLEVEL_WATER_SIZE,
    MAP_CONCEPTLEVEL1_WATER_SIZE,
    MAP_CONCEPTLEVEL2_WATER_SIZE,
    MAP_CONCEPTLEVEL3_WATER_SIZE,
    MAP_CONCEPTLEVEL4_WATER_SIZE,
    MAP_GESTURELEVEL_WATER_SIZE,
    MAP_COMBINEDLEVEL1_WATER_SIZE,
    MAP_COMBINEDLEVEL2_WATER_SIZE,
    MAP_FINALLEVEL_WATER_SIZE
};

const u8 level_objective_type[LEVEL_COUNT] =
{
    0,
    0,
    0,
    MAP_CONCEPTLEVEL3_OBJECTIVE_TYPE,
    MAP_CONCEPTLEVEL4_OBJECTIVE_TYPE,
    0,
    MAP_COMBINEDLEVEL1_OBJECTIVE_TYPE,
    0,
    MAP_FINALLEVEL_OBJECTIVE_TYPE
};

const u8 level_objective_action_count[LEVEL_COUNT] =
{
    0,
    0,
    0,
    MAP_CONCEPTLEVEL3_OBJECTIVE_ACTION_COUNT,
    MAP_CONCEPTLEVEL4_OBJECTIVE_ACTION_COUNT,
    0,
    MAP_COMBINEDLEVEL1_OBJECTIVE_ACTION_COUNT,
    0,
    MAP_FINALLEVEL_OBJECTIVE_ACTION_COUNT
};