Esempio n. 1
0
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
	// save off the instance handle
	hInst = hInstance; 

	// Set up the application window
	if (!InitWindow(hInstance))
	{
		return 0;
	}

	// Initialize Direct3D
	if (!dxMgr.InitDirect3D(mainhWnd))
	{
		return 0;
	}

	if (!diMgr.initDirectInput(hInst, mainhWnd))
	{
		MessageBox(mainhWnd, "Unable to init DirectInput", "ERROR", MB_OK);
		return false;
	}
	
	if (!diMgr.initKeyboard(hInst, mainhWnd))
	{
		MessageBox(mainhWnd, "Unable to init Mouse", "ERROR", MB_OK);
		return false;
	}

	if (!dsMgr.init(mainhWnd))
	{
		MessageBox(mainhWnd, "Unable to init Audio", "ERROR", MB_OK);
		return false;
	}

	// Initialize play mode
	if (!playMode.InitGame())
	{
		MessageBox(mainhWnd, "Unable to init game mode.", "ERROR", MB_OK);
		return 0;
	}

	
	// Initialize post game mode
	if (!postGame.Init())
	{
		MessageBox(mainhWnd, "Unable to init post game mode.", "ERROR", MB_OK);
		return 0;
	}

	// Initialize Main Menu
	if (!mainMenu.InitMenu())
	{
		MessageBox(mainhWnd, "Unable to init main menu.", "ERROR", MB_OK);
		return 0;
	}

	// Main message loop
    MSG msg = {0};
    while (WM_QUIT != msg.message)
    {
		// Process Windows messages first
        while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) == TRUE)
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        	
		// Render the scene
		if(gameState == MAINMENU)
		{
			gameState = mainMenu.Update();
			mainMenu.Render();
		}
		else if(gameState == SINGLEGAME)
		{
			playMode.setUp(false,true);
			gameState = PLAY;
		}
		else if(gameState == MULTIGAME)
		{
			playMode.setUp(true,true);
			gameState = PLAY;
		}
		else if(gameState == CONTSINGLE)
		{
			playMode.setUp(false,false);
			gameState = PLAY;
		}
		else if(gameState == CONTMULTI)
		{
			playMode.setUp(true,false);
			gameState = PLAY;
		}
		else if(gameState == PLAYERONEWIN || gameState == PLAYERTWOWIN || gameState == LOSE || gameState == WIN || gameState == MULTIDRAW || gameState == DRAW || gameState == MULTIPAUSE || gameState == PAUSE)
		{
			gameState = postGame.Update(gameState);
			postGame.Render(gameState);
		}
		else if(gameState == PLAY)
		{
			gameState = playMode.Update();
			playMode.Render();
		}
    }

	// Clean up
	dxMgr.ShutdownDirect3D();
	diMgr.shutdown();
	playMode.Shutdown();
	mainMenu.Shutdown();

	return (int) msg.wParam;
}