view LightClone/Source/Mediator.h @ 73:0574e2cf8bac

Additional screen types
author koryspansel
date Tue, 11 Oct 2011 17:44:10 -0700
parents 9a9be3d8632e
children 40c0b5305de8
line wrap: on
line source

/*
 * Mediator
 */

#ifndef __MEDIATOR_H__
#define __MEDIATOR_H__

#include "Core.h"
#include "Clock.h"
#include "Window.h"
#include "InputManager.h"
#include "GraphicsDevice.h"
#include "ResourceManager.h"
#include "RenderContext.h"
#include "ServiceProvider.h"
#include "ScreenManager.h"
#include "MainScreen.h"
#include "HelpScreen.h"
#include "PauseScreen.h"
#include "GameScreen.h"
#include "LevelOverScreen.h"
#include "GameOverScreen.h"
#include "ConfirmScreen.h"

/*
 * Mediator
 */
class Mediator : public WindowCallback
{
	/*
	 * kWindow
	 */
	Window kWindow;

	/*
	 * kClock
	 */
	Clock kClock;

	/*
	 * pGraphicsDevice
	 */
	GraphicsDevice* pGraphicsDevice;

	/*
	 * kResourceManager
	 */
	ResourceManager kResourceManager;

	/*
	 * kContext
	 */
	RenderContext kContext;

	/*
	 * kInputManager
	 */
	InputManager kInputManager;

	/*
	 * kServiceProvider
	 */
	ServiceProvider kServiceProvider;

	/*
	 * kScreenManager
	 */
	ScreenManager kScreenManager;

	/*
	 * kMainScreen
	 */
	MainScreen kMainScreen;

	/*
	 * kHelpScreen
	 */
	HelpScreen kHelpScreen;

	/*
	 * kGameScreen
	 */
	GameScreen kGameScreen;

	/*
	 * kPauseScreen
	 */
	PauseScreen kPauseScreen;

	/*
	 * kLevelOverScreen
	 */
	LevelOverScreen kLevelOverScreen;

	/*
	 * kGameOverScreen
	 */
	GameOverScreen kGameOverScreen;

	/*
	 * kConfirmScreen
	 */
	ConfirmScreen kConfirmScreen;

public:

	/*
	 * Mediator
	 */
	Mediator();

	/*
	 * Run
	 */
	ErrorCode Run();

	/*
	 * OnMessage
	 */
	virtual int32 OnMessage(Window* pInstance, uint32 nMessage, WPARAM wParam, LPARAM lParam);

private:

	/*
	 * Initialize
	 */
	virtual ErrorCode Initialize();

	/*
	 * Terminate
	 */
	virtual void Terminate();

	/*
	 * Update
	 */
	void Update(float fElapsed);

	/*
	 * Render
	 */
	void Render();

	/*
	 * ProcessMessages
	 */
	virtual void ProcessMessages();
};

#endif //__MEDIATOR_H__