view LightClone/Source/World.h @ 39:d0ce73ced12e

Added base GuiDialog for event handling; Hookup level complete dialog
author koryspansel <koryspansel@bendbroadband.com>
date Thu, 22 Sep 2011 09:01:42 -0700
parents 2caa7c7e2cb5
children 00d17d8f407d
line wrap: on
line source

/*
 * World
 */

#ifndef __WORLD_H__
#define __WORLD_H__

#include "Core.h"
#include "ResourceManager.h"
#include "EventSystem.h"
#include "RenderContext.h"
#include "Environment.h"
#include "Bot.h"
#include "Code.h"
#include "Loader.h"
#include "CameraController.h"
#include "InputManager.h"
#include "GuiInterface.h"
#include "GuiImage.h"
#include "GuiButton.h"
#include "CodePanel.h"
#include "Program.h"
#include "Dialog.h"

/*
 * World
 */
class World
{
	/*
	 * pEventSystem
	 */
	EventSystem* pEventSystem;

	/*
	 * pInputManager
	 */
	InputManager* pInputManager;

	/*
	 * kLoader
	 */
	Loader kLoader;

	/*
	 * kEnvironment
	 */
	Environment kEnvironment;

	/*
	 * kBot
	 */
	Bot kBot;

	/*
	 * kProgram
	 */
	Program kProgram;

	/*
	 * nGameState
	 */
	uint32 nGameState;

	/*
	 * nSimulationState
	 */
	uint32 nSimulationState;

	/*
	 * nCurrentLevel
	 */
	uint32 nCurrentLevel;

	/*
	 * kCameraController
	 */
	CameraController kCameraController;

	/*
	 * kInterface
	 */
	GuiInterface kInterface;

	/*
	 * pBackground
	 */
	GuiImage* pBackground;

	/*
	 * pButtonPlay
	 */
	GuiButton* pButtonPlay;

	/*
	 * pButtonStop
	 */
	GuiButton* pButtonStop;

	/*
	 * pButtonReset
	 */
	GuiButton* pButtonReset;

	/*
	 * pButtonExit
	 */
	GuiButton* pButtonExit;

	/*
	 * pToolbar
	 */
	CodePanel* pToolbar;

	/*
	 * pMain
	 */
	CodePanel* pMain;

	/*
	 * pFunctionA
	 */
	CodePanel* pFunctionA;

	/*
	 * pFunctionB
	 */
	CodePanel* pFunctionB;

	/*
	 * pLevelDialog
	 */
	//GuiImage* pLevelDialog;

	/*
	 * pLevelDialogOk
	 */
	//GuiButton* pLevelDialogOk;

	/*
	 * pGameDialog
	 */
	//GuiImage* pGameDialog;

	/*
	 * pGameDialogOk
	 */
	//GuiButton* pGameDialogOk;

	/*
	 * kLevelDialog
	 */
	Dialog<1> kLevelDialog;	

public:
	
	/*
	 * World
	 */
	World();

	/*
	 * Initialize
	 */
	ErrorCode Initialize(EventSystem* pSystem, ResourceManager* pResource, InputManager* pInput);

	/*
	 * Terminate
	 */
	void Terminate();

	/*
	 * Activate
	 */
	void Activate();

	/*
	 * Deactivate
	 */
	void Deactivate();

	/*
	 * IsActive
	 */
	bool IsActive();

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

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

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

private:

	/*
	 * InitializeInterface
	 */
	ErrorCode InitializeInterface(ResourceManager* pResourceManager);

	/*
	 * Render3D
	 */
	void Render3D(RenderContext& kContext);

	/* 
	 * Render2D
	 */
	void Render2D(RenderContext& kContext);

	/*
	 * 	RenderEnvironment
	 */
	void RenderEnvironment(RenderContext& kContext, Environment* pEnvironment);

	/*
	 * RenderBot
	 */
	void RenderBot(RenderContext& kContext, Environment* pEnvironment, Bot* pBot);

	/*
	 * ProcessInput
	 */
	void ProcessInput(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);

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

#endif //__WORLD_H__