Example #1
0
static void DrawMN(byte *p1, byte *p2, void *bg, int sel)
{
    PutBitmap(0, 0, bg, 800, 140);
    PutBitmapNZ(80, 100+0, p1, 640, 150);
    PutBitmap(80, 250, ((sel == 0) ? p2 : p1) + 640 * 150, 640, 74);
    PutBitmap(80, 324, ((sel == 1) ? p2 : p1) + 640 * 224, 640, 80);
    PutBitmap(80, 404, ((sel == 2) ? p2 : p1) + 640 * 304, 640, 76);
    PutBitmap(80, 480, ((sel == 3) ? p2 : p1) + 640 * 380, 640, 100);
}
Example #2
0
bool CDDB::PutBitmap( int x, int y, UINT nIDResource, int xSrc, int ySrc, int dxSrc, int dySrc, int width, int height, DWORD dwRop, int alpha)
{
	// Get bitmap resource
	CDC NewDC;
	NewDC.CreateCompatibleDC( &m_DC);
	
	CBitmap NewBmp;
	if ( !NewBmp.LoadBitmap( nIDResource))
		return false;								// Fail


	CBitmap *pOldBmp = (CBitmap *)NewDC.SelectObject( &NewBmp);
	BITMAP bmpInfo;
	NewBmp.GetBitmap(&bmpInfo);


	// Put bitmap
	bool bRetVal = PutBitmap( x, y, &NewDC, xSrc, ySrc, dxSrc, dySrc, width, height, dwRop, alpha);

	NewDC.SelectObject( pOldBmp);


	return bRetVal;
}
Example #3
0
/*************************************************************
 PutBitmap

  desc : DDB에 지정한 비트맵 리소스의 일부 영역을 출력한다.
  arg  : x, y = DDB에 이미지를 출력할 시작 좌표
		 nIDResource = 비트맵 리소스 ID
         xSrc, ySrc = Source DC에서 이미지를 가져올 시작 좌표 입력
		 dxSrc, dySrc = Source DC에서 이미지를 가져올 크기 혹은 끝 좌표
		 width, height = 가져온 이미지를 출력하기 위한 크기
		 dwRop = 래스터 오퍼레이션(TRANSPARENT=투명색 처리, SRCCOPY, SRCAND, SRCOR...)
		 alpha = 투명값
  ret  : true(=성공) or false(=실패)
  ex   : PutBitmap( 200, 100, IDB_BITMAP, 300, 400, 100, 100, 200, 200, SRCCOPY, 255);
**************************************************************/
bool CDDB::PutBitmap( int x, int y, UINT nIDResource, int xSrc, int ySrc, int dxSrc, int dySrc, DWORD dwRop, int alpha)
{
	return PutBitmap( x, y, nIDResource, xSrc, ySrc, dxSrc, dySrc, dxSrc, dySrc, dwRop, alpha);
}
Example #4
0
/*************************************************************
 PutBitmap

  desc : DDB의 지정한 위치에 다른 DDB로부터 이미지 일부 영역을 복사한다.
  arg  : x, y = 출력을 시작할 위치 좌표 입력
		 *pDC = 출력할 이미지를 가져올 DC 포인터 입력
         xSrc, ySrc = Source DC에서 이미지를 가져올 시작 좌표 입력
		 dxSrc, dySrc = Source DC에서 이미지를 가져올 크기 혹은 끝 좌표
 		 width, height = 가져온 이미지를 출력하기 위한 크기
		 dwRop = 래스터 오퍼레이션(TRANSPARENT=투명색 처리, SRCCOPY, SRCAND, SRCOR...)
		 alpha = 투명값
  ret  : true(=성공) or false(=실패)
  ex   : PutBitmap( 100, 100, GetDC(), 200, 200, 300, 300, SRCCOPY, 255);
**************************************************************/
bool CDDB::PutBitmap( int x, int y, CDC *pDC, int xSrc, int ySrc, int dxSrc, int dySrc, DWORD dwRop, int alpha)
{
	return PutBitmap( x, y, pDC, xSrc, ySrc, dxSrc, dySrc, dxSrc, dySrc, dwRop, alpha);
}
Example #5
0
static void DrawFlash(TMutationHeader *Mut, void *Buffer, int FromY, int ToY)
{
    if (Flash1st) { PlaySample(FlashSnd, 8, 32, 128); Flash1st = FALSE; }
    PutBitmap(0, FlashPos, Buffer, Mut->ResolutionX, Mut->ResolutionY);
}
Example #6
0
void ShowCredits()
{
    char *buf;
    char line[200];
    void *ptr, *ptr2;
    char *c;
    int i, curln, lastchar;
    int oldvol = MusicVolume;
    
    TEvent e;

    SetVolume(EffectsVolume, SpeechVolume, 64);
    MouseHide();
    ClearScr();
    PlayMusic("solution.s3m");


    do {GetEvent(&e);} while (e.What != evNothing);
    e.What = evNothing;
 
    ptr = memalloc(RES_X * RES_Y);
    memset(ptr, 0, 800*600);
    ptr2 = GraphicsDF->get("mmnulogo");
    memcpy(ptr, ptr2, 800 * 140);
    memfree(ptr2);

    buf = (char*) TextsDF->get("credits");
    ptr2 = memalloc(RES_X * RES_Y);
    memcpy(ptr2, ptr, RES_X * RES_Y);
    DrawPicture(ptr);

    for (curln = 520; TRUE; curln -= 1) {
        i = 0; line[0] = 0; lastchar = 0;
        for (c = buf; *c != 0; c++) {
            if (*c == '\n') {
                line[lastchar] = 0;
                if (strcmp(line, "END") == 0) break;
                i++;
                if (strlen(line) == 0) continue;
                if ((curln + 20 * i > 60) && (curln + 20 * i < 540)) 
                    PutStr(ptr, 800, 400 - GetStrWidth(line+1, NormalFont)/2,
                           curln + 20 * i, line+1, NormalFont, 
                           (line[0] == '*') ? 9/*red*/ : 2/*white*/, 0);
                line[0] = 0; lastchar = 0;
            }
            else line[lastchar++] = *c;                
        }
        PutBitmap(0, 220, ((char*)ptr) + 220 * 800, 800, 300);
        memcpy(ptr, ptr2, 800*600);
        SDL_Delay(20);

        GetEvent(&e);
        if ((e.What == evKeyDown) || (e.What == evMouseDown)) break;
    }

    memfree(ptr);
    memfree(ptr2);
    memfree(buf);
    MouseShow();
    ClearScr();
    SetVolume(EffectsVolume, SpeechVolume, oldvol);
}