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

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

/*
 * GameScreen
 */

#ifndef __GAMESCREEN_H__
#define __GAMESCREEN_H__

#include "Core.h"
#include "Screen.h"
#include "CameraController.h"
#include "GuiInterface.h"
#include "GuiImage.h"
#include "GuiButton.h"
#include "ActionPanel.h"
#include "Loader.h"
#include "Environment.h"
#include "Bot.h"
#include "Dialog.h"

/*
 * GameScreen
 */
class GameScreen : public Screen
{
	/*
	 * pInputManager
	 */
	InputManager* pInputManager;

	/*
	 * kCameraController
	 */
	CameraController kCameraController;

	/*
	 * kLoader
	 */
	Loader kLoader;

	/*
	 * kEnvironment
	 */
	Environment kEnvironment;

	/*
	 * kBot
	 */
	Bot kBot;

	/*
	 * kProgram
	 */
	Program kProgram;

	/*
	 * nLogicState
	 */
	uint32 nLogicState;

	/*
	 * nSimulationState
	 */
	uint32 nSimulationState;

	/*
	 * nCurrentLevel
	 */
	uint32 nCurrentLevel;

	/*
	 * kInterface
	 */
	GuiInterface kInterface;

	/*
	 * pBackground
	 */
	GuiImage* pBackground;

	/*
	 * pButtonPlay
	 */
	GuiButton* pButtonPlay;

	/*
	 * pButtonStop
	 */
	GuiButton* pButtonStop;

	/*
	 * pButtonReset
	 */
	GuiButton* pButtonReset;

	/*
	 * pButtonExit
	 */
	GuiButton* pButtonExit;

	/*
	 * pToolbar
	 */
	ActionPanel* pToolbar;

	/*
	 * pCode
	 */
	ActionPanel* pCode[MaximumFunctionCount];

	/*
	 * pMessageDialog
	 */
	MessageDialog* pMessageDialog;

	/*
	 * pConfirmDialog
	 */
	ChoiceDialog* pConfirmDialog;

	/*
	 * pDebugText
	 */
	GuiLabel* pDebugText;

public:

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

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

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

	/*
	 * Render
	 */
	virtual void Render(RenderContext& kContext);

	/*
	 * Load
	 */
	ErrorCode Load(const char* pName);

private:

	/*
	 * InitializeInterface
	 */
	ErrorCode InitializeInterface(ServiceProvider* pServiceProvider);

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

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

	/*
	 * OnAction
	 */
	void OnAction(GuiEventArguments& kArguments);

	/*
	 * OnPlay
	 */
	void OnPlay(GuiEventArguments& kArguments);

	/*
	 * OnStop
	 */
	void OnStop(GuiEventArguments& kArguments);

	/*
	 * OnReset
	 */
	void OnReset(GuiEventArguments& kArguments);

	/*
	 * OnExit
	 */
	void OnExit(GuiEventArguments& kArguments);
};

#endif //__GAMESCREEN_H__