summary refs log tree commit diff stats
path: root/Classes/GameModeSelection.m
diff options
context:
space:
mode:
Diffstat (limited to 'Classes/GameModeSelection.m')
-rw-r--r--Classes/GameModeSelection.m49
1 files changed, 16 insertions, 33 deletions
diff --git a/Classes/GameModeSelection.m b/Classes/GameModeSelection.m index 40981b1..61004fa 100644 --- a/Classes/GameModeSelection.m +++ b/Classes/GameModeSelection.m
@@ -13,19 +13,14 @@
13 13
14@implementation GameModeSelection 14@implementation GameModeSelection
15 15
16@synthesize name, location, unlocked, delegate; 16@synthesize gameMode, delegate;
17 17
18+ (id)selectionWithName:(NSString*)name location:(NSString*)location filename:(NSString*)filename unlocked:(BOOL)unlocked 18+ (id)selectionWithGameModeInfo:(GameModeInfo*)m_gameMode
19{ 19{
20 return [[[GameModeSelection alloc] initWithName:name location:location filename:filename unlocked:unlocked] autorelease]; 20 return [[[GameModeSelection alloc] initWithGameModeInfo:m_gameMode] autorelease];
21} 21}
22 22
23+ (id)selectionWithName:(NSString *)name location:(NSString *)location filename:(NSString *)filename unlockCondition:(NSString*)unlockCondition 23- (id)initWithGameModeInfo:(GameModeInfo*)m_gameMode
24{
25 return [[[GameModeSelection alloc] initWithName:name location:location filename:filename unlockCondition:unlockCondition] autorelease];
26}
27
28- (id)initWithName:(NSString*)m_name location:(NSString*)m_location filename:(NSString*)filename unlocked:(BOOL)m_unlocked;
29{ 24{
30 self = [super initWithTarget:nil selector:nil]; 25 self = [super initWithTarget:nil selector:nil];
31 26
@@ -33,19 +28,19 @@
33 { 28 {
34 self.anchorPoint = CGPointMake(0.5f, 0.5f); 29 self.anchorPoint = CGPointMake(0.5f, 0.5f);
35 30
36 name = m_name; 31 gameMode = m_gameMode;
37 location = m_location;
38 unlocked = m_unlocked;
39 32
40 contentSize_ = CGSizeMake(128, 320); 33 contentSize_ = CGSizeMake(128, 320);
41 34
35 NSString* name = gameMode.name;
36 NSString* location = gameMode.location;
42 NSString* filenameMod; 37 NSString* filenameMod;
43 38
44 if (unlocked) 39 if (gameMode.unlocked)
45 { 40 {
46 filenameMod = [NSString stringWithFormat:@"%@-unlocked", filename]; 41 filenameMod = [NSString stringWithFormat:@"%@-unlocked", name];
47 } else { 42 } else {
48 filenameMod = [NSString stringWithFormat:@"%@-locked", filename]; 43 filenameMod = [NSString stringWithFormat:@"%@-locked", name];
49 name = [@"" stringByPaddingToLength:name.length withString:@"?" startingAtIndex:0]; 44 name = [@"" stringByPaddingToLength:name.length withString:@"?" startingAtIndex:0];
50 location = [@"" stringByPaddingToLength:location.length withString:@"?" startingAtIndex:0]; 45 location = [@"" stringByPaddingToLength:location.length withString:@"?" startingAtIndex:0];
51 } 46 }
@@ -93,7 +88,7 @@
93 UIImage* selectionBackground = UIGraphicsGetImageFromCurrentImageContext(); 88 UIImage* selectionBackground = UIGraphicsGetImageFromCurrentImageContext();
94 89
95 // Now we want to put the level image inside the frame without messing up the frame itself 90 // Now we want to put the level image inside the frame without messing up the frame itself
96 UIImage* innerPicture = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:filename ofType:@"png"]]; 91 UIImage* innerPicture = gameMode.image;
97 CGContextClipToMask(context, CGRectMake(0, 0, boxSize.width, boxSize.height), [[selectionBackground opaqueMaskFromWhiteImage] CGImage]); 92 CGContextClipToMask(context, CGRectMake(0, 0, boxSize.width, boxSize.height), [[selectionBackground opaqueMaskFromWhiteImage] CGImage]);
98 [innerPicture drawInRect:CGRectMake(6, 6, 128, 128)]; 93 [innerPicture drawInRect:CGRectMake(6, 6, 128, 128)];
99 selectionBackground = UIGraphicsGetImageFromCurrentImageContext(); 94 selectionBackground = UIGraphicsGetImageFromCurrentImageContext();
@@ -104,7 +99,7 @@
104 context = UIGraphicsGetCurrentContext(); 99 context = UIGraphicsGetCurrentContext();
105 CGContextSaveGState(context); 100 CGContextSaveGState(context);
106 101
107 if (unlocked) 102 if (gameMode.unlocked)
108 { 103 {
109 CGContextSetShadow(context, CGSizeMake(-6, 6), 4.0f); 104 CGContextSetShadow(context, CGSizeMake(-6, 6), 4.0f);
110 [selectionBackground drawInRect:CGRectMake(10, 0, boxSize.width, boxSize.height)]; 105 [selectionBackground drawInRect:CGRectMake(10, 0, boxSize.width, boxSize.height)];
@@ -159,7 +154,7 @@
159 titleSprite.position = ccp(-10, (boxSize.height)/2+(combinedTitleSize.height)/2); 154 titleSprite.position = ccp(-10, (boxSize.height)/2+(combinedTitleSize.height)/2);
160 [self addChild:titleSprite]; 155 [self addChild:titleSprite];
161 156
162 if (unlocked) 157 if (gameMode.unlocked)
163 { 158 {
164 Highscore* localHighscore = [Highscore localHighscoreForGameMode:name]; 159 Highscore* localHighscore = [Highscore localHighscoreForGameMode:name];
165 160
@@ -177,7 +172,7 @@
177 172
178 CGImageRef highscoreImage = [UIGraphicsGetImageFromCurrentImageContext() CGImage]; 173 CGImageRef highscoreImage = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
179 UIGraphicsEndImageContext(); 174 UIGraphicsEndImageContext();
180 CCSprite* highscoreSprite = [CCSprite spriteWithCGImage:highscoreImage key:[NSString stringWithFormat:@"gms-%@-highscore-%d", filename, localHighscore.score]]; 175 CCSprite* highscoreSprite = [CCSprite spriteWithCGImage:highscoreImage key:[NSString stringWithFormat:@"gms-%@-highscore-%d", name, localHighscore.score]];
181 highscoreSprite.position = ccp(-5, 0-64-(highscoreSize.height)/2-10); 176 highscoreSprite.position = ccp(-5, 0-64-(highscoreSize.height)/2-10);
182 [self addChild:highscoreSprite]; 177 [self addChild:highscoreSprite];
183 } 178 }
@@ -187,21 +182,9 @@
187 return self; 182 return self;
188} 183}
189 184
190- (id)initWithName:(NSString *)m_name location:(NSString *)m_location filename:(NSString *)m_filename unlockCondition:(NSString*)m_unlockCondition
191{
192 self = [self initWithName:m_name location:m_location filename:m_filename unlocked:NO];
193
194 if (nil != self)
195 {
196 unlockCondition = m_unlockCondition;
197 }
198
199 return self;
200}
201
202- (void)buttonTapped 185- (void)buttonTapped
203{ 186{
204 if (unlocked) 187 if (gameMode.unlocked)
205 { 188 {
206 if (delegate != nil) 189 if (delegate != nil)
207 { 190 {
@@ -210,7 +193,7 @@
210 NSLog(@"I don't have a GameModeSelectionDelegate to call for some reason..."); 193 NSLog(@"I don't have a GameModeSelectionDelegate to call for some reason...");
211 } 194 }
212 } else { 195 } else {
213 UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"To unlock this game mode:" message:unlockCondition delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; 196 UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"To unlock this game mode:" message:gameMode.unlockCondition delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
214 [alertView show]; 197 [alertView show];
215 [alertView release]; 198 [alertView release];
216 } 199 }