Change tabs to spaces.
[reactos.git] / rosapps / games / solitaire / cardlib / cardbitmaps.cpp
index 530f651..9c5b4da 100644 (file)
@@ -1,8 +1,8 @@
 //\r
-//     CardLib - Card bitmap support\r
+//    CardLib - Card bitmap support\r
 //\r
-//     Freeware\r
-//     Copyright J Brown 2001\r
+//    Freeware\r
+//    Copyright J Brown 2001\r
 //\r
 #include <windows.h>\r
 #include "globals.h"\r
@@ -12,7 +12,7 @@
 #pragma comment( lib, "..\\CardLib\\cards16.lib" )\r
 \r
 extern "C" HINSTANCE WINAPI LoadLibrary16( PSTR );\r
-extern "C" void                 WINAPI FreeLibrary16( HINSTANCE );\r
+extern "C" void         WINAPI FreeLibrary16( HINSTANCE );\r
 #endif\r
 \r
 #define NUMCARDBITMAPS (52+16)\r
@@ -21,261 +21,261 @@ void PaintRect(HDC hdc, RECT *rect, COLORREF col);
 \r
 void LoadCardBitmapsFromLibrary(HINSTANCE hCardDll, int *pwidth, int *pheight)\r
 {\r
-       HBITMAP   hBitmap;\r
-       HDC               hdcCard;\r
-       HANDLE    hOld;\r
-       int             i, xpos;\r
-       int             width, height;\r
-       BITMAP bmp;\r
-\r
-       for(i = 0; i < NUMCARDBITMAPS; i++)\r
-       {\r
-               //convert into the range used by the cdt_xxx functions\r
-               int val;\r
-               \r
-               if(i < 52) val = (i % 4) * 13 + (i/4);\r
-               else       val = i;\r
-               \r
-               hBitmap = LoadBitmap(hCardDll, MAKEINTRESOURCE(val + 1));\r
-               GetObject(hBitmap, sizeof(bmp), &bmp);\r
-               \r
-               width  = bmp.bmWidth;\r
-               height = bmp.bmHeight;\r
-               \r
-               if(i == 0)      //if first time through, create BIG bitmap..\r
-               {\r
-                       HDC hdc = GetDC(0);\r
-                       __hdcCardBitmaps = CreateCompatibleDC(hdc);\r
-                       __hbmCardBitmaps = CreateCompatibleBitmap(hdc, width * NUMCARDBITMAPS, height);\r
-                       SelectObject(__hdcCardBitmaps, __hbmCardBitmaps);\r
-                       \r
-                       hdcCard = CreateCompatibleDC(0);\r
-                       \r
-                       ReleaseDC(0, hdc);\r
-               }\r
-               \r
-               hOld = SelectObject(hdcCard, hBitmap);\r
-               BitBlt(__hdcCardBitmaps, i*width, 0, width, height, hdcCard, 0, 0, SRCCOPY);\r
-               SelectObject(hdcCard, hOld);\r
-               \r
-               //Now draw a black border around each card...\r
-               xpos = i*width;\r
-               MoveToEx(__hdcCardBitmaps, xpos+2, 0, 0);\r
-               LineTo(__hdcCardBitmaps, xpos+width - 3, 0);\r
-               LineTo(__hdcCardBitmaps, xpos+width - 1, 2);\r
-               LineTo(__hdcCardBitmaps, xpos+width - 1, height - 3);   //vertical\r
-               LineTo(__hdcCardBitmaps, xpos+width - 3, height - 1);\r
-               LineTo(__hdcCardBitmaps, xpos+2, height - 1);\r
-               LineTo(__hdcCardBitmaps, xpos+0, height - 3);\r
-               LineTo(__hdcCardBitmaps, xpos+0, 2);\r
-               LineTo(__hdcCardBitmaps, xpos+2, 0);\r
-               \r
-               DeleteObject(hBitmap);\r
-       }\r
-       \r
-       DeleteDC(hdcCard);\r
-\r
-       *pwidth = width;\r
-       *pheight = height;\r
-                               \r
+    HBITMAP   hBitmap;\r
+    HDC          hdcCard;\r
+    HANDLE      hOld;\r
+    int        i, xpos;\r
+    int        width, height;\r
+    BITMAP bmp;\r
+\r
+    for(i = 0; i < NUMCARDBITMAPS; i++)\r
+    {\r
+        //convert into the range used by the cdt_xxx functions\r
+        int val;\r
+        \r
+        if(i < 52) val = (i % 4) * 13 + (i/4);\r
+        else       val = i;\r
+        \r
+        hBitmap = LoadBitmap(hCardDll, MAKEINTRESOURCE(val + 1));\r
+        GetObject(hBitmap, sizeof(bmp), &bmp);\r
+        \r
+        width  = bmp.bmWidth;\r
+        height = bmp.bmHeight;\r
+        \r
+        if(i == 0)    //if first time through, create BIG bitmap..\r
+        {\r
+            HDC hdc = GetDC(0);\r
+            __hdcCardBitmaps = CreateCompatibleDC(hdc);\r
+            __hbmCardBitmaps = CreateCompatibleBitmap(hdc, width * NUMCARDBITMAPS, height);\r
+            SelectObject(__hdcCardBitmaps, __hbmCardBitmaps);\r
+            \r
+            hdcCard = CreateCompatibleDC(0);\r
+            \r
+            ReleaseDC(0, hdc);\r
+        }\r
+        \r
+        hOld = SelectObject(hdcCard, hBitmap);\r
+        BitBlt(__hdcCardBitmaps, i*width, 0, width, height, hdcCard, 0, 0, SRCCOPY);\r
+        SelectObject(hdcCard, hOld);\r
+        \r
+        //Now draw a black border around each card...\r
+        xpos = i*width;\r
+        MoveToEx(__hdcCardBitmaps, xpos+2, 0, 0);\r
+        LineTo(__hdcCardBitmaps, xpos+width - 3, 0);\r
+        LineTo(__hdcCardBitmaps, xpos+width - 1, 2);\r
+        LineTo(__hdcCardBitmaps, xpos+width - 1, height - 3);    //vertical\r
+        LineTo(__hdcCardBitmaps, xpos+width - 3, height - 1);\r
+        LineTo(__hdcCardBitmaps, xpos+2, height - 1);\r
+        LineTo(__hdcCardBitmaps, xpos+0, height - 3);\r
+        LineTo(__hdcCardBitmaps, xpos+0, 2);\r
+        LineTo(__hdcCardBitmaps, xpos+2, 0);\r
+        \r
+        DeleteObject(hBitmap);\r
+    }\r
+    \r
+    DeleteDC(hdcCard);\r
+\r
+    *pwidth = width;\r
+    *pheight = height;\r
+                \r
 }\r
 \r
 void LoadCardBitmaps(void)\r
 {\r
-       HINSTANCE hCardDll;\r
-       \r
-\r
-       //If Windows NT/2000/XP\r
-       if(GetVersion() < 0x80000000)\r
-       {\r
-               hCardDll = LoadLibrary("cards.dll");\r
-\r
-               if(hCardDll == 0)\r
-               {\r
-                       MessageBox(0, "Error loading cards.dll (32bit)", "Shed", MB_OK | MB_ICONEXCLAMATION);\r
-                       PostQuitMessage(0);\r
-                       return;\r
-               }\r
-               \r
-               LoadCardBitmapsFromLibrary(hCardDll, &__cardwidth, &__cardheight);\r
-               \r
-               FreeLibrary(hCardDll);\r
-       }\r
+    HINSTANCE hCardDll;\r
+    \r
+\r
+    //If Windows NT/2000/XP\r
+    if(GetVersion() < 0x80000000)\r
+    {\r
+        hCardDll = LoadLibrary("cards.dll");\r
+\r
+        if(hCardDll == 0)\r
+        {\r
+            MessageBox(0, "Error loading cards.dll (32bit)", "Shed", MB_OK | MB_ICONEXCLAMATION);\r
+            PostQuitMessage(0);\r
+            return;\r
+        }\r
+        \r
+        LoadCardBitmapsFromLibrary(hCardDll, &__cardwidth, &__cardheight);\r
+        \r
+        FreeLibrary(hCardDll);\r
+    }\r
 #ifndef __REACTOS__\r
-       //Else, Win9X\r
-       else\r
-       {\r
-               hCardDll = LoadLibrary16("cards.dll");\r
-\r
-               if(hCardDll == 0)\r
-               {\r
-                       MessageBox(0, "Error loading cards.dll (16bit)", "Shed", MB_OK | MB_ICONEXCLAMATION);\r
-                       PostQuitMessage(0);\r
-                       return;\r
-               }\r
-\r
-               LoadCardBitmapsFromLibrary(hCardDll, &__cardwidth, &__cardheight);\r
-\r
-               FreeLibrary16(hCardDll);\r
-       }\r
+    //Else, Win9X\r
+    else\r
+    {\r
+        hCardDll = LoadLibrary16("cards.dll");\r
+\r
+        if(hCardDll == 0)\r
+        {\r
+            MessageBox(0, "Error loading cards.dll (16bit)", "Shed", MB_OK | MB_ICONEXCLAMATION);\r
+            PostQuitMessage(0);\r
+            return;\r
+        }\r
+\r
+        LoadCardBitmapsFromLibrary(hCardDll, &__cardwidth, &__cardheight);\r
+\r
+        FreeLibrary16(hCardDll);\r
+    }\r
 #endif\r
 }\r
 \r
 void FreeCardBitmaps()\r
 {\r
-       DeleteObject (__hbmCardBitmaps);\r
-       DeleteDC     (__hdcCardBitmaps);\r
+    DeleteObject (__hbmCardBitmaps);\r
+    DeleteDC     (__hdcCardBitmaps);\r
 }\r
 //\r
