#ifndef GAME_STATE_H
#define GAME_STATE_H

#include <array>
#include <deque>
#include <vector>
#include <nds/ndstypes.h>

struct GameState {
    volatile uint16_t ticks = 0;
    volatile uint16_t snakelength = 0;
    volatile uint16_t snakeDirection = 1;
    volatile uint16_t score = 0;

    bool gameOver = false;
    bool paused = false;
    bool hardMode = false;

    std::deque<std::array<int, 3>> snake;
    std::vector<std::array<int, 2>> apples;
    std::vector<std::array<int, 2>> bad_apples;
};

#endif
