/// @file GameCore.h
#ifndef GAMECORE_H
#define GAMECORE_H
#include "ScriptManager.h"

/**
	@brief 프로세스를 위한 클래스

	모든 프로세스를 총괄하는 클래스입니다.\n
	프로세스를 담당하는 매니져를 통해 컨트롤 프로세스, 로딩 프로세스, 렌더링 프로세스를 수행합니다.\n
	또한 프로세스간의 통신을 위한 매개자로 ControlTable 객체를 가집니다.
*/
class GameCore {
public:
	void initGame(HWND _hWnd, int _width, int _height, bool _bWindowed);
	void run();

private: //private member
	RenderManager aRenderManager_; ///< 렌더링 프로세스
	ActionManager aActionManager_; ///< 액터 객체를 통한 컨트롤 프로세스
	ScriptManager aScriptManager_; ///< 스크립트 컨트롤 및 로딩 프로세스

	ControlTable* pControlTable_;  ///< 프로세스 매개자
};

#endif