Copyright (C) 1994, Digital Equipment Corp.
Copyright 1990 David Lemke and Network Computing Devices
Copyright (c) 1989, Donald R. Woods and Sun Microsystems, Inc.
MODULE CardRank;
IMPORT Pixmap, PixmapFromXData;
FROM Card IMPORT Rank;
VAR
mu := NEW(MUTEX);
inited := FALSE;
pix: ARRAY Rank OF Pixmap.T;
xip: ARRAY Rank OF Pixmap.T;
TYPE RankData = ARRAY Rank OF PixmapFromXData.T;
CONST
Data = RankData{Ace, Deuce, Trey, Four, Five, Six, Seven,
Eight, Nine, Ten, Jack, Queen, King};
PROCEDURE Pix(r: Rank): Pixmap.T =
BEGIN
LOCK mu DO
IF NOT inited THEN Init() END;
RETURN pix[r]
END
END Pix;
PROCEDURE Xip(r: Rank): Pixmap.T =
BEGIN
LOCK mu DO
IF NOT inited THEN Init() END;
RETURN xip[r]
END
END Xip;
PROCEDURE Init() =
BEGIN
FOR r := FIRST(Rank) TO LAST(Rank) DO
pix[r] := PixmapFromXData.P(Data[r]);
xip[r] := PixmapFromXData.Flip(Data[r])
END;
inited := TRUE
END Init;
CONST Ace = PixmapFromXData.T{9, 14,
"38 00 38 00 38 00 6c 00 6c 00 6c 00 " &
"6c 00 c6 00 fe 00 fe 00 c6 00 83 01 " &
"83 01 83 01 "};
CONST Deuce = PixmapFromXData.T{9, 14,
"7c 00 fe 00 c7 01 83 01 80 01 c0 01 " &
"e0 00 70 00 38 00 1c 00 0e 00 87 01 " &
"ff 01 ff 01 "};
CONST Trey = PixmapFromXData.T{9, 14,
"ff 01 ff 01 c3 01 e0 00 70 00 78 00 " &
"fc 00 c8 01 80 01 80 01 82 01 c7 01 " &
"fe 00 7c 00 "};
CONST Four = PixmapFromXData.T{9, 14,
"e0 00 f0 00 f0 00 d8 00 d8 00 cc 00 " &
"cc 00 c6 00 c6 00 ff 01 ff 01 c0 00 " &
"e0 01 e0 01 "};
CONST Five = PixmapFromXData.T{9, 14,
"ff 00 ff 00 03 00 03 00 7b 00 ff 00 " &
"c7 01 82 01 80 01 80 01 82 01 c7 01 " &
"fe 00 7c 00 "};
CONST Six = PixmapFromXData.T{9, 14,
"7c 00 fe 00 c7 01 83 00 03 00 7b 00 " &
"ff 00 c7 01 83 01 83 01 83 01 c7 01 " &
"fe 00 7c 00 "};
CONST Seven = PixmapFromXData.T{9, 14,
"ff 01 ff 01 83 01 c0 00 c0 00 60 00 " &
"60 00 30 00 30 00 30 00 18 00 18 00 " &
"18 00 18 00 "};
CONST Eight = PixmapFromXData.T{9, 14,
"7c 00 fe 00 c7 01 83 01 c7 01 fe 00 " &
"7c 00 fe 00 c7 01 83 01 83 01 c7 01 " &
"fe 00 7c 00 "};
CONST Nine = PixmapFromXData.T{9, 14,
"7c 00 fe 00 c7 01 83 01 83 01 83 01 " &
"c7 01 fe 01 bc 01 80 01 82 01 c7 01 " &
"fe 00 7c 00 "};
CONST Ten = PixmapFromXData.T{9, 14,
"f3 00 fb 01 9b 01 9b 01 9b 01 9b 01 " &
"9b 01 9b 01 9b 01 9b 01 9b 01 9b 01 " &
"fb 01 f3 00 "};
CONST Jack = PixmapFromXData.T{9, 14,
"e0 01 e0 01 c0 00 c0 00 c0 00 c0 00 " &
"c0 00 c0 00 c0 00 c3 00 c3 00 e7 00 " &
"7e 00 3c 00 "};
CONST Queen = PixmapFromXData.T{9, 14,
"38 00 7c 00 ee 00 c6 00 c6 00 c6 00 " &
"c6 00 c6 00 df 00 ff 00 f6 00 ee 00 " &
"fc 01 b8 00 "};
CONST King = PixmapFromXData.T{9, 14,
"ef 01 ef 01 e6 00 76 00 3e 00 1e 00 " &
"1e 00 3e 00 36 00 76 00 66 00 e6 00 " &
"ef 01 ef 01 "};
BEGIN END CardRank.