This is SpiderDrawDelegate.m in view mode; [Download] [Up]
#import "SpiderDrawDelegate.h"
#import "../Solitaire/CardSet.subproj/cardset.h"
#import "localstrings.h"
@implementation SpiderDrawDelegate
- setGameCardPileViews:(id *)theViews
{
int i;
for (i = 0; i < 10; i++)
{
gameCardPiles[i] = theViews[i];
}
return self;
}
- clickedCard:aCard in:drawCardPileView
{
id drawCardPile = [drawCardPileView cardPile];
id 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)
{
NXRunAlertPanel(LOCALIZED_GAME_NAME, LOCALIZED_FILL_SPACES,
NULL, NULL, NULL);
return self;
}
}
[[drawCardPileView window] disableFlushWindow];
for (i = 0; i < 10; i++)
{
drawCard = [drawCardPile cardAt:CS_TOP];
[drawCardPile removeCard:drawCard];
[drawCard flip];
[[gameCardPiles[i] cardPile]addCard:drawCard];
[drawCardPileView display];
[gameCardPiles[i] display];
}
[[drawCardPileView window] reenableFlushWindow];
[[drawCardPileView window] flushWindow];
}
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.