This is SuitPileDelegate.m in view mode; [Download] [Up]
/* indent:4 tabsize:8 font:fixed-width */ #import "SuitPileDelegate.h" #import "../NEXTVegas/CardSet.subproj/cardset.h" #import "Klondike.h" @implementation SuitPileDelegate - setEnabled:(BOOL)flag { isEnabled = flag; return self; } - setDoubleClickCheck { doubleClickCheck = YES; return self; } - (BOOL)canAcceptPile:aCardPile from:sender in:aCardPileView { id droppingCard = [aCardPile cardAt:CS_BOTTOM]; id targetCard = [[aCardPileView cardPile] cardAt:CS_TOP]; if(!isEnabled) return NO; if ([aCardPile cardCount] > 1) { if (doubleClickCheck) { droppingCard = [aCardPile cardAt:CS_TOP]; doubleClickCheck = NO; } else { return NO; } } doubleClickCheck = NO; if (targetCard) { if (([droppingCard suit] == [targetCard suit]) && ([droppingCard value] == [targetCard value] + 1)) { return YES; } } else { if ([droppingCard value] == CS_ACE) { return YES; } } return NO; } - acceptPile:aCardPile in:aCardPileView { //[PBoss() playSound:NV_CARDSOUND]; [Dealer() checkForWin]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.