// // Deus Hax (working title) // Copyright (c) 2010 Sam Hocevar <sam@hocevar.net> // #if defined HAVE_CONFIG_H # include "config.h" #endif #include <cstdio> #include "game.h" #include "map.h" /* * Game implementation class */ class GameData { friend class Game; private: Map *map; int x, y; int mousex, mousey; int done; Scene *scene; }; /* * Public Game class */ Game::Game(char const *mapname) { data = new GameData(); data->map = new Map(mapname); data->x = data->y = 0; data->done = 0; data->scene = NULL; } Game::~Game() { delete data->map; delete data; } Asset::Group Game::GetGroup() { return Asset::GetGroup(); } void Game::TickGame(float delta_time) { Asset::TickGame(delta_time); } void Game::TickRender(float delta_time) { Asset::TickRender(delta_time); GetScene(); data->map->Render(data->scene, data->mousex, data->mousey, 0); data->scene->Render(); delete data->scene; data->scene = NULL; } Scene *Game::GetScene() { if (!data->scene) data->scene = new Scene(); return data->scene; } void Game::SetMouse(int x, int y) { data->mousex = x; data->mousey = y; } void Game::Quit() { data->done = 1; } int Game::Finished() { return data->done; }