Fixed: Bits with odd heights or widths could be blurry when placed on a Grid (thanks to David Hoyos for the fix!)
9 /* Begin PBXBuildFile section */
10 27224FA00CC29B1A00814095 /* Grid.m in Sources */ = {isa = PBXBuildFile; fileRef = 27224F9F0CC29B1A00814095 /* Grid.m */; };
11 2722526F0CC2E86600814095 /* QuartzUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 2722526E0CC2E86600814095 /* QuartzUtils.m */; };
12 2727556A0CC3234F009C4C6C /* Dispenser.m in Sources */ = {isa = PBXBuildFile; fileRef = 272755690CC3234F009C4C6C /* Dispenser.m */; };
13 27275A550CC6713E009C4C6C /* HexGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = 27275A540CC6713E009C4C6C /* HexGrid.m */; };
14 27275C4B0CC700F2009C4C6C /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = 27275C4A0CC700F2009C4C6C /* Game.m */; };
15 27275C920CC7C578009C4C6C /* TicTacToeGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 27275C910CC7C578009C4C6C /* TicTacToeGame.m */; };
16 272C90AB0CCACBA4009EE530 /* DiscPiece.m in Sources */ = {isa = PBXBuildFile; fileRef = 272C90AA0CCACBA4009EE530 /* DiscPiece.m */; };
17 2731E0280CD430B800E6E4C8 /* Deck.m in Sources */ = {isa = PBXBuildFile; fileRef = 2731E0270CD430B800E6E4C8 /* Deck.m */; };
18 2731E2A80CD5630600E6E4C8 /* BitHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2731E2A70CD5630600E6E4C8 /* BitHolder.m */; };
19 2734B2620CC7F25A0070C008 /* HexchequerGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 2734B2610CC7F25A0070C008 /* HexchequerGame.m */; };
20 2734B4F00CCA5BDB0070C008 /* CheckersGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 2734B4EF0CCA5BDB0070C008 /* CheckersGame.m */; };
21 274124060CFCCF9D00842A9B /* DemoBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 274124050CFCCF9D00842A9B /* DemoBoardView.m */; };
22 274B35B80E22D55E0052BAB4 /* Player.m in Sources */ = {isa = PBXBuildFile; fileRef = 274B35B50E22D55E0052BAB4 /* Player.m */; };
23 274B35B90E22D55E0052BAB4 /* Turn.m in Sources */ = {isa = PBXBuildFile; fileRef = 274B35B70E22D55E0052BAB4 /* Turn.m */; };
24 275167D90DEE2AB000247375 /* Blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 275167D40DEE2AB000247375 /* Blue.png */; };
25 275167DA0DEE2AB000247375 /* Gold.png in Resources */ = {isa = PBXBuildFile; fileRef = 275167D50DEE2AB000247375 /* Gold.png */; };
26 275167DB0DEE2AB000247375 /* Green.png in Resources */ = {isa = PBXBuildFile; fileRef = 275167D60DEE2AB000247375 /* Green.png */; };
27 275167DC0DEE2AB000247375 /* Red.png in Resources */ = {isa = PBXBuildFile; fileRef = 275167D70DEE2AB000247375 /* Red.png */; };
28 275167DD0DEE2AB000247375 /* Violet.png in Resources */ = {isa = PBXBuildFile; fileRef = 275167D80DEE2AB000247375 /* Violet.png */; };
29 27534A2B0E2C6281006C24A6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27534A2A0E2C6281006C24A6 /* AudioToolbox.framework */; };
30 276DFC410D00867000D329AE /* Green Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC400D00867000D329AE /* Green Ball.png */; };
31 276DFC560D00890C00D329AE /* Red Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC530D00890C00D329AE /* Red Ball.png */; };
32 276DFC570D00890C00D329AE /* Yellow Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC540D00890C00D329AE /* Yellow Ball.png */; };
33 276DFC580D00890C00D329AE /* White Ball.png in Resources */ = {isa = PBXBuildFile; fileRef = 276DFC550D00890C00D329AE /* White Ball.png */; };
34 2795C2B80CC278C800D7B2BD /* Piece.m in Sources */ = {isa = PBXBuildFile; fileRef = 2795C2B70CC278C800D7B2BD /* Piece.m */; };
35 2796EA270F194FF7003B8806 /* ball-black.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA1F0F194FF7003B8806 /* ball-black.png */; };
36 2796EA280F194FF7003B8806 /* ball-cyan.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA200F194FF7003B8806 /* ball-cyan.png */; };
37 2796EA290F194FF7003B8806 /* ball-gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA210F194FF7003B8806 /* ball-gray.png */; };
38 2796EA2A0F194FF7003B8806 /* ball-green.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA220F194FF7003B8806 /* ball-green.png */; };
39 2796EA2B0F194FF7003B8806 /* ball-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA230F194FF7003B8806 /* ball-orange.png */; };
40 2796EA2C0F194FF7003B8806 /* ball-purple.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA240F194FF7003B8806 /* ball-purple.png */; };
41 2796EA2D0F194FF7003B8806 /* ball-red.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA250F194FF7003B8806 /* ball-red.png */; };
42 2796EA2E0F194FF7003B8806 /* ball-white.png in Resources */ = {isa = PBXBuildFile; fileRef = 2796EA260F194FF7003B8806 /* ball-white.png */; };
43 279F4D870D8606C200B32DBF /* GGBLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 279F4D840D8606C200B32DBF /* GGBLayer.m */; };
44 279F4D880D8606C200B32DBF /* GGBTextLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 279F4D860D8606C200B32DBF /* GGBTextLayer.m */; };
45 279F4DB20D8607AD00B32DBF /* O.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 279F4DB00D8607AD00B32DBF /* O.tiff */; };
46 279F4DB30D8607AD00B32DBF /* X.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 279F4DB10D8607AD00B32DBF /* X.tiff */; };
47 279F4DE20D8609C200B32DBF /* Background.png in Resources */ = {isa = PBXBuildFile; fileRef = 279F4DE10D8609C200B32DBF /* Background.png */; };
48 27B7543E0D08884F000516B9 /* Wood.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 27B7543D0D08884F000516B9 /* Wood.jpg */; };
49 27C999C30D81185E005AFD4F /* GGBUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 27C999C20D81185E005AFD4F /* GGBUtils.m */; };
50 27CCA8050CB8A3F9001CFE24 /* BoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCA8040CB8A3F9001CFE24 /* BoardView.m */; };
51 27CCA95F0CB8A74D001CFE24 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27CCA95E0CB8A74D001CFE24 /* Quartz.framework */; };
52 27CCAABD0CB92A9F001CFE24 /* Card.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCAABC0CB92A9F001CFE24 /* Card.m */; };
53 27CCABBF0CB9496B001CFE24 /* Bit.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCABBE0CB9496B001CFE24 /* Bit.m */; };
54 27CCAC750CB95C2B001CFE24 /* PlayingCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 27CCAC740CB95C2B001CFE24 /* PlayingCard.m */; };
55 27D4F1260CCF011200923605 /* Stack.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D4F1250CCF011200923605 /* Stack.m */; };
56 27DFC4410CCD01B7005E34CE /* GoGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 27DFC4400CCD01B7005E34CE /* GoGame.m */; };
57 27F230B90CD1A61B006939C1 /* KlondikeGame.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F230B80CD1A61B006939C1 /* KlondikeGame.m */; };
58 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
59 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
60 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
61 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
62 /* End PBXBuildFile section */
64 /* Begin PBXFileReference section */
65 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
66 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
67 27224F9E0CC29B1A00814095 /* Grid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Grid.h; sourceTree = "<group>"; };
68 27224F9F0CC29B1A00814095 /* Grid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Grid.m; sourceTree = "<group>"; };
69 2722526D0CC2E86600814095 /* QuartzUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuartzUtils.h; sourceTree = "<group>"; };
70 2722526E0CC2E86600814095 /* QuartzUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuartzUtils.m; sourceTree = "<group>"; };
71 272755680CC3234F009C4C6C /* Dispenser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Dispenser.h; sourceTree = "<group>"; };
72 272755690CC3234F009C4C6C /* Dispenser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Dispenser.m; sourceTree = "<group>"; };
73 27275A530CC6713E009C4C6C /* HexGrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexGrid.h; sourceTree = "<group>"; };
74 27275A540CC6713E009C4C6C /* HexGrid.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HexGrid.m; sourceTree = "<group>"; };
75 27275C490CC700F2009C4C6C /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = "<group>"; };
76 27275C4A0CC700F2009C4C6C /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Game.m; sourceTree = "<group>"; };
77 27275C900CC7C578009C4C6C /* TicTacToeGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TicTacToeGame.h; sourceTree = "<group>"; };
78 27275C910CC7C578009C4C6C /* TicTacToeGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TicTacToeGame.m; sourceTree = "<group>"; };
79 272C90A90CCACBA4009EE530 /* DiscPiece.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiscPiece.h; sourceTree = "<group>"; };
80 272C90AA0CCACBA4009EE530 /* DiscPiece.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiscPiece.m; sourceTree = "<group>"; };
81 2731E0260CD430B800E6E4C8 /* Deck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Deck.h; sourceTree = "<group>"; };
82 2731E0270CD430B800E6E4C8 /* Deck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Deck.m; sourceTree = "<group>"; };
83 2731E2A60CD5630600E6E4C8 /* BitHolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitHolder.h; sourceTree = "<group>"; };
84 2731E2A70CD5630600E6E4C8 /* BitHolder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BitHolder.m; sourceTree = "<group>"; };
85 2734B2600CC7F25A0070C008 /* HexchequerGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexchequerGame.h; sourceTree = "<group>"; };
86 2734B2610CC7F25A0070C008 /* HexchequerGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HexchequerGame.m; sourceTree = "<group>"; };
87 2734B4EE0CCA5BDB0070C008 /* CheckersGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CheckersGame.h; sourceTree = "<group>"; };
88 2734B4EF0CCA5BDB0070C008 /* CheckersGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CheckersGame.m; sourceTree = "<group>"; };
89 274124040CFCCF9D00842A9B /* DemoBoardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoBoardView.h; sourceTree = "<group>"; };
90 274124050CFCCF9D00842A9B /* DemoBoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoBoardView.m; sourceTree = "<group>"; };
91 274B35B30E22D55E0052BAB4 /* Game+Protected.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Game+Protected.h"; sourceTree = "<group>"; };
92 274B35B40E22D55E0052BAB4 /* Player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Player.h; sourceTree = "<group>"; };
93 274B35B50E22D55E0052BAB4 /* Player.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Player.m; sourceTree = "<group>"; };
94 274B35B60E22D55E0052BAB4 /* Turn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Turn.h; sourceTree = "<group>"; };
95 274B35B70E22D55E0052BAB4 /* Turn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Turn.m; sourceTree = "<group>"; };
96 275167D40DEE2AB000247375 /* Blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Blue.png; sourceTree = "<group>"; };
97 275167D50DEE2AB000247375 /* Gold.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Gold.png; sourceTree = "<group>"; };
98 275167D60DEE2AB000247375 /* Green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Green.png; sourceTree = "<group>"; };
99 275167D70DEE2AB000247375 /* Red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Red.png; sourceTree = "<group>"; };
100 275167D80DEE2AB000247375 /* Violet.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Violet.png; sourceTree = "<group>"; };
101 27534A2A0E2C6281006C24A6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
102 276DFC400D00867000D329AE /* Green Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Green Ball.png"; path = "Resources/Green Ball.png"; sourceTree = "<group>"; };
103 276DFC530D00890C00D329AE /* Red Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Red Ball.png"; path = "Resources/Red Ball.png"; sourceTree = "<group>"; };
104 276DFC540D00890C00D329AE /* Yellow Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Yellow Ball.png"; path = "Resources/Yellow Ball.png"; sourceTree = "<group>"; };
105 276DFC550D00890C00D329AE /* White Ball.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "White Ball.png"; path = "Resources/White Ball.png"; sourceTree = "<group>"; };
106 2795C2B60CC278C800D7B2BD /* Piece.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Piece.h; sourceTree = "<group>"; };
107 2795C2B70CC278C800D7B2BD /* Piece.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Piece.m; sourceTree = "<group>"; };
108 2796EA1F0F194FF7003B8806 /* ball-black.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-black.png"; sourceTree = "<group>"; };
109 2796EA200F194FF7003B8806 /* ball-cyan.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-cyan.png"; sourceTree = "<group>"; };
110 2796EA210F194FF7003B8806 /* ball-gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-gray.png"; sourceTree = "<group>"; };
111 2796EA220F194FF7003B8806 /* ball-green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-green.png"; sourceTree = "<group>"; };
112 2796EA230F194FF7003B8806 /* ball-orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-orange.png"; sourceTree = "<group>"; };
113 2796EA240F194FF7003B8806 /* ball-purple.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-purple.png"; sourceTree = "<group>"; };
114 2796EA250F194FF7003B8806 /* ball-red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-red.png"; sourceTree = "<group>"; };
115 2796EA260F194FF7003B8806 /* ball-white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ball-white.png"; sourceTree = "<group>"; };
116 279F4D830D8606C200B32DBF /* GGBLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GGBLayer.h; sourceTree = "<group>"; };
117 279F4D840D8606C200B32DBF /* GGBLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GGBLayer.m; sourceTree = "<group>"; };
118 279F4D850D8606C200B32DBF /* GGBTextLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GGBTextLayer.h; sourceTree = "<group>"; };
119 279F4D860D8606C200B32DBF /* GGBTextLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GGBTextLayer.m; sourceTree = "<group>"; };
120 279F4DB00D8607AD00B32DBF /* O.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = O.tiff; path = Resources/O.tiff; sourceTree = "<group>"; };
121 279F4DB10D8607AD00B32DBF /* X.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = X.tiff; path = Resources/X.tiff; sourceTree = "<group>"; };
122 279F4DE10D8609C200B32DBF /* Background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Background.png; path = Resources/Background.png; sourceTree = "<group>"; };
123 27B7543D0D08884F000516B9 /* Wood.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = Wood.jpg; path = Resources/Wood.jpg; sourceTree = "<group>"; };
124 27C999C10D81185E005AFD4F /* GGBUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GGBUtils.h; sourceTree = "<group>"; };
125 27C999C20D81185E005AFD4F /* GGBUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GGBUtils.m; sourceTree = "<group>"; };
126 27C99AB40D820500005AFD4F /* BoardUIView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BoardUIView.h; sourceTree = "<group>"; };
127 27C99AB50D820500005AFD4F /* BoardUIView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BoardUIView.m; sourceTree = "<group>"; };
128 27CCA8030CB8A3F9001CFE24 /* BoardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BoardView.h; sourceTree = "<group>"; };
129 27CCA8040CB8A3F9001CFE24 /* BoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BoardView.m; sourceTree = "<group>"; };
130 27CCA95E0CB8A74D001CFE24 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = "<absolute>"; };
131 27CCAABB0CB92A9F001CFE24 /* Card.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Card.h; sourceTree = "<group>"; };
132 27CCAABC0CB92A9F001CFE24 /* Card.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Card.m; sourceTree = "<group>"; };
133 27CCABBD0CB9496B001CFE24 /* Bit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bit.h; sourceTree = "<group>"; };
134 27CCABBE0CB9496B001CFE24 /* Bit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Bit.m; sourceTree = "<group>"; };
135 27CCAC730CB95C2B001CFE24 /* PlayingCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayingCard.h; sourceTree = "<group>"; };
136 27CCAC740CB95C2B001CFE24 /* PlayingCard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlayingCard.m; sourceTree = "<group>"; };
137 27D4F1240CCF011200923605 /* Stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Stack.h; sourceTree = "<group>"; };
138 27D4F1250CCF011200923605 /* Stack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Stack.m; sourceTree = "<group>"; };
139 27DFC43F0CCD01B7005E34CE /* GoGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GoGame.h; sourceTree = "<group>"; };
140 27DFC4400CCD01B7005E34CE /* GoGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GoGame.m; sourceTree = "<group>"; };
141 27F230B70CD1A61B006939C1 /* KlondikeGame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KlondikeGame.h; sourceTree = "<group>"; };
142 27F230B80CD1A61B006939C1 /* KlondikeGame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KlondikeGame.m; sourceTree = "<group>"; };
143 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
144 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
145 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
146 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
147 32CA4F630368D1EE00C91783 /* GeekGameBoard_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeekGameBoard_Prefix.pch; sourceTree = "<group>"; };
148 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Resources/Info.plist; sourceTree = "<group>"; };
149 8D1107320486CEB800E47090 /* GeekGameBoard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GeekGameBoard.app; sourceTree = BUILT_PRODUCTS_DIR; };
150 /* End PBXFileReference section */
152 /* Begin PBXFrameworksBuildPhase section */
153 8D11072E0486CEB800E47090 /* Frameworks */ = {
154 isa = PBXFrameworksBuildPhase;
155 buildActionMask = 2147483647;
157 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
158 27CCA95F0CB8A74D001CFE24 /* Quartz.framework in Frameworks */,
159 27534A2B0E2C6281006C24A6 /* AudioToolbox.framework in Frameworks */,
161 runOnlyForDeploymentPostprocessing = 0;
163 /* End PBXFrameworksBuildPhase section */
165 /* Begin PBXGroup section */
166 080E96DDFE201D6D7F000001 /* Source */ = {
169 27CCA8030CB8A3F9001CFE24 /* BoardView.h */,
170 27CCA8040CB8A3F9001CFE24 /* BoardView.m */,
171 27C99AB40D820500005AFD4F /* BoardUIView.h */,
172 27C99AB50D820500005AFD4F /* BoardUIView.m */,
173 27CCABBD0CB9496B001CFE24 /* Bit.h */,
174 27CCABBE0CB9496B001CFE24 /* Bit.m */,
175 2731E2A60CD5630600E6E4C8 /* BitHolder.h */,
176 2731E2A70CD5630600E6E4C8 /* BitHolder.m */,
177 27D4F1240CCF011200923605 /* Stack.h */,
178 27D4F1250CCF011200923605 /* Stack.m */,
179 27275C440CC70095009C4C6C /* Cards */,
180 27275C450CC700C4009C4C6C /* Boards and Pieces */,
181 27275C480CC700D8009C4C6C /* Games */,
182 279F4D830D8606C200B32DBF /* GGBLayer.h */,
183 279F4D840D8606C200B32DBF /* GGBLayer.m */,
184 279F4D850D8606C200B32DBF /* GGBTextLayer.h */,
185 279F4D860D8606C200B32DBF /* GGBTextLayer.m */,
186 2722526D0CC2E86600814095 /* QuartzUtils.h */,
187 2722526E0CC2E86600814095 /* QuartzUtils.m */,
188 27C999C10D81185E005AFD4F /* GGBUtils.h */,
189 27C999C20D81185E005AFD4F /* GGBUtils.m */,
192 sourceTree = "<group>";
194 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
197 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
199 name = "Linked Frameworks";
200 sourceTree = "<group>";
202 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
205 27534A2A0E2C6281006C24A6 /* AudioToolbox.framework */,
206 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
207 27CCA95E0CB8A74D001CFE24 /* Quartz.framework */,
208 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
210 name = "Other Frameworks";
211 sourceTree = "<group>";
213 19C28FACFE9D520D11CA2CBB /* Products */ = {
216 8D1107320486CEB800E47090 /* GeekGameBoard.app */,
219 sourceTree = "<group>";
221 27275C440CC70095009C4C6C /* Cards */ = {
224 27CCAABB0CB92A9F001CFE24 /* Card.h */,
225 27CCAABC0CB92A9F001CFE24 /* Card.m */,
226 2731E0260CD430B800E6E4C8 /* Deck.h */,
227 2731E0270CD430B800E6E4C8 /* Deck.m */,
228 27CCAC730CB95C2B001CFE24 /* PlayingCard.h */,
229 27CCAC740CB95C2B001CFE24 /* PlayingCard.m */,
232 sourceTree = "<group>";
234 27275C450CC700C4009C4C6C /* Boards and Pieces */ = {
237 2795C2B60CC278C800D7B2BD /* Piece.h */,
238 2795C2B70CC278C800D7B2BD /* Piece.m */,
239 272C90A90CCACBA4009EE530 /* DiscPiece.h */,
240 272C90AA0CCACBA4009EE530 /* DiscPiece.m */,
241 27224F9E0CC29B1A00814095 /* Grid.h */,
242 27224F9F0CC29B1A00814095 /* Grid.m */,
243 27275A530CC6713E009C4C6C /* HexGrid.h */,
244 27275A540CC6713E009C4C6C /* HexGrid.m */,
245 272755680CC3234F009C4C6C /* Dispenser.h */,
246 272755690CC3234F009C4C6C /* Dispenser.m */,
248 name = "Boards and Pieces";
249 sourceTree = "<group>";
251 27275C480CC700D8009C4C6C /* Games */ = {
254 27275C490CC700F2009C4C6C /* Game.h */,
255 27275C4A0CC700F2009C4C6C /* Game.m */,
256 274B35B30E22D55E0052BAB4 /* Game+Protected.h */,
257 274B35B40E22D55E0052BAB4 /* Player.h */,
258 274B35B50E22D55E0052BAB4 /* Player.m */,
259 274B35B60E22D55E0052BAB4 /* Turn.h */,
260 274B35B70E22D55E0052BAB4 /* Turn.m */,
261 27275C900CC7C578009C4C6C /* TicTacToeGame.h */,
262 27275C910CC7C578009C4C6C /* TicTacToeGame.m */,
263 2734B4EE0CCA5BDB0070C008 /* CheckersGame.h */,
264 2734B4EF0CCA5BDB0070C008 /* CheckersGame.m */,
265 2734B2600CC7F25A0070C008 /* HexchequerGame.h */,
266 2734B2610CC7F25A0070C008 /* HexchequerGame.m */,
267 27DFC43F0CCD01B7005E34CE /* GoGame.h */,
268 27DFC4400CCD01B7005E34CE /* GoGame.m */,
269 27F230B70CD1A61B006939C1 /* KlondikeGame.h */,
270 27F230B80CD1A61B006939C1 /* KlondikeGame.m */,
273 sourceTree = "<group>";
275 275167D30DEE2AB000247375 /* Gingko */ = {
278 275167D40DEE2AB000247375 /* Blue.png */,
279 275167D50DEE2AB000247375 /* Gold.png */,
280 275167D60DEE2AB000247375 /* Green.png */,
281 275167D70DEE2AB000247375 /* Red.png */,
282 275167D80DEE2AB000247375 /* Violet.png */,
285 path = Resources/Gingko;
286 sourceTree = "<group>";
288 2796EA1E0F194FF7003B8806 /* Balls */ = {
291 2796EA1F0F194FF7003B8806 /* ball-black.png */,
292 2796EA200F194FF7003B8806 /* ball-cyan.png */,
293 2796EA210F194FF7003B8806 /* ball-gray.png */,
294 2796EA220F194FF7003B8806 /* ball-green.png */,
295 2796EA230F194FF7003B8806 /* ball-orange.png */,
296 2796EA240F194FF7003B8806 /* ball-purple.png */,
297 2796EA250F194FF7003B8806 /* ball-red.png */,
298 2796EA260F194FF7003B8806 /* ball-white.png */,
301 path = Resources/Balls;
302 sourceTree = "<group>";
304 29B97314FDCFA39411CA2CEA /* BoardGame */ = {
307 080E96DDFE201D6D7F000001 /* Source */,
308 29B97315FDCFA39411CA2CEA /* Demo Application */,
309 29B97317FDCFA39411CA2CEA /* Resources */,
310 29B97323FDCFA39411CA2CEA /* Frameworks */,
311 19C28FACFE9D520D11CA2CBB /* Products */,
314 sourceTree = "<group>";
316 29B97315FDCFA39411CA2CEA /* Demo Application */ = {
319 274124040CFCCF9D00842A9B /* DemoBoardView.h */,
320 274124050CFCCF9D00842A9B /* DemoBoardView.m */,
321 32CA4F630368D1EE00C91783 /* GeekGameBoard_Prefix.pch */,
322 29B97316FDCFA39411CA2CEA /* main.m */,
324 name = "Demo Application";
326 sourceTree = "<group>";
328 29B97317FDCFA39411CA2CEA /* Resources */ = {
331 2796EA1E0F194FF7003B8806 /* Balls */,
332 275167D30DEE2AB000247375 /* Gingko */,
333 29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
334 8D1107310486CEB800E47090 /* Info.plist */,
335 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
336 279F4DE10D8609C200B32DBF /* Background.png */,
337 276DFC400D00867000D329AE /* Green Ball.png */,
338 276DFC530D00890C00D329AE /* Red Ball.png */,
339 276DFC540D00890C00D329AE /* Yellow Ball.png */,
340 276DFC550D00890C00D329AE /* White Ball.png */,
341 27B7543D0D08884F000516B9 /* Wood.jpg */,
342 279F4DB00D8607AD00B32DBF /* O.tiff */,
343 279F4DB10D8607AD00B32DBF /* X.tiff */,
346 sourceTree = "<group>";
348 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
351 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
352 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
355 sourceTree = "<group>";
357 /* End PBXGroup section */
359 /* Begin PBXNativeTarget section */
360 8D1107260486CEB800E47090 /* BoardGame */ = {
361 isa = PBXNativeTarget;
362 buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "BoardGame" */;
364 8D1107290486CEB800E47090 /* Resources */,
365 8D11072C0486CEB800E47090 /* Sources */,
366 8D11072E0486CEB800E47090 /* Frameworks */,
373 productInstallPath = "$(HOME)/Applications";
374 productName = BoardGame;
375 productReference = 8D1107320486CEB800E47090 /* GeekGameBoard.app */;
376 productType = "com.apple.product-type.application";
378 /* End PBXNativeTarget section */
380 /* Begin PBXProject section */
381 29B97313FDCFA39411CA2CEA /* Project object */ = {
383 buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GeekGameBoard" */;
384 compatibilityVersion = "Xcode 3.0";
385 hasScannedForEncodings = 1;
386 mainGroup = 29B97314FDCFA39411CA2CEA /* BoardGame */;
390 8D1107260486CEB800E47090 /* BoardGame */,
393 /* End PBXProject section */
395 /* Begin PBXResourcesBuildPhase section */
396 8D1107290486CEB800E47090 /* Resources */ = {
397 isa = PBXResourcesBuildPhase;
398 buildActionMask = 2147483647;
400 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
401 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
402 276DFC410D00867000D329AE /* Green Ball.png in Resources */,
403 276DFC560D00890C00D329AE /* Red Ball.png in Resources */,
404 276DFC570D00890C00D329AE /* Yellow Ball.png in Resources */,
405 276DFC580D00890C00D329AE /* White Ball.png in Resources */,
406 27B7543E0D08884F000516B9 /* Wood.jpg in Resources */,
407 279F4DB20D8607AD00B32DBF /* O.tiff in Resources */,
408 279F4DB30D8607AD00B32DBF /* X.tiff in Resources */,
409 279F4DE20D8609C200B32DBF /* Background.png in Resources */,
410 275167D90DEE2AB000247375 /* Blue.png in Resources */,
411 275167DA0DEE2AB000247375 /* Gold.png in Resources */,
412 275167DB0DEE2AB000247375 /* Green.png in Resources */,
413 275167DC0DEE2AB000247375 /* Red.png in Resources */,
414 275167DD0DEE2AB000247375 /* Violet.png in Resources */,
415 2796EA270F194FF7003B8806 /* ball-black.png in Resources */,
416 2796EA280F194FF7003B8806 /* ball-cyan.png in Resources */,
417 2796EA290F194FF7003B8806 /* ball-gray.png in Resources */,
418 2796EA2A0F194FF7003B8806 /* ball-green.png in Resources */,
419 2796EA2B0F194FF7003B8806 /* ball-orange.png in Resources */,
420 2796EA2C0F194FF7003B8806 /* ball-purple.png in Resources */,
421 2796EA2D0F194FF7003B8806 /* ball-red.png in Resources */,
422 2796EA2E0F194FF7003B8806 /* ball-white.png in Resources */,
424 runOnlyForDeploymentPostprocessing = 0;
426 /* End PBXResourcesBuildPhase section */
428 /* Begin PBXSourcesBuildPhase section */
429 8D11072C0486CEB800E47090 /* Sources */ = {
430 isa = PBXSourcesBuildPhase;
431 buildActionMask = 2147483647;
433 8D11072D0486CEB800E47090 /* main.m in Sources */,
434 27CCA8050CB8A3F9001CFE24 /* BoardView.m in Sources */,
435 27CCAABD0CB92A9F001CFE24 /* Card.m in Sources */,
436 27CCABBF0CB9496B001CFE24 /* Bit.m in Sources */,
437 27CCAC750CB95C2B001CFE24 /* PlayingCard.m in Sources */,
438 2795C2B80CC278C800D7B2BD /* Piece.m in Sources */,
439 27224FA00CC29B1A00814095 /* Grid.m in Sources */,
440 2722526F0CC2E86600814095 /* QuartzUtils.m in Sources */,
441 2727556A0CC3234F009C4C6C /* Dispenser.m in Sources */,
442 27275A550CC6713E009C4C6C /* HexGrid.m in Sources */,
443 27275C4B0CC700F2009C4C6C /* Game.m in Sources */,
444 27275C920CC7C578009C4C6C /* TicTacToeGame.m in Sources */,
445 2734B2620CC7F25A0070C008 /* HexchequerGame.m in Sources */,
446 2734B4F00CCA5BDB0070C008 /* CheckersGame.m in Sources */,
447 272C90AB0CCACBA4009EE530 /* DiscPiece.m in Sources */,
448 27DFC4410CCD01B7005E34CE /* GoGame.m in Sources */,
449 27D4F1260CCF011200923605 /* Stack.m in Sources */,
450 27F230B90CD1A61B006939C1 /* KlondikeGame.m in Sources */,
451 2731E0280CD430B800E6E4C8 /* Deck.m in Sources */,
452 2731E2A80CD5630600E6E4C8 /* BitHolder.m in Sources */,
453 274124060CFCCF9D00842A9B /* DemoBoardView.m in Sources */,
454 27C999C30D81185E005AFD4F /* GGBUtils.m in Sources */,
455 279F4D870D8606C200B32DBF /* GGBLayer.m in Sources */,
456 279F4D880D8606C200B32DBF /* GGBTextLayer.m in Sources */,
457 274B35B80E22D55E0052BAB4 /* Player.m in Sources */,
458 274B35B90E22D55E0052BAB4 /* Turn.m in Sources */,
460 runOnlyForDeploymentPostprocessing = 0;
462 /* End PBXSourcesBuildPhase section */
464 /* Begin PBXVariantGroup section */
465 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
466 isa = PBXVariantGroup;
468 089C165DFE840E0CC02AAC07 /* English */,
470 name = InfoPlist.strings;
471 sourceTree = "<group>";
473 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
474 isa = PBXVariantGroup;
476 29B97319FDCFA39411CA2CEA /* English */,
479 sourceTree = "<group>";
481 /* End PBXVariantGroup section */
483 /* Begin XCBuildConfiguration section */
484 C01FCF4B08A954540054247B /* Debug */ = {
485 isa = XCBuildConfiguration;
487 COPY_PHASE_STRIP = NO;
488 GCC_DYNAMIC_NO_PIC = NO;
489 GCC_ENABLE_FIX_AND_CONTINUE = YES;
490 GCC_MODEL_TUNING = G5;
491 GCC_OPTIMIZATION_LEVEL = 0;
492 GCC_PRECOMPILE_PREFIX_HEADER = YES;
493 GCC_PREFIX_HEADER = Source/GeekGameBoard_Prefix.pch;
494 INFOPLIST_FILE = Resources/Info.plist;
495 INSTALL_PATH = "$(HOME)/Applications";
496 PRODUCT_NAME = GeekGameBoard;
497 WRAPPER_EXTENSION = app;
502 C01FCF4C08A954540054247B /* Release */ = {
503 isa = XCBuildConfiguration;
511 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
512 GCC_MODEL_TUNING = G5;
513 GCC_PRECOMPILE_PREFIX_HEADER = YES;
514 GCC_PREFIX_HEADER = Source/GeekGameBoard_Prefix.pch;
515 INFOPLIST_FILE = Resources/Info.plist;
516 INSTALL_PATH = "$(HOME)/Applications";
517 PRODUCT_NAME = GeekGameBoard;
518 WRAPPER_EXTENSION = app;
522 C01FCF4F08A954540054247B /* Debug */ = {
523 isa = XCBuildConfiguration;
525 GCC_C_LANGUAGE_STANDARD = gnu99;
526 GCC_ENABLE_OBJC_GC = unsupported;
527 GCC_TREAT_WARNINGS_AS_ERRORS = YES;
529 GCC_WARN_ABOUT_RETURN_TYPE = YES;
530 GCC_WARN_UNUSED_VARIABLE = YES;
532 SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
533 WARNING_CFLAGS = "-Wall";
537 C01FCF5008A954540054247B /* Release */ = {
538 isa = XCBuildConfiguration;
544 GCC_C_LANGUAGE_STANDARD = gnu99;
545 GCC_ENABLE_OBJC_GC = unsupported;
546 GCC_TREAT_WARNINGS_AS_ERRORS = YES;
548 GCC_WARN_ABOUT_RETURN_TYPE = YES;
549 GCC_WARN_UNUSED_VARIABLE = YES;
551 SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
552 WARNING_CFLAGS = "-Wall";
556 /* End XCBuildConfiguration section */
558 /* Begin XCConfigurationList section */
559 C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "BoardGame" */ = {
560 isa = XCConfigurationList;
561 buildConfigurations = (
562 C01FCF4B08A954540054247B /* Debug */,
563 C01FCF4C08A954540054247B /* Release */,
565 defaultConfigurationIsVisible = 0;
566 defaultConfigurationName = Release;
568 C01FCF4E08A954540054247B /* Build configuration list for PBXProject "GeekGameBoard" */ = {
569 isa = XCConfigurationList;
570 buildConfigurations = (
571 C01FCF4F08A954540054247B /* Debug */,
572 C01FCF5008A954540054247B /* Release */,
574 defaultConfigurationIsVisible = 0;
575 defaultConfigurationName = Release;
577 /* End XCConfigurationList section */
579 rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;