#ifndef __GREEFYSNAKE_H__
#define __GREEFYSNAKE_H__

#include "../menu.h"

extern MENU_TYP greedySnake;
void            StartGame(void);
int             greedySnake_init(void);
int             greedySnake_uninit(void);
void            greedySnake_task(void);
void            greedySnake_key_handel(key_code_t key_code);
void            greedySnake_cover_draw(int *draw_index);

static uint8_t img_data_SNAKE_61_10[] = {
    0x3F, 0x3F, 0x33, 0x33, 0x33, 0x33, 0x33, 0xF3, 0xF3, 0x00, 0x00, 0x00,
    0x00, 0xFF, 0xFF, 0x03, 0x0C, 0x30, 0xC0, 0x00, 0xFF, 0xFF, 0x00, 0x00,
    0x00, 0x00, 0xFC, 0xFE, 0x37, 0x33, 0x33, 0x33, 0x37, 0xFE, 0xFC, 0x00,
    0x00, 0x00, 0x00, 0xFF, 0xFF, 0x78, 0x78, 0xCC, 0xCE, 0x87, 0x03, 0x01,
    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
    0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
    0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00,
    0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03,
    0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03,
    0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
    0x03, 0x03};
static icon_t img_SNAKE_61_10 = {img_data_SNAKE_61_10, 61, 10, NULL};

static uint8_t icon_data_scores_5_21[] = {0x9C, 0x50, 0x9D, 0x50, 0x5D,
                                          0xDD, 0x55, 0x15, 0x55, 0xDD,
                                          0x1D, 0x11, 0x1D, 0x05, 0x1D};
static icon_t  icon_scores_5_21        = {icon_data_scores_5_21, 5, 21, NULL};

static uint8_t icon_data_0_5_3[] = {0x07, 0x05, 0x05, 0x05, 0x07};
static icon_t  icon_0_5_3        = {icon_data_0_5_3, 5, 3, NULL};

static uint8_t icon_data_1_5_3[] = {0x01, 0x01, 0x01, 0x01, 0x01};
static icon_t  icon_1_5_3        = {icon_data_1_5_3, 5, 3, NULL};

static uint8_t icon_data_2_5_3[] = {0x07, 0x01, 0x07, 0x04, 0x07};
static icon_t  icon_2_5_3        = {icon_data_2_5_3, 5, 3, NULL};

static uint8_t icon_data_3_5_3[] = {0x07, 0x01, 0x07, 0x01, 0x07};
static icon_t  icon_3_5_3        = {icon_data_3_5_3, 5, 3, NULL};

static uint8_t icon_data_4_5_3[] = {0x05, 0x05, 0x07, 0x01, 0x01};
static icon_t  icon_4_5_3        = {icon_data_4_5_3, 5, 3, NULL};

static uint8_t icon_data_5_5_3[] = {0x07, 0x04, 0x07, 0x01, 0x07};
static icon_t  icon_5_5_3        = {icon_data_5_5_3, 5, 3, NULL};

static uint8_t icon_data_6_5_3[] = {0x07, 0x04, 0x07, 0x05, 0x07};
static icon_t  icon_6_5_3        = {icon_data_6_5_3, 5, 3, NULL};

static uint8_t icon_data_7_5_3[] = {0x07, 0x01, 0x01, 0x01, 0x01};
static icon_t  icon_7_5_3        = {icon_data_7_5_3, 5, 3, NULL};

static uint8_t icon_data_8_5_3[] = {0x07, 0x05, 0x07, 0x05, 0x07};
static icon_t  icon_8_5_3        = {icon_data_8_5_3, 5, 3, NULL};

static uint8_t icon_data_9_5_3[] = {0x07, 0x05, 0x07, 0x01, 0x07};
static icon_t  icon_9_5_3        = {icon_data_9_5_3, 5, 3, NULL};

static uint8_t icon_data_snake0_4_4[] = {0x09, 0x09, 0x03, 0x03};
static icon_t  icon_snake0_4_4        = {icon_data_snake0_4_4, 4, 4, NULL};

static uint8_t icon_data_snake1_4_4[] = {0x0f, 0x0f, 0x0f, 0x0f};
static icon_t  icon_snake1_4_4        = {icon_data_snake1_4_4, 4, 4, NULL};

static uint8_t icon_data_food_4_4[] = {0x06, 0x09, 0x09, 0x06};
static icon_t  icon_food_4_4        = {icon_data_food_4_4, 4, 4, NULL};

#endif
