#ifndef TERRAIN_TILES_H
#define TERRAIN_TILES_H

#ifdef __cplusplus
extern "C"
{
#endif

enum
{
    /* SIDEWALK */
    SIDEWALK_1_NW,
    SIDEWALK_1_N,
    SIDEWALK_1_NE,
    SIDEWALK_2_NW,
    SIDEWALK_2_NE,
    SIDEWALK_3_NW,
    SIDEWALK_3_NE,
    SIDEWALK_4_N,

    SIDEWALK_1_W,
    SIDEWALK_1_C,
    SIDEWALK_1_E,
    SIDEWALK_2_SW,
    SIDEWALK_2_SE,
    SIDEWALK_3_SW,
    SIDEWALK_3_SE,
    SIDEWALK_4_C,

    SIDEWALK_1_SW,
    SIDEWALK_1_S,
    SIDEWALK_1_SE,
    SIDEWALK_5_W,
    SIDEWALK_5_C,
    SIDEWALK_5_E,
    SIDEWALK_6,
    SIDEWALK_4_S,

    SIDEWALK_START = SIDEWALK_1_NW,
    SIDEWALK_END = SIDEWALK_4_S,

    /* ROOF1 */
    ROOF1_1_NW,
    ROOF1_1_N,
    ROOF1_1_NE,
    ROOF1_2_NW,
    ROOF1_2_NE,
    ROOF1_3_NW,
    ROOF1_3_N,
    ROOF1_4_N,

    ROOF1_1_W,
    ROOF1_1_C,
    ROOF1_1_E,
    ROOF1_2_SW,
    ROOF1_2_SE,
    ROOF1_3_SW,
    ROOF1_3_SE,
    ROOF1_4_C,

    ROOF1_1_SW,
    ROOF1_1_S,
    ROOF1_1_SE,
    ROOF1_5_W,
    ROOF1_5_C,
    ROOF1_5_E,
    ROOF1_6,
    ROOF1_4_S,

    ROOF1_START = ROOF1_1_NW,
    ROOF1_END = ROOF1_4_S,

    /* ROOF2 */
    ROOF2_1_NW,
    ROOF2_1_N,
    ROOF2_1_NE,
    ROOF2_2_NW,
    ROOF2_2_NE,
    ROOF2_3_NW,
    ROOF2_3_N,
    ROOF2_4_N,

    ROOF2_1_W,
    ROOF2_1_C,
    ROOF2_1_E,
    ROOF2_2_SW,
    ROOF2_2_SE,
    ROOF2_3_SW,
    ROOF2_3_SE,
    ROOF2_4_C,

    ROOF2_1_SW,
    ROOF2_1_S,
    ROOF2_1_SE,
    ROOF2_5_W,
    ROOF2_5_C,
    ROOF2_5_E,
    ROOF2_6,
    ROOF2_4_S,

    ROOF2_START = ROOF2_1_NW,
    ROOF2_END = ROOF2_4_S,

    /* PAVEMENT */
    PAVEMENT_CW_H_MID,
    PAVEMENT_STR_MID_H_1,
    PAVEMENT_CW_V_LEFT,
    PAVEMENT_CW_V_MID,
    PAVEMENT_CW_V_RIGHT,
    PAVEMENT_RND_NW,
    PAVEMENT_RND_NE,
    PAVEMENT_SP_NW,
    PAVEMENT_SP_NE,
    PAVEMENT_1,
    PAVEMENT_P,
    PAVEMENT_CW_H_TOP,
    PAVEMENT_STR_H_TOP,

    PAVEMENT_CW_H_DOWN,
    PAVEMENT_STR_H_DOWN,
    PAVEMENT_STR_V_LEFT,
    PAVEMENT_STR_V_MID,
    PAVEMENT_STR_V_RIGHT,
    PAVEMENT_RND_SW,
    PAVEMENT_RND_SE,
    PAVEMENT_SP_SW,
    PAVEMENT_SP_SE,
    PAVEMENT_2,
    PAVEMENT_BIKE,
    PAVEMENT_PLUS,
    PAVEMENT_EMPTY,

    PAVEMENT_START = PAVEMENT_CW_H_MID,
    PAVEMENT_END = PAVEMENT_EMPTY,

    /* BUILDING1 */
    BUILDING1_1_N,
    BUILDING1_2_NW,
    BUILDING1_2_N,
    BUILDING1_2_NE,
    BUILDING1_3_NW,
    BUILDING1_3_N,
    BUILDING1_3_NE,

    BUILDING1_1_C_1,
    BUILDING1_2_W_1,
    BUILDING1_2_C_1,
    BUILDING1_2_E_1,
    BUILDING1_3_W_1,
    BUILDING1_3_C_1,
    BUILDING1_3_E_1,

    BUILDING1_1_C_2,
    BUILDING1_2_W_2,
    BUILDING1_2_C_2,
    BUILDING1_2_E_2,
    BUILDING1_3_W_2,
    BUILDING1_3_C_2,
    BUILDING1_3_E_2,

    BUILDING1_1_S,
    BUILDING1_2_SW,
    BUILDING1_2_S,
    BUILDING1_2_SE,
    BUILDING1_3_SW,
    BUILDING1_3_S,
    BUILDING1_3_SE,

    BUILDING1_START = BUILDING1_1_N,
    BUILDING1_END = BUILDING1_2_SE,

    /* BUILDING2 */
    BUILDING2_1_N,
    BUILDING2_2_NW,
    BUILDING2_2_N,
    BUILDING2_2_NE,
    BUILDING2_3_NW,
    BUILDING2_3_N,
    BUILDING2_3_NE,

    BUILDING2_1_C_1,
    BUILDING2_2_W_1,
    BUILDING2_2_C_1,
    BUILDING2_2_E_1,
    BUILDING2_3_W_1,
    BUILDING2_3_C_1,
    BUILDING2_3_E_1,

    BUILDING2_1_C_2,
    BUILDING2_2_W_2,
    BUILDING2_2_C_2,
    BUILDING2_2_E_2,
    BUILDING2_3_W_2,
    BUILDING2_3_C_2,
    BUILDING2_3_E_2,

    BUILDING2_1_S,
    BUILDING2_2_SW,
    BUILDING2_2_S,
    BUILDING2_2_SE,
    BUILDING2_3_SW,
    BUILDING2_3_S,
    BUILDING2_3_SE,

    BUILDING2_START = BUILDING2_1_N,
    BUILDING2_END = BUILDING2_3_SE
};

enum
{
    OBJECT_NONE,

    /* GRASS */
    GRASS_1_NW,
    GRASS_1_N,
    GRASS_1_NE,
    GRASS_2_NW,
    GRASS_2_NE,
    GRASS_3_NW,
    GRASS_3_NE,
    GRASS_4_N,

    GRASS_1_W,
    GRASS_1_C,
    GRASS_1_E,
    GRASS_2_SW,
    GRASS_2_SE,
    GRASS_3_SW,
    GRASS_3_SE,
    GRASS_4_C,

    GRASS_1_SW,
    GRASS_1_S,
    GRASS_1_SE,
    GRASS_5_W,
    GRASS_5_C,
    GRASS_5_E,
    GRASS_6,
    GRASS_4_S,

    GRASS_START = GRASS_1_NW,
    GRASS_END = GRASS_4_S
};

#ifdef __cplusplus
}
#endif

#endif /* TERRAIN_TILES_H */
