Exemplo n.º 1
0
int CreditsProc(PASSPROCVARS Params){
	int r=0;
	r+=ccbOK.ProcFunction(Params);
	if(r){
		//we have to flip the screen
		Flip(Pass.DDFront);
		Blit(Pass.DDBack, ddsCredits, 0, 0, 640, 480, 0, 0);
	}
//now handle some messages
	switch(Params.uMsg){
	case WM_CLOSE:
		Pass.ProgramFlow=PF_EXIT;
		CreditsInfo=CREDITS_EXIT;
		break;
	case WM_PAINT:
		ddsCredits->Restore();
		ddsCreditsh->Restore();
		DDReLoadBitmap(ddsCredits,BMP_CREDITS);
		DDReLoadBitmap(ddsCreditsh,BMP_CREDITSH);
		Blit(Pass.DDFront, ddsCredits, 0, 0, 640, 480, 0, 0);
		Blit(Pass.DDBack, ddsCredits, 0, 0, 640, 480, 0, 0);
		break;
	case WM_KEYDOWN:
   	switch(Params.wParam){
      	case VK_ESCAPE:
         	CreditsInfo=CREDITS_EXIT;
         break;
      }
	break;
	}
	return 0;
}
Exemplo n.º 2
0
void settingsRedrawScreen(){
	ScreenHighlighted->Restore();
	ScreenUnhighlighted->Restore();
	DDReLoadBitmap(ScreenHighlighted,BMP_SETTINGSH);
	DDReLoadBitmap(ScreenUnhighlighted,BMP_SETTINGS);
	DrawString("Setting up alpha table/@", 0, 0, 8);
	Blit(Pass.DDFront, ScreenUnhighlighted, 0, 0, 640, 480, 0, 0);
	Blit(Pass.DDBack, ScreenUnhighlighted, 0, 0, 640, 480, 0, 0);
}
Exemplo n.º 3
0
Dynamite::Dynamite(LPCSTR BitmapDir, const char *text, int Startx, int Starty, int Startz, int Time)
{
	DeleteThis = false;
	ObjString = text;
	//Direct Draw Initialization
	DDSURFACEDESC2 ddsd;
	INITIALIZE_DDRAW(ddsd);
	ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CKSRCBLT;
	ddsd.dwWidth = 64;
	ddsd.dwHeight = 64;
	ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;

	if(FAILED(lpdd->CreateSurface(&ddsd, &TheBitmap, NULL)))
	{
		// Failed making surface
	}

	INITIALIZE_DDRAW(ddsd);
	ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CKSRCBLT;
	ddsd.dwWidth = 640;
	ddsd.dwHeight = 64;
	ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;

	if(FAILED(lpdd->CreateSurface(&ddsd, &ExplosionBitmap, NULL)))
	{
		// Failed making surface
	}

	mysz = BitmapDir;
	DDReLoadBitmap(TheBitmap, BitmapDir);
	DDReLoadBitmap(ExplosionBitmap, "gfx/Explosions.bmp");

	SourceRect.left = 0;
	SourceRect.top = 0;
	SourceRect.bottom = 63;
	SourceRect.right = 63;

	RenderThis = true;
	DoCount = false;
	x = Startx;
	y = Starty;
	z = Startz;

	FramesCounter = 0;
	Timer = Time;
	StartTime = Time;
	char temp[2];
	_itoa(Timer, temp, 10);
	thestring = temp; 

	TimeDisplay = new Text(18,"Dynamite Text", thestring, x + 25, y + 25, z, 200, 80,false);
}
Exemplo n.º 4
0
Cart::Cart(LPCSTR BitmapDir, int StartWeight, int Startx, int Starty, int Startz)
{
	DeleteThis = false;
	//Direct Draw Initialization
	DDSURFACEDESC2 ddsd;
	INITIALIZE_DDRAW(ddsd);
	ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CKSRCBLT;
	ddsd.dwWidth = 3520;
	ddsd.dwHeight = 64;
	ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;

	if(FAILED(lpdd->CreateSurface(&ddsd, &TheBitmap, NULL)))
	{
		// Failed making surface
	}

	mysz = BitmapDir;
	DDReLoadBitmap(TheBitmap, BitmapDir);

	//Setup the source Rectangle for animations
	SourceRect.top = 0;
	SourceRect.left = 0;
	SourceRect.right = 64;
	SourceRect.bottom = 64;

	// Default settings for Cart
	RenderThis = true;
	Weight = StartWeight;
	Current = Finished;
	CurrentStatus = None;
	NumberOfPowerups = 0;
	x = Startx;
	y = Starty;
	x = Startz;
	Animating = false;

	CollBox.left = x + 32;
	CollBox.top = y + 32;
	CollBox.right = x + 32;
	CollBox.bottom = y + 32;
	Speed = 20;
	Skipframe = 0;

	//Start positions of all the animations
	LeftU2Start = 64;
	RightU2Start = 64;
	LeftUStart = 704;
	RightUStart = 704;
	UpStart = 704;
	LeftD2Start = 768;
	RightD2Start = 768;
	LeftDStart = 1408;
	RightDStart = 1408;

	JumpStart = 1408;
	JumpFallStart = 3520;

}
Exemplo n.º 5
0
////added for search by text functions. Leigh
Track::Track(LPCSTR BitmapDir, const char *text, int Startx, int Starty, int Startz, TrackType TheType, int SpeedAmount)
{
	DeleteThis = false;
	ObjString = text;
	//Direct Draw Initialization
	DDSURFACEDESC2 ddsd;
	INITIALIZE_DDRAW(ddsd);
	ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CKSRCBLT;
	ddsd.dwWidth = 64;
	ddsd.dwHeight = 64;
	ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;

	if(FAILED(lpdd->CreateSurface(&ddsd, &TheBitmap, NULL)))
	{
		// Failed making surface
	}

	x = Startx;
	y = Starty;
	z = Startz;

	mysz = BitmapDir;
	DDReLoadBitmap(TheBitmap, BitmapDir);

	//Setup the source Rectangle for drawing
	SourceRect.top = 0;
	SourceRect.left = 0;
	SourceRect.right = 64;
	SourceRect.bottom = 64;

	//Other variables used for Track objects
	SpeedOffset = SpeedAmount;
	CollBox.top = Starty;
	CollBox.bottom = (Starty + 63);
	CollBox.left = Startx;
	CollBox.right = (Startx + 63);

	Type = TheType;
	RenderThis = true;
	Reverse = false;
	
	if (Type == Normal || Type == Start || Type == Finish || Type == SpeedUp || Type == SpeedDown)
		Vector = Right;
	else
		Vector = Down;

	string temp;
	temp = BitmapDir;

	if (temp == "gfx/TD.bmp")
	{
		Vector = Down;
	}
}
Exemplo n.º 6
0
BOOL InitDDraw()
{
	DDSURFACEDESC ddsd;
	HRESULT ddrval;

	DirectDrawCreate(NULL, &lpDD, NULL);//产生一个DDRAW对象。
	/*第一个参数是要创建的驱动类型,设为NULL,表示使用当前的显示驱动
	第三个参数用于今后与COM对象兼容,目前都设为NULL*/

	lpDD->SetCooperativeLevel (hWnd, DDSCL_NORMAL);//设置协作级别

	ZeroMemory( &ddsd, sizeof(ddsd));
	ddsd.dwSize = sizeof(ddsd);
	ddsd.dwFlags = DDSD_CAPS;
	/*主页面的大小和像素格式都是由当前的显示模式决定的,
	所以不能指定,否则发生错误*/
	ddsd.ddsCaps .dwCaps = DDSCAPS_PRIMARYSURFACE;
	ddrval = lpDD->CreateSurface (&ddsd, &lpDDSPrimary, NULL);
	/*第三个参数也是用于与COM对象兼容,目前只能设为NULL*/
	if(ddrval != DD_OK)
	{
		return FALSE;
	}
	
	ZeroMemory( &ddsd, sizeof(ddsd));
	ddsd.dwSize = sizeof(ddsd);
	ddsd.dwFlags = DDSD_CAPS| DDSD_HEIGHT| DDSD_WIDTH;
	ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
	ddsd.dwHeight = 600;
	ddsd.dwWidth = 800;
	/*页面的大小可以和实际图片大小不一样,但会产生失真*/

	RectTemp.left = 0;
	RectTemp.top = 0;
	RectTemp.right = ddsd.dwWidth;
	RectTemp.bottom = ddsd.dwHeight;
	

	lpDD->CreateSurface (&ddsd, &lpDDSTemp, NULL);
	if(ddrval != DD_OK)
	{
		return FALSE;
	}

	DDReLoadBitmap( lpDDSTemp, "gameover.bmp");

	return TRUE;

}
Exemplo n.º 7
0
int TEXTEDITBOX::ProcFunction(PASSPROCVARS Params){
	TCHAR Char;
	//
	switch(Params.uMsg){
	case WM_PAINT:
		RestoreFonts();
		Pass.DDFront->Restore();
		Pass.DDBack->Restore();
		this->EditBoxSurface->Restore();
		DDReLoadBitmap(this->EditBoxSurface, BMP_TEXTEDITBOX);
		this->StorageSurface->Restore();
		break;
	case WM_CHAR:
		switch(Params.wParam){
			case 0x08:  /* backspace */
				DeleteChar();
				break;
			case 0x0A:  /* linefeed */
			case 0x0D:  /* carriage return */
				Info=TEBI_DONE;
				break;
			case 0x1B:  /* escape */
			case 0x09:  /* tab */
				break;
			default:
				//normal character:
				Char=(TCHAR) Params.wParam;
				AddChar(Char);
			break;
		}
		break;
		case WM_KEYDOWN:
		///put it in the box.
		switch(Params.wParam){
			case VK_RETURN:
				break;
			case VK_ESCAPE:
				break;
			case VK_LEFT:
				break;
			case VK_RIGHT:
				break;
		}
		break;
	}

	UpdateBox();
	return 0;
}
Exemplo n.º 8
0
////////constructor for differing height/width animated tracks
AnimatedTrack::AnimatedTrack(LPCSTR BitmapDir, const char *text, int Startx, int Starty, int Startz,int width, int height, int NumberFrames, RECT Collision)
{
	DeleteThis = false;
	ObjString = text;
	Width = width;
	Height = height;
	//Direct Draw Initialization
	DDSURFACEDESC2 ddsd;
	INITIALIZE_DDRAW(ddsd);
	ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CKSRCBLT;
	ddsd.dwWidth = (NumberFrames * Width);
	ddsd.dwHeight = Height;
	ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = _RGB16BIT565(255, 0, 255);

	if(FAILED(lpdd->CreateSurface(&ddsd, &TheBitmap, NULL)))
	{
		// Failed making surface
	}

	x = Startx;
	y = Starty;
	z = Startz;

	mysz = BitmapDir;
	DDReLoadBitmap(TheBitmap, BitmapDir);

	//Setup the source Rectangle for animations
	SourceRect.top = 0;
	SourceRect.left = 0;
	SourceRect.right = Width-1;
	SourceRect.bottom = Height-1;

	// Other variables used with animated track objects
	SpeedOffset = 2;
	CollBox = Collision;
	Frames = NumberFrames;
	RenderThis = true;
	AnimateReverse = false;

}
Exemplo n.º 9
0
////added for search by text functions. Leigh
Track::Track(LPCSTR BitmapDir, const char *text, int Startx, int Starty, int Startz, RECT Collision)
{
	DeleteThis = false;
	ObjString = text;
	//Direct Draw Initialization
	DDSURFACEDESC2 ddsd;
	INITIALIZE_DDRAW(ddsd);
	ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_CKSRCBLT;
	ddsd.dwWidth = 64;
	ddsd.dwHeight = 64;
	ddsd.ddckCKSrcBlt.dwColorSpaceLowValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddckCKSrcBlt.dwColorSpaceHighValue = _RGB16BIT565(255, 0, 255);
	ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;

	if(FAILED(lpdd->CreateSurface(&ddsd, &TheBitmap, NULL)))
	{
		// Failed making surface
	}

	x = Startx;
	y = Starty;
	z = Startz;

	mysz = BitmapDir;
	DDReLoadBitmap(TheBitmap, BitmapDir);

	//Setup the source Rectangle for drawing
	SourceRect.top = 0;
	SourceRect.left = 0;
	SourceRect.right = 64;
	SourceRect.bottom = 64;

	//Other variables used for Track objects
	SpeedOffset = -1;
	Type = Normal;
	CollBox = Collision;
	RenderThis = true;

}