--- /dev/null
+//\r
+// CardLib - not much of interest in here\r
+//\r
+// Freeware\r
+// Copyright J Brown 2001\r
+//\r
+#include <windows.h>\r
+#include "cardlib.h"\r
+#include "globals.h"\r
+\r
+void LoadCardBitmaps(void);\r
+\r
+static bool __CARDLIB_ACES_HIGH = false;\r
+extern double __CARDZOOMSPEED;\r
+\r
+//\r
+// Global variables!\r
+//\r
+HDC __hdcCardBitmaps;\r
+HBITMAP __hbmCardBitmaps;\r
+\r
+HDC __hdcPlaceHolder;\r
+HBITMAP __hbmPlaceHolder;\r
+HPALETTE __holdplacepal;\r
+\r
+int __cardwidth;\r
+int __cardheight;\r
+\r
+HPALETTE __hPalette;\r
+\r
+\r
+//\r
+// Cardlib global functions!\r
+//\r
+void CardLib_SetZoomSpeed(int speed)\r
+{\r
+ __CARDZOOMSPEED = (double)speed;\r
+}\r
+\r
+/*\r
+\r
+ It's dangerous to use these operators, because of all\r
+ the implicit conversions that could take place, which\r
+ would have unpredicted side-effects.\r
+\r
+ e.g. Card card(Hearts, 4);\r
+ if(card == 4) - how does 4 get converted??\r
+ It uses the Card(int uval) constructor,\r
+ which results in a 2 of clubs...\r
+ not what was expected\r
+*/ \r
+/*\r
+void CardLib_SetAcesHigh(bool fHigh);\r
+bool operator != (const Card &lhs, const Card &rhs);\r
+bool operator == (const Card &lhs, const Card &rhs);\r
+bool operator < (const Card &lhs, const Card &rhs);\r
+bool operator <= (const Card &lhs, const Card &rhs);\r
+bool operator > (const Card &lhs, const Card &rhs);\r
+bool operator >= (const Card &lhs, const Card &rhs);\r
+*/\r
+\r
+/*\r
+void CardLib_SetAcesHigh(bool fHigh)\r
+{\r
+ __CARDLIB_ACES_HIGH = fHigh;\r
+}\r
+\r
+bool operator == (const Card &lhs, const Card &rhs)\r
+{\r
+ if(__CARDLIB_ACES_HIGH)\r
+ return lhs.HiVal() == rhs.HiVal();\r
+ else\r
+ return lhs.LoVal() == rhs.LoVal();\r
+}\r
+\r
+bool operator != (const Card &lhs, const Card &rhs)\r
+{\r
+ if(__CARDLIB_ACES_HIGH)\r
+ return lhs.HiVal() != rhs.HiVal();\r
+ else\r
+ return lhs.LoVal() != rhs.LoVal();\r
+}\r
+\r
+bool operator > (const Card &lhs, const Card &rhs)\r
+{\r
+ if(__CARDLIB_ACES_HIGH)\r
+ return lhs.HiVal() > rhs.HiVal();\r
+ else\r
+ return lhs.LoVal() > rhs.LoVal();\r
+}\r
+\r
+bool operator >= (const Card &lhs, const Card &rhs)\r
+{\r
+ if(__CARDLIB_ACES_HIGH)\r
+ return lhs.HiVal() >= rhs.HiVal();\r
+ else\r
+ return lhs.LoVal() >= rhs.LoVal();\r
+}\r
+\r
+bool operator < (const Card &lhs, const Card &rhs)\r
+{\r
+ if(__CARDLIB_ACES_HIGH)\r
+ return lhs.HiVal() < rhs.HiVal();\r
+ else\r
+ return lhs.LoVal() < rhs.LoVal();\r
+}\r
+\r
+bool operator <= (const Card &lhs, const Card &rhs)\r
+{\r
+ if(__CARDLIB_ACES_HIGH)\r
+ return lhs.HiVal() <= rhs.HiVal();\r
+ else\r
+ return lhs.LoVal() <= rhs.LoVal();\r
+}\r
+*/\r
+\r
+void PaintRect(HDC hdc, RECT *rect, COLORREF colour)\r
+{\r
+ COLORREF oldcr = SetBkColor(hdc, colour);\r
+ ExtTextOut(hdc, 0, 0, ETO_OPAQUE, rect, "", 0, 0);\r
+ SetBkColor(hdc, oldcr);\r
+}\r