From 6e96fb2144718722208d22f892716b55548135e1 Mon Sep 17 00:00:00 2001 From: Starla Insigna Date: Wed, 30 Nov 2011 12:57:06 -0500 Subject: Created a game mode manager There is now one location for information relating to each GameMode instead of several places, so that info can be easily updated and propagated to, for instance, GameModeSelectionLayer. GameModes can also be specified by an info instance each owns. There's also a way to get an ordered list of game modes. The three star game mode unlocking system has also been added. Closes #213 --- Classes/GameOverScene.m | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) (limited to 'Classes/GameOverScene.m') diff --git a/Classes/GameOverScene.m b/Classes/GameOverScene.m index a56aeac..07186c2 100755 --- a/Classes/GameOverScene.m +++ b/Classes/GameOverScene.m @@ -11,17 +11,15 @@ #import #import "cocoslive.h" #import "MainMenuLayer.h" -#import "ClassicGameMode.h" -#import "JumpGameMode.h" @implementation GameOverScene -+ (GameOverScene*)sceneWithScore:(int)score gameMode:(NSString*)gameMode ++ (GameOverScene*)sceneWithScore:(int)score gameMode:(GameModeInfo*)gameMode { return [[[GameOverScene alloc] initWithScore:score gameMode:gameMode] autorelease]; } -- (id)initWithScore:(int)score2 gameMode:(NSString*)gameMode2 +- (id)initWithScore:(int)m_score gameMode:(GameModeInfo*)m_gameMode { self = [super init]; @@ -37,8 +35,8 @@ backgroundImage.position = ccp(240, 160); [theLayer addChild:backgroundImage z:0]; - score = score2; - gameMode = gameMode2; + score = m_score; + gameMode = m_gameMode; movingLayer = [[UIView alloc] initWithFrame:CGRectMake(0, -320, 480, 320)]; movingLayer.backgroundColor = [UIColor clearColor]; @@ -47,7 +45,7 @@ scoreField = [[UILabel alloc] initWithFrame:CGRectMake(205, 320-200, 0, 0)]; [scoreField setFont:[UIFont systemFontOfSize:20.0f]]; [scoreField setBackgroundColor:[UIColor clearColor]]; - [scoreField setText:[NSString stringWithFormat:@"%d", score2]]; + [scoreField setText:[NSString stringWithFormat:@"%d", score]]; CGSize labelSize = [scoreField.text sizeWithFont:scoreField.font constrainedToSize:CGSizeMake(160, 31) lineBreakMode:UILineBreakModeClip]; [scoreField setFrame:CGRectMake(scoreField.frame.origin.x, scoreField.frame.origin.y, labelSize.width, labelSize.height)]; [movingLayer addSubview:scoreField]; @@ -103,7 +101,7 @@ textField.enabled = NO; submitSwitch.enabled = NO; - const char* sqlQuery = [[NSString stringWithFormat:@"INSERT INTO highscores (name, score, gameMode) VALUES (\"%@\",%d,\"%@\")", [textField text], score, gameMode] UTF8String]; + const char* sqlQuery = [[NSString stringWithFormat:@"INSERT INTO highscores (name, score, gameMode) VALUES (\"%@\",%d,\"%@\")", [textField text], score, gameMode.name] UTF8String]; sqlite3_stmt* compiled_statement; if (sqlite3_prepare_v2([Cart_CollectAppDelegate database], sqlQuery, -1, &compiled_statement, NULL) == SQLITE_OK) @@ -128,14 +126,7 @@ CLScoreServerPost* server = [[CLScoreServerPost alloc] initWithGameName:@"Cart Collect" gameKey:@"38f440a074b3264386455a36b2706d8f" delegate:self]; NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; - - if ([gameMode isEqual:@"Collect"]) - { - [dict setObject:@"Classic" forKey:@"cc_category"]; - } else { - [dict setObject:gameMode forKey:@"cc_category"]; - } - + [dict setObject:gameMode.globalHighscoreKey forKey:@"cc_category"]; [dict setObject:[textField text] forKey:@"cc_playername"]; [dict setObject:[NSNumber numberWithInt:score] forKey:@"cc_score"]; [server sendScore:dict]; @@ -224,13 +215,7 @@ if (playAgain) { - if ([gameMode isEqual:@"Collect"]) - { - [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:3.0f scene:[ClassicGameMode scene] withColor:ccc3(0, 0, 0)]]; - } else if ([gameMode isEqual:@"Jump"]) - { - [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:3.0f scene:[JumpGameMode scene] withColor:ccc3(0, 0, 0)]]; - } + [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:3.0f scene:[gameMode scene] withColor:ccc3(0, 0, 0)]]; } else { [[CCDirector sharedDirector] replaceScene:[MainMenuLayer scene]]; } -- cgit 1.4.1