-//     Paint a checkered rectangle, with each alternate\r
-//     pixel being assigned a different colour\r
+//    Paint a checkered rectangle, with each alternate\r
+//    pixel being assigned a different colour\r
 //\r
 static void DrawCheckedRect(HDC hdc, RECT *rect, COLORREF fg, COLORREF bg)\r
 {\r
-       static WORD wCheckPat[8] = \r
-       \r
-               0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555 \r
-       };\r
-\r
-       HBITMAP hbmp;\r
-       HBRUSH  hbr, hbrold;\r
-       COLORREF fgold, bgold;\r
-\r
-       hbmp = CreateBitmap(8, 8, 1, 1, wCheckPat);\r
-       hbr  = CreatePatternBrush(hbmp);\r
-\r
-       //UnrealizeObject(hbr);\r
-\r
-       SetBrushOrgEx(hdc, rect->left, rect->top, 0);\r
-\r
-       hbrold = (HBRUSH)SelectObject(hdc, hbr);\r
-\r
-       fgold = SetTextColor(hdc, fg);\r
-       bgold = SetBkColor(hdc, bg);\r
-       \r
-       PatBlt(hdc, rect->left, rect->top, \r
-                               rect->right - rect->left, \r
-                               rect->bottom - rect->top, \r
-                               PATCOPY);\r
-       \r
-       SetBkColor(hdc, bgold);\r
-       SetTextColor(hdc, fgold);\r
-       \r
-       SelectObject(hdc, hbrold);\r
-       DeleteObject(hbr);\r
-       DeleteObject(hbmp);\r
+    static WORD wCheckPat[8] = \r
+    { \r
+        0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555 \r
+    };\r
+\r
+    HBITMAP hbmp;\r
+    HBRUSH  hbr, hbrold;\r
+    COLORREF fgold, bgold;\r
+\r
+    hbmp = CreateBitmap(8, 8, 1, 1, wCheckPat);\r
+    hbr  = CreatePatternBrush(hbmp);\r
+\r
+    //UnrealizeObject(hbr);\r
+\r
+    SetBrushOrgEx(hdc, rect->left, rect->top, 0);\r
+\r
+    hbrold = (HBRUSH)SelectObject(hdc, hbr);\r
+\r
+    fgold = SetTextColor(hdc, fg);\r
+    bgold = SetBkColor(hdc, bg);\r
+    \r
+    PatBlt(hdc, rect->left, rect->top, \r
+                rect->right - rect->left, \r
+                rect->bottom - rect->top, \r
+                PATCOPY);\r
+    \r
+    SetBkColor(hdc, bgold);\r
+    SetTextColor(hdc, fgold);\r
+    \r
+    SelectObject(hdc, hbrold);\r
+    DeleteObject(hbr);\r
+    DeleteObject(hbmp);\r
 }\r
 \r
 void GetSinkCols(COLORREF crBase, COLORREF *fg, COLORREF *bg, COLORREF *sh1, COLORREF *sh2)\r
 {\r
-       if(bg) *bg       = crBase;\r
-       if(fg) *fg   = ColorScaleRGB(crBase, RGB(255,255,255), 0.2);//RGB(49, 99, 140);\r
-       if(sh1) *sh1 = ColorScaleRGB(crBase, RGB(0,0,0), 0.4);\r
-       if(sh2) *sh2 = ColorScaleRGB(crBase, RGB(0,0,0), 0.2);\r
+    if(bg) *bg     = crBase;\r
+    if(fg) *fg   = ColorScaleRGB(crBase, RGB(255,255,255), 0.2);//RGB(49, 99, 140);\r
+    if(sh1) *sh1 = ColorScaleRGB(crBase, RGB(0,0,0), 0.4);\r
+    if(sh2) *sh2 = ColorScaleRGB(crBase, RGB(0,0,0), 0.2);\r
 }\r
 \r
 HBITMAP CreateSinkBmp(HDC hdcCompat, HDC hdc, COLORREF col, int width, int height)\r
 {\r
-       HANDLE hold, hpold;\r
-       HBITMAP hbm = CreateCompatibleBitmap(hdcCompat, width, height);\r
-\r
-       HPEN hpfg, hpbg, hpsh, hpsh2;\r
-\r
-       RECT rect;\r
-       COLORREF fg, bg, shadow, shadow2;\r
-\r
-       GetSinkCols(col, &fg, &bg, &shadow, &shadow2);\r
-\r
-       hold = SelectObject(hdc, hbm);\r
-\r
-       //fill with a solid base colour\r
-       SetRect(&rect, 0,0,width,height);\r
-       PaintRect(hdc, &rect, MAKE_PALETTERGB(bg));\r
-\r
-       //draw the outline\r
-       hpfg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(fg));\r
-       hpbg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(bg));\r
-       hpsh = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow));\r
-       hpsh2= CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow2));        \r
-\r
-       hpold = SelectObject(hdc, hpsh);\r
-       MoveToEx(hdc, 2, 0, NULL);\r
-       LineTo  (hdc, width-3,0);\r
-       LineTo  (hdc, width-1, 2);\r
-       \r
-       SelectObject(hdc, hpold);\r
-       hpold = SelectObject(hdc, hpsh2);\r
-       LineTo  (hdc, width-1, height-3);       //vertical\r
-       LineTo  (hdc, width-3, height-1);\r
-       LineTo  (hdc, 2, height-1);\r
-       LineTo  (hdc, 0, height-3);\r
-       SelectObject(hdc, hpold);\r
-       hpold = SelectObject(hdc, hpsh);\r
-\r
-       //MoveToEx( hdc, 0, height-3,0);\r
-       LineTo  (hdc, 0, 2);\r
-       LineTo  (hdc, 2, 0);\r
-\r
-       SelectObject(hdc, hpold);\r
-\r
-       //draw the highlight (vertical)\r
-       hpold = SelectObject(hdc, hpfg);\r
-       MoveToEx(hdc, width - 2, 3, NULL);\r
-       LineTo  (hdc, width - 2, height - 2);\r
-       \r
-       //(horz)\r
-       MoveToEx(hdc, width - 3, height-2, NULL);\r
-       LineTo  (hdc, 3, height-2);\r
-       SelectObject(hdc, hpold);\r
-       \r
-       //draw the background\r
-       InflateRect(&rect, -2, -2);\r
-       DrawCheckedRect(hdc, &rect, MAKE_PALETTERGB(bg), MAKE_PALETTERGB(fg));\r
-\r
-       //overwrite the top-left background pixel\r
-       SetPixel(hdc, 2, 2, MAKE_PALETTERGB(bg));\r
-\r
-       DeleteObject(hpsh);\r
-       DeleteObject(hpsh2);\r
-       DeleteObject(hpfg);\r
-       DeleteObject(hpbg);\r
-\r
-       \r
-       return hbm;\r
+    HANDLE hold, hpold;\r
+    HBITMAP hbm = CreateCompatibleBitmap(hdcCompat, width, height);\r
+\r
+    HPEN hpfg, hpbg, hpsh, hpsh2;\r
+\r
+    RECT rect;\r
+    COLORREF fg, bg, shadow, shadow2;\r
+\r
+    GetSinkCols(col, &fg, &bg, &shadow, &shadow2);\r
+\r
+    hold = SelectObject(hdc, hbm);\r
+\r
+    //fill with a solid base colour\r
+    SetRect(&rect, 0,0,width,height);\r
+    PaintRect(hdc, &rect, MAKE_PALETTERGB(bg));\r
+\r
+    //draw the outline\r
+    hpfg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(fg));\r
+    hpbg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(bg));\r
+    hpsh = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow));\r
+    hpsh2= CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow2));    \r
+\r
+    hpold = SelectObject(hdc, hpsh);\r
+    MoveToEx(hdc, 2, 0, NULL);\r
+    LineTo  (hdc, width-3,0);\r
+    LineTo  (hdc, width-1, 2);\r
+    \r
+    SelectObject(hdc, hpold);\r
+    hpold = SelectObject(hdc, hpsh2);\r
+    LineTo  (hdc, width-1, height-3);    //vertical\r
+    LineTo  (hdc, width-3, height-1);\r
+    LineTo  (hdc, 2, height-1);\r
+    LineTo  (hdc, 0, height-3);\r
+    SelectObject(hdc, hpold);\r
+    hpold = SelectObject(hdc, hpsh);\r
+\r
+    //MoveToEx( hdc, 0, height-3,0);\r
+    LineTo  (hdc, 0, 2);\r
+    LineTo  (hdc, 2, 0);\r
+\r
+    SelectObject(hdc, hpold);\r
+\r
+    //draw the highlight (vertical)\r
+    hpold = SelectObject(hdc, hpfg);\r
+    MoveToEx(hdc, width - 2, 3, NULL);\r
+    LineTo  (hdc, width - 2, height - 2);\r
+    \r
+    //(horz)\r
+    MoveToEx(hdc, width - 3, height-2, NULL);\r
+    LineTo  (hdc, 3, height-2);\r
+    SelectObject(hdc, hpold);\r
+    \r
+    //draw the background\r
+    InflateRect(&rect, -2, -2);\r
+    DrawCheckedRect(hdc, &rect, MAKE_PALETTERGB(bg), MAKE_PALETTERGB(fg));\r
+\r
+    //overwrite the top-left background pixel\r
+    SetPixel(hdc, 2, 2, MAKE_PALETTERGB(bg));\r
+\r
+    DeleteObject(hpsh);\r
+    DeleteObject(hpsh2);\r
+    DeleteObject(hpfg);\r
+    DeleteObject(hpbg);\r
+\r
+    \r
+    return hbm;\r
 }\r
 \r
 \r
 \r
 void CopyColor(PALETTEENTRY *pe, COLORREF col)\r
 {\r
-       pe->peBlue  = GetBValue(col);\r
-       pe->peGreen = GetGValue(col);\r
-       pe->peRed   = GetRValue(col);\r
-       pe->peFlags = 0;\r
+    pe->peBlue  = GetBValue(col);\r
+    pe->peGreen = GetGValue(col);\r
+    pe->peRed   = GetRValue(col);\r
+    pe->peFlags = 0;\r
 }\r
 \r
 HPALETTE MakePaletteFromCols(COLORREF cols[], int nNumColours)\r
 {\r
-       LOGPALETTE      *lp;\r
-       HPALETTE        hPalette;\r
+    LOGPALETTE    *lp;\r
+    HPALETTE    hPalette;\r
 \r
-       //      Allocate memory for the logical palette\r
-       lp = (LOGPALETTE *)HeapAlloc(\r
-               GetProcessHeap(), 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * nNumColours);\r
+    //    Allocate memory for the logical palette\r
+    lp = (LOGPALETTE *)HeapAlloc(\r
+        GetProcessHeap(), 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * nNumColours);\r
 \r
-       lp->palNumEntries = nNumColours;\r
-       lp->palVersion    = 0x300;\r
+    lp->palNumEntries = nNumColours;\r
+    lp->palVersion    = 0x300;\r
 \r
-       //copy the colours into the logical palette format\r
-       for(int i = 0; i < nNumColours; i++)\r
-       {\r
-               CopyColor(&lp->palPalEntry[i], cols[i]);\r
-       }\r
+    //copy the colours into the logical palette format\r
+    for(int i = 0; i < nNumColours; i++)\r
+    {\r
+        CopyColor(&lp->palPalEntry[i], cols[i]);\r
+    }\r
 \r
-       // create palette!\r
-       hPalette = CreatePalette(lp);\r
+    // create palette!\r
+    hPalette = CreatePalette(lp);\r
 \r
-       HeapFree(GetProcessHeap(), 0, lp);\r
+    HeapFree(GetProcessHeap(), 0, lp);\r
 \r
-       return hPalette;\r
+    return hPalette;\r
 }\r