← index
Old.Learning.Projects/pscgame/MasterMain.cpp
Source: Old.Learning.Projects/pscgame/MasterMain.cpp
// psc cd - the game

// written by jared bruni

// www.lostsidedead.com


#include "thehead.h"



MasterXHWND mxhwnd;

// game objects

Intro intro;
Game game;
Over over;
Player player;
PSCParticleEmiter pscemiter;
Cannon cannon;

int _stdcall MasterMain(HINSTANCE hInst ,char* line)
{
	if(mxhwnd.CreateMasterX("PSCCD",640,480,COLOR_DEFAULT,MasterProc,hInst,NULL,NULL))
	{
		intro.load();
		game.load();
		over.load();
		pscemiter.load();
		cannon.load();

		mxhwnd.InitTimer(1,1);
		mxhwnd.HideCursor();
		mxhwnd.SetScreen (ID_INTRO);
		return mxhwnd.InitLoop(update);
	}

	return 0;
}



long XSTD MasterProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	switch(msg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_ACTIVATEAPP:
		mxhwnd.activeapp = wParam;
		break;
	case WM_KEYDOWN:
		{
			if(wParam == VK_ESCAPE)
			{
				mxhwnd.Kill();
				break;
			}
			else
			{
			
				switch(mxhwnd.GetScreen())
				{
				case ID_INTRO:
					intro.keypress(wParam);
					break;
				case ID_GAME:
					cannon.keypress(wParam);
					break;
				case ID_OVER:
					over.keypress(wParam);
					break;
				}

			}
		}
		break;

	case WM_TIMER:
		{
			mxhwnd.ChangeTime();
		}
		break;
		
	default: return DefWindowProc(hwnd,msg,wParam,lParam);
	}
	return 0;
}


void update(MASTERSCREEN screen)
{
	mxhwnd.SetTimeFlag();
	switch(screen)
	{
	case ID_INTRO:
		intro.update();
		break;
	case ID_GAME:
		game.update();
		break;
	case ID_OVER:
		over.update();
		break;
	}
}