// Emulator copy of game.h
#ifndef GAME_H
#define GAME_H
#include <stdint.h>
#include "input_event.h"
#include "../display/low_level_render.h"
#include "../display/low_level_gui.h"
class InputManager;
class Game {
public:
    Game(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager)
        : width(width), height(height), renderer(renderer), gui(gui), input_manager(input_manager) {}
    virtual ~Game() {}
    virtual void init() = 0;
    virtual bool update(const InputEvent& event) = 0;
    virtual void draw() = 0;
    virtual bool wants_to_exit() const { return false; }
protected:
    uint16_t width;
    uint16_t height;
    LowLevelRenderer* renderer;
    LowLevelGUI* gui;
    InputManager* input_manager;
};
#endif // GAME_H
