/// @file main.h
/**
	@mainpage	END 프로젝트 Version 0.6 (R3/M6)
	<p>&nbsp;</p>
	@section	welcom	환영합니다.
	- END프로젝트는 DirectX9와 C++을 이용하여 작고 가벼운 게임엔진 개발을 목표로하는 프로젝트입니다.
	- 이 페이지는 doxygen을 이용하여 작성되었으며, 클래스 및 함수등을 살펴 볼 수 있습니다.
	- 프로젝트에 대한 자세한 내용은 http://end.kldp.net 사이트를 참조하세요.
	<p>&nbsp;</p>
	@section	info	프로젝트 정보
	- 버전 : 0.6 (여섯번째 마일스톤 / 세번째 릴리즈)
	- 최상위 클래스 : MainClass
	- 작성일 : 2006/03/31/
*/
#include "core/WindowCore.h"
#include "core/process/GameCore.h"

#include <fstream>
using std::ifstream;

/**
	@brief 최상위계층

	Main함수에서는 WindowCore 클래스와 GameCore 클래스를 가집니다.
*/
class MainClass {
public:
	inline void initEngine(const char* _pConfigFile){
		ifstream File(_pConfigFile);
		int width, height;
		bool bWindowed;
		HWND hWnd;
		File >> width;
		File >> height;
		File >> bWindowed; //true =1, false =0
		File.close();

		aWindowCore_.initWindow(width, height);
		hWnd = aWindowCore_.makeGameWindow();
		if(!bWindowed){SetWindowLong(hWnd, GWL_STYLE, WS_OVERLAPPED);}
		ShowCursor(false);

		aGameCore_.initGame(hWnd, width, height, bWindowed);
	}
	inline void runEngine(){
		aGameCore_.run();
	}
private:
	WindowCore aWindowCore_;
	GameCore   aGameCore_;
};
