#pragma once class Actor; class Map; class Gui; #include "libtcod.hpp" class Engine { public: enum GameStatus { STARTUP, IDLE, NEW_TURN, VICTORY, DEFEAT, QUIT } gameStatus; int screenWidth; int screenHeight; TCOD_mouse_t mouse; TCODList actors; Actor* player; Map* map; Gui* gui; int fovRadius; tcod::Context *context; tcod::Console* console; Engine(int screenWidth, int screenHeight, tcod::Context *context, tcod::Console *console); void init(); ~Engine(); bool update(); void render(); void sendToBack(Actor* actor); private: bool computeFov; }; extern Engine *engine;