dEngine
Simple 2D C++ game engine
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | Static Private Attributes | List of all members
dengine::Game Class Reference

The base level of the engine. More...

#include <Game.h>

Public Member Functions

 Game ()
 
GameLevelGetCurrentState ()
 Retrieves the current GameLevel. More...
 
void Push (GameLevel *state)
 Pushes a new GameLevel onto the internal stack. More...
 
void Pop ()
 Pops a level from the internal stack. More...
 
void loop ()
 The game loop. More...
 
void cleanup ()
 
SDL_Renderer * GetRenderer ()
 
template<typename T >
bool SaveState (Serializer< T > *serializer)
 
template<typename T >
bool LoadState (Serializer< T > *serializer)
 
UIGetUI ()
 
EventSystemGetEventSystem ()
 

Static Public Member Functions

static GameGetInstance ()
 

Public Attributes

SDL_Window * window = NULL
 

Private Attributes

UIui
 
EventSystemeventSystem
 
SDL_Renderer * renderer
 
std::stack< std::unique_ptr< GameLevel > > stateStack
 
GameLevelstoredState
 

Static Private Attributes

static Gameinstance
 

Detailed Description

The base level of the engine.

A Game is the most bottom level of the game engine. The game controls the game loop, managing state, and others. For individual developers there shouldn't be a need to inherit from or overwrite this class.

Constructor & Destructor Documentation

◆ Game()

Game::Game ( )

Referenced by GetInstance().

Member Function Documentation

◆ cleanup()

void Game::cleanup ( )

Frees up any allocated resources

Referenced by loop().

◆ GetCurrentState()

GameLevel & Game::GetCurrentState ( )

Retrieves the current GameLevel.

Referenced by loop().

◆ GetEventSystem()

EventSystem * Game::GetEventSystem ( )

Retrieves a pointer to the Event System

Returns
The Event System
See also
EventSystem.h

◆ GetInstance()

Game & Game::GetInstance ( )
static

◆ GetRenderer()

SDL_Renderer * Game::GetRenderer ( )

Returns the current game's renderer

Referenced by dengine::SpriteSheet::Render().

◆ GetUI()

UI * Game::GetUI ( )

Retrieves a pointer to the system UI

Returns
The UI
See also
UI.h

◆ LoadState()

template<typename T >
bool dengine::Game::LoadState ( Serializer< T > *  serializer)

Loads a state from a file and sets the games state

Parameters
serializerThe serializer to use for loading
Returns
True if success

◆ loop()

void Game::loop ( )

The game loop.

◆ Pop()

void Game::Pop ( )

Pops a level from the internal stack.

Referenced by loop().

◆ Push()

void Game::Push ( GameLevel state)

Pushes a new GameLevel onto the internal stack.

◆ SaveState()

template<typename T >
bool dengine::Game::SaveState ( Serializer< T > *  serializer)

Saves the current game state to a file

Parameters
serializerThe serializer to use for saving
Returns
True if success

Member Data Documentation

◆ eventSystem

EventSystem* dengine::Game::eventSystem
private

Referenced by Game(), GetEventSystem(), and loop().

◆ instance

Game * Game::instance
staticprivate

Referenced by Game(), and GetInstance().

◆ renderer

SDL_Renderer* dengine::Game::renderer
private

Referenced by Game(), GetRenderer(), and loop().

◆ stateStack

std::stack<std::unique_ptr<GameLevel> > dengine::Game::stateStack
private

Referenced by GetCurrentState(), loop(), and Pop().

◆ storedState

GameLevel* dengine::Game::storedState
private

Referenced by loop(), and Push().

◆ ui

UI* dengine::Game::ui
private

Referenced by Game(), GetUI(), and loop().

◆ window

SDL_Window* dengine::Game::window = NULL

A pointer to the game's window

Referenced by cleanup(), and Game().