diff options
Diffstat (limited to 'Classes/Cart_CollectAppDelegate.m')
-rwxr-xr-x | Classes/Cart_CollectAppDelegate.m | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/Classes/Cart_CollectAppDelegate.m b/Classes/Cart_CollectAppDelegate.m index 158f660..ba9d60b 100755 --- a/Classes/Cart_CollectAppDelegate.m +++ b/Classes/Cart_CollectAppDelegate.m | |||
@@ -13,6 +13,7 @@ | |||
13 | #import "GameMode.h" | 13 | #import "GameMode.h" |
14 | #import "RootViewController.h" | 14 | #import "RootViewController.h" |
15 | #import "MainMenuLayer.h" | 15 | #import "MainMenuLayer.h" |
16 | #import "TestFlight.h" | ||
16 | 17 | ||
17 | @implementation Cart_CollectAppDelegate | 18 | @implementation Cart_CollectAppDelegate |
18 | 19 | ||
@@ -42,6 +43,9 @@ | |||
42 | 43 | ||
43 | - (void) applicationDidFinishLaunching:(UIApplication*)application | 44 | - (void) applicationDidFinishLaunching:(UIApplication*)application |
44 | { | 45 | { |
46 | // REMOVE THIS LINE FOR RELEASE BUILDS | ||
47 | [TestFlight takeOff:@"66a3925c85c93e7628c14d167ff6c1b7_MjM4MTEyMDExLTA4LTE3IDEzOjEyOjQ4Ljg2NDE2OQ"]; | ||
48 | |||
45 | [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; | 49 | [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; |
46 | 50 | ||
47 | NSMutableDictionary* registerDefaults = [NSMutableDictionary dictionaryWithObjectsAndKeys: | 51 | NSMutableDictionary* registerDefaults = [NSMutableDictionary dictionaryWithObjectsAndKeys: |
@@ -138,6 +142,8 @@ | |||
138 | 142 | ||
139 | -(void) applicationDidEnterBackground:(UIApplication*)application { | 143 | -(void) applicationDidEnterBackground:(UIApplication*)application { |
140 | [[CCDirector sharedDirector] stopAnimation]; | 144 | [[CCDirector sharedDirector] stopAnimation]; |
145 | |||
146 | [[NSUserDefaults standardUserDefaults] synchronize]; | ||
141 | 147 | ||
142 | if ([[CCDirector sharedDirector] runningScene].tag == GAME_SCENE) | 148 | if ([[CCDirector sharedDirector] runningScene].tag == GAME_SCENE) |
143 | { | 149 | { |
@@ -190,20 +196,48 @@ | |||
190 | { | 196 | { |
191 | NSString* databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName]; | 197 | NSString* databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName]; |
192 | [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; | 198 | [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; |
193 | //[fileManager release]; | ||
194 | 199 | ||
195 | [userDefaults setInteger:1 forKey:@"databaseVersion"]; | 200 | [userDefaults setInteger:2 forKey:@"databaseVersion"]; |
201 | } | ||
202 | |||
203 | if (sqlite3_open([databasePath UTF8String], &database) != SQLITE_OK) | ||
204 | { | ||
205 | NSLog(@"Failed to open database"); | ||
196 | } | 206 | } |
197 | 207 | ||
208 | // Database migrations! | ||
198 | if ([userDefaults integerForKey:@"databaseVersion"] < 1) | 209 | if ([userDefaults integerForKey:@"databaseVersion"] < 1) |
199 | { | 210 | { |
200 | // Upgrade the database to version 1, which is completely unnecessary as no prior version exists | 211 | // Upgrade the database to version 1, which is completely unnecessary as no prior version exists |
201 | } | 212 | } |
202 | 213 | ||
203 | if (sqlite3_open([databasePath UTF8String], &database) != SQLITE_OK) | 214 | if ([userDefaults integerForKey:@"databaseVersion"] < 2) |
204 | { | 215 | { |
205 | NSLog(@"Failed to open database"); | 216 | // Database version 2 adds a "gameMode" column to highscores to allow for multiple highscore lists |
217 | const char* sqlQuery = "ALTER TABLE highscores ADD gameMode varchar(255)"; | ||
218 | sqlite3_stmt* compiled_statement; | ||
219 | |||
220 | if (sqlite3_prepare_v2(database, sqlQuery, -1, &compiled_statement, NULL) == SQLITE_OK) | ||
221 | { | ||
222 | sqlite3_step(compiled_statement); | ||
223 | |||
224 | sqlQuery = "UPDATE highscores SET gameMode = \"Collect\""; | ||
225 | if (sqlite3_prepare_v2(database, sqlQuery, -1, &compiled_statement, NULL) == SQLITE_OK) | ||
226 | { | ||
227 | sqlite3_step(compiled_statement); | ||
228 | |||
229 | NSLog(@"Updated database to version 2."); | ||
230 | [userDefaults setInteger:2 forKey:@"databaseVersion"]; | ||
231 | } else { | ||
232 | NSLog(@"Error while updating database to version 2. '%s'", sqlite3_errmsg(database)); | ||
233 | } | ||
234 | } else { | ||
235 | NSLog(@"Error while updating database to version 2. '%s'", sqlite3_errmsg(database)); | ||
236 | } | ||
206 | } | 237 | } |
238 | |||
239 | // It's rather important that the database version gets saved | ||
240 | [userDefaults synchronize]; | ||
207 | } | 241 | } |
208 | 242 | ||
209 | return database; | 243 | return database; |