ftp.nice.ch/Attic/openStep/games/Solitaire.3.1.s.tgz#/Solitaire.3.1/Games/Spider/SpiderDrawDelegate.m

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.