This is Card.rtf in view mode; [Download] [Up]
paperh18648 margl-907 margr0 margt0 margb0fi0 ri0 ql sb0 f1 fs24 Copyright f3 'e3f1 1998 All Rights Reserved. i i0 s5 li2116 fi0 ri1007 ql f0 fs56 b Cardb0 {fs16 }s17 li4888 fi-2771 ri1007 ql tx4888 f0 fs28 b Inherits From:b0 f1 fs28 NSObject s17 li4888 fi-2771 ri1007 ql tx4888 f0 fs28 b Declared In:b0 f1 fs28 Card.h s13 li1360 fi0 ri1007 ql fs16 f0 fs36 b Class Descriptionb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Instances of this class provide low-level functionality for card games. Cards can have a suit, a value, and an orientation. These values can be initialized, modified and determined by clients of the class. Cards also know how to render themselves on screen. fs16 fs28 The card images can either be drawn by compositing the partial card images contained in the TIFF files in the CardSet, or the 52 cards in a deck can be pre-drawn and stored in shared NXImage caches (which are private class variables) for reuse. The shared NXImage caches increase performance, but with the penalty of increased memory usage. s13 li1360 fi0 ri1007 ql fs16 f0 fs36 b Instance Variablesb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 CardSuit b suitb0 ; CardValue b valueb0 ; BOOL b faceUpb0 ; s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 suit The card's suit. s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 value The card's value. s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 faceUp YES if the card is face up. s13 li1360 fi0 ri1007 ql fs16 f0 fs36 b Method Typesb0 {fs16 }s11 li6148 fi-4031 ri1007 ql tx6148 f1 fs28 Initializing the class + initialize + drawCardImages + freeCardImages + setCardBackImage: + setCardBack: + stringForCardSuit: + stringForCardValue: + stringForCardColor: Creating and freeing {f3 -} init {f3 -} initSuit:value: {f3 -} initSuit:value:faceUp: {f3 -} copyWithZone: Comparing cards {f3 -} isEqual: {f3 -} isOneLargerThan:wrap: {f3 -} isOneSmallerThan:wrap: Our state {f3 -} suit {f3 -} setSuit: {f3 -} value {f3 -} setValue: {f3 -} setFaceUp: {f3 -} isFaceUp {f3 -} flip {f3 -} cardColor {f3 -} description Drawing {f3 -} drawCardAt: {f3 -} drawContentsAt: {f3 -} drawOutlineAt: Archiving {f3 -} initWithCoder: {f3 -} encodeWithCoder: s13 li1360 fi0 ri1007 ql fs16 f0 fs36 b Class Methodsb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b drawCardImagesb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (void)b drawCardImagesb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Creates shared NSImage caches of all 52 cards in the deck. Uses the instance method b preDrawCards:b0 to do the actual drawing. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b freeCardImagesb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (void)b freeCardImagesb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Frees the shared NSImage caches of all 52 cards. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initializeb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (void)b initializeb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Initializes the class object. The partial card images from CardSet TIFFS are loaded here. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setCardBack:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (void)b setCardBackb0 b :b0 (CardBack)i aBacki0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets the card back used to draw the back of the card. fs16 fs28 {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 b Constant Imageb0 } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_DEFAULT Original image from version 1.0. } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_TRAD Traditional pattern. } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SHIP Ship at sea. } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_CUSTOM Custom image. } pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setCardBackImage:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (void)b setCardBackImageb0 b :b0 (NSImage *)i theImagei0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets a custom image used to draw the back of the card. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b stringForCardColor:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (NSString *)b stringForCardColorb0 b :b0 (CardColor)i aColori0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns a string that represents i aColori0 . It will either return Red or Black. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b stringForCardSuit:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (NSString *)b stringForCardSuitb0 b :b0 (CardSuit)i aSuiti0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns a string that represents i aSuiti0 . This will be one of Spades, Clubs, Diamonds or Hearts. The current way of doing this is not localized. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b stringForCardValue:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 + (NSString *)b stringForCardValueb0 b :b0 (CardValue)i aValuei0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns a string that represents i aValuei0 . This will be one of Ace, Jack, Queen, King, or 1 through 10. This current implementation does not lend itself to localization. s13 li1360 fi0 ri1007 ql fs16 f0 fs36 b Instance Methodsb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b cardColorb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (CardColor)b cardColorb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the receiver's color. The returned value is equal to one of these constants: fs16 fs28 {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 b Constant Colorb0 } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_BLACK Card's suit is either spades or clubs. } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_RED Card's suit is either hearts or diamonds. } pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b copyWithZone:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 b copyWithZoneb0 b :b0 (NSZone *)i zonei0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns a new Card object, allocated from the specified i zonei0 , which is an exact duplicate of the sender. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b descriptionb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (NSString*)b descriptionb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 No method description. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b drawCardAt:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b drawCardAtb0 b :b0 (NSPoint)i thePointi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Draws the card, both outline and contents, at i thePointi0 , by calling b drawOutlineAt:b0 and b drawContentsAt:b0 . If the 52 cards of the deck have been pre-drawn, the shared NSImage cache is used. Otherwise, the card is drawn by compositing the partial images. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b drawContentsAt:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b drawContentsAtb0 b :b0 (NSPoint)i thePointi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Draws the contents of the card (but not the border) at i thePointi0 . pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b drawOutlineAt:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b drawOutlineAtb0 b :b0 (NSPoint)i thePointi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Draws the card's border at i thePointi0 . pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b encodeWithCoder:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b encodeWithCoderb0 b :b0 (NSCoder *)i aCoderi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Writes the Card object to i aCoderi0 . This message is sent is response to archiving; you never send this message directly. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b flipb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b flipb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Turns the card over. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 b initb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Initialize a new Card object. This method invokes the b initSuit:value:faceUp:b0 method. The suit is set to CS_CLUBS, the value is set to CS_ACE, and the card is face down. Returns b selfb0 . pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initSuit:value:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 b initSuitb0 b :b0 (CardSuit)i aSuiti0 b valueb0 b :b0 (CardValue)i aValuei0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Initializes a card with suit i aSuiti0 and value i aValuei0 , face down, by calling b initSuit:value:faceUp:b0 . Returns b selfb0 . pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initSuit:value:faceUp:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 b initSuitb0 b :b0 (CardSuit)i aSuiti0 b valueb0 b :b0 (CardValue)i aValuei0 b faceUpb0 b :b0 (BOOL)i anOrientationi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Initializes a card with suit i aSuiti0 , value i aValuei0 , and orientation i anOrientationi0 . This is the designated initializer for Card object instances. Returns b selfb0 . pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b initWithCoder:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (id)b initWithCoderb0 b :b0 (NSCoder *)i aDecoderi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Unarchives an instance of Card. Returns b selfb0 . pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b isEqual:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (BOOL)b isEqualb0 b :b0 (Card*)i aCardi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if the receiver and i aCardi0 have the same suit and value. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b isFaceUpb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (BOOL)b isFaceUpb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if receiver is face up, otherwise returns NO. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b isOneLargerThan:wrap:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (BOOL)b isOneLargerThanb0 b :b0 (Card*)i aCardi0 b wrapb0 b :b0 (BOOL)i flagi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if the receiver's value is exactly one larger than i aCardi0 . The cards can either be in the same suit or different ones. If i flagi0 is YES then the case of the receiver being an ace and i aCardi0 being a king would return YES. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b isOneSmallerThan:wrap:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (BOOL)b isOneSmallerThanb0 b :b0 (Card*)i aCardi0 b wrapb0 b :b0 (BOOL)i flagi0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns YES if the receiver's value is exactly one smaller than i aCardi0 . The cards can either be in the same suit or different ones. If i flagi0 is YES then the case of the receiver being a king and i aCardi0 being an ace would return YES. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setFaceUp:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b setFaceUpb0 b :b0 (BOOL)i aSidei0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets the card's orientation to anOrientation. pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setSuit:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b setSuitb0 b :b0 (CardSuit)i aSuiti0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets the card's suit to i aSuiti0 . Valid suit values are: fs16 fs28 {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 b Constant Suitb0 } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_LOWSUIT Clubs } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_CLUBS Clubs } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SPADES Spades } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_DIAMONDS Diamonds } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_HEARTS Hearts } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_HIGHSUIT Hearts } pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b setValue:b0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (void)b setValueb0 b :b0 (CardValue)i aValuei0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Sets the card's value to i aValuei0 . Valid card values are: fs16 fs28 {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 b Constant Card Valueb0 } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_LOWVALUE Ace } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_ACE Ace } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_TWO Two } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_THREE Three } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_FOUR Four } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_FIVE Five } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SIX Six } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SEVEN Seven } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_EIGHT Eight } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_NINE Nine } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_TEN Ten } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_JACK Jack } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_QUEEN Queen } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_KING King } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_HIGHVALUE King } pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b suitb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (CardSuit)b suitb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the receiver's suit. The returned value will be one of: fs16 fs28 {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 b Constant Suitb0 } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_LOWSUIT Clubs } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_CLUBS Clubs } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SPADES Spades } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_DIAMONDS Diamonds } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_HEARTS Hearts } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_HIGHSUIT Hearts } pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 f0 fs28 b valueb0 fs28 {fs8 }tx3240 li2100 fi-760 li3240f1 fs28 (CardValue)b valueb0 {fs16 }pard s0 li2116 fi0 ri1007 ql tx2494 tx2872 tx3250 f1 fs28 Returns the receiver's value. The returned value will be one of: fs16 fs28 {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 b Constant Card Valueb0 } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_LOWVALUE Ace } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_ACE Ace } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_TWO Two } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_THREE Three } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_FOUR Four } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_FIVE Five } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SIX Six } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_SEVEN Seven } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_EIGHT Eight } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_NINE Nine } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_TEN Ten } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_JACK Jack } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_QUEEN Queen } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_KING King } {pard s11 li7648 fi-5131 ri1007 ql tx7648 tx10180 fs16 fs28 CS_HIGHVALUE King }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.