summary refs log tree commit diff stats
path: root/Classes/GameMode.m
diff options
context:
space:
mode:
authorStarla Insigna <starla4444@gmail.com>2011-11-30 12:57:06 -0500
committerStarla Insigna <starla4444@gmail.com>2011-11-30 12:57:06 -0500
commit6e96fb2144718722208d22f892716b55548135e1 (patch)
tree4dd550de787dd370a13039c03969442f54a3a856 /Classes/GameMode.m
parentfd58a0cde1bb5473e39e6cb82d28113da84b9ae0 (diff)
downloadcartcollect-6e96fb2144718722208d22f892716b55548135e1.tar.gz
cartcollect-6e96fb2144718722208d22f892716b55548135e1.tar.bz2
cartcollect-6e96fb2144718722208d22f892716b55548135e1.zip
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
Diffstat (limited to 'Classes/GameMode.m')
-rw-r--r--Classes/GameMode.m20
1 files changed, 7 insertions, 13 deletions
diff --git a/Classes/GameMode.m b/Classes/GameMode.m index 1f2451d..3e2f3ee 100644 --- a/Classes/GameMode.m +++ b/Classes/GameMode.m
@@ -14,19 +14,6 @@
14 14
15@synthesize cart, score, lives, isPaused, pointMultiplier; 15@synthesize cart, score, lives, isPaused, pointMultiplier;
16 16
17+ (CCScene*)scene
18{
19 CCScene* scene = [CCScene node];
20
21 GameMode* layer = [self node];
22 layer.tag = GAME_LAYER;
23 [scene addChild:layer];
24
25 scene.tag = GAME_SCENE;
26
27 return scene;
28}
29
30- (id)init 17- (id)init
31{ 18{
32 self = [super init]; 19 self = [super init];
@@ -213,6 +200,13 @@
213 } 200 }
214} 201}
215 202
203+ (GameModeInfo*)info
204{
205 [NSException raise:@"Unimplemented method" format:@"Method -info of GameMode subclasses must be overridden"];
206
207 return nil;
208}
209
216- (void)dealloc 210- (void)dealloc
217{ 211{
218 [objects release]; 212 [objects release];