This is SpiderDrawDelegate.m in view mode; [Download] [Up]
#import "SpiderDrawDelegate.h"
#import <Solitaire/CardSet.h>
#import "localstrings.h"
@implementation SpiderDrawDelegate
- (void) setGameCardPileViews:(id *)theViews
{
int i;
for (i = 0; i < 10; i++)
{
gameCardPiles[i] = theViews[i];
}
}
- (void)clickedCard:(Card*)aCard in:(CardPileView*)drawCardPileView;
{
CardPile* drawCardPile = [drawCardPileView cardPile];
Card* drawCard;
int i;
int numSpaces;
int numCards;
if (aCard)
{
numSpaces = 0;
for (i = 0; i < 10; i++)
{
if ([[gameCardPiles[i] cardPile] cardCount] == 0) numSpaces++;
}
if (numSpaces > 0)
{
numCards = 0;
for (i = 0; i < 10; i++)
{
numCards += [[gameCardPiles[i] cardPile] cardCount];
}
if (numCards >= 10)
{
NSRunAlertPanel(LOCALIZED_GAME_NAME, LOCALIZED_FILL_SPACES, @"", nil, nil);
return;
}
}
[[drawCardPileView window] disableFlushWindow];
for (i = 0; i < 10; i++)
{
drawCard = [drawCardPile dealTopCard];
[drawCard flip];
[[gameCardPiles[i] cardPile] addCard:drawCard];
[drawCardPileView display];
[gameCardPiles[i] display];
}
[[drawCardPileView window] enableFlushWindow];
[[drawCardPileView window] flushWindow];
}
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.