This is RiskCard.m in view mode; [Download] [Up]
//
// This file is a part of Risk by Mike Ferris.
//
#import "Risk.h"
RCSID ("$Id: RiskCard.m,v 1.2 1997/12/15 07:44:02 nygard Exp $");
#import "RiskCard.h"
#import "NSObjectExtensions.h"
#import "Country.h"
//======================================================================
// A RiskCard represents the country, type, image, and image name of
// a card in the game. If multiple RiskWorlds are allowed, then
// different cards will be required for each world.
//======================================================================
#define RiskCard_VERSION 1
@implementation RiskCard
+ (void) initialize
{
if (self == [RiskCard class])
{
[self setVersion:RiskCard_VERSION];
}
}
//----------------------------------------------------------------------
+ riskCardType:(RiskCardType)aCardType withCountry:(Country *)aCountry imageNamed:(NSString *)anImageName
{
return [[[RiskCard alloc] initCardType:aCardType withCountry:aCountry imageNamed:anImageName] autorelease];
}
//----------------------------------------------------------------------
- initCardType:(RiskCardType)aCardType withCountry:(Country *)aCountry imageNamed:(NSString *)anImageName
{
NSBundle *thisBundle;
NSString *imagePath;
if ([super init] == nil)
return nil;
country = [aCountry retain]; // Country can be nil.
cardType = aCardType;
imageName = [anImageName retain];
thisBundle = [NSBundle bundleForClass:[self class]];
NSAssert (thisBundle != nil, @"Could not get this bundle.");
imagePath = [thisBundle pathForImageResource:imageName];
NSAssert1 (imagePath != nil, @"Could not find image: '%@'", imageName);
image = [[NSImage alloc] initByReferencingFile:imagePath];
NSAssert1 (image != nil, @"Couldn't load image: '%@'", imageName);
return self;
}
//----------------------------------------------------------------------
- (void) dealloc
{
SNRelease (country);
SNRelease (imageName);
SNRelease (image);
[super dealloc];
}
//----------------------------------------------------------------------
- (Country *) country
{
return country;
}
//----------------------------------------------------------------------
- (RiskCardType) cardType
{
return cardType;
}
//----------------------------------------------------------------------
- (NSString *) imageName
{
return imageName;
}
//----------------------------------------------------------------------
- (NSImage *) image
{
return image;
}
//----------------------------------------------------------------------
- (NSString *) description
{
return [NSString stringWithFormat:@"<RiskCard: country = %@, cardType = %@, imageName = %@>",
[country countryName], NSStringFromRiskCardType (cardType), imageName];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.