#include "HPLSceneManager.h"
namespace HPL {
namespace General {
/** 
  *
  */
HPLSceneManager::HPLSceneManager() {
	this->m_nCurrentSceneID = -1;
}
/** 
  *
  */
HPLSceneManager::~HPLSceneManager(){
}

/** シーン追加
  * @exception 既に存在するシーンID
  */
void HPLSceneManager::add_Scene( int nUserID, AbstractScene* sScene ) {
	this->m_mapSceneMap[nUserID] = sScene;
}

/**
  * @retval 現在選択しているシーンのID
  */
int HPLSceneManager::get_CurrentSceneID() {
	return this->m_nCurrentSceneID;
}

/**
  * @retval 現在選択しているシーン
  */
AbstractScene* HPLSceneManager::get_Scene() {
	return this->m_mapSceneMap[this->get_CurrentSceneID() ];
}

/**
  * @exception			存在しないID
  */
void HPLSceneManager::set_Scene( int nUserID ) {
	if( this->get_CurrentSceneID() >= 0 ) {
		this->get_Scene()->quit();
	}

	this->m_nCurrentSceneID = nUserID;

	this->get_Scene()->init();
	
}

void HPLSceneManager::processScene() {
	this->get_Scene()->process();
}
}
}
