/// @file StartState.h
#ifndef STARTSTATE_H
#define STARTSTATE_H

#include "GameState.h"
#include "../object/ObjectManager.h"

/**
	@brief GameState에서 파생된 시작상태

	GameCore를 통해 시작되는 상태는 적으도 시작상태를 가지게 됩니다.\n
	이 시작상태클래스는 엔진사용자가 상태인터페이스만 지키면 임의로 설계가 가능합니다.
*/
class StartState : public GameState {
	public:
		StartState(){
			pLayerInfo_ = NULL;
			boolCache_ = FALSE;
		}
		virtual ~StartState(){
			delete pMObjectSet_;
		}

		virtual void initState(LayerInfo* _pLayerInfo);
		virtual void cache();
		virtual void input();
		virtual void process();
		virtual GameState* changeState();
		virtual void render();
	private:
		LayerInfo* pLayerInfo_;
		MObjectSet* pMObjectSet_;
		Indicator* pIndicatorArray_;
		RenderMObject* pRenderMObjectArray_;
		bool boolCache_;
		int totalMObjSet_;
};
#endif