cocoaTouch/SDLOverrides/SDL_uikitappdelegate.m
changeset 2696 41aa7b56c17b
parent 2693 3207e0eacd43
child 2697 75880595a9f1
--- a/cocoaTouch/SDLOverrides/SDL_uikitappdelegate.m	Thu Jan 14 16:46:50 2010 +0000
+++ b/cocoaTouch/SDLOverrides/SDL_uikitappdelegate.m	Fri Jan 15 10:03:31 2010 +0000
@@ -28,13 +28,16 @@
 #import "SDL_video.h"
 #import "GameSetup.h"
 
+//#import "SoundEffect.h"	
+//	SoundEffect *erasingSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Erase" ofType:@"caf"]];
+//	SoundEffect *selectSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Select" ofType:@"caf"]];
+
+
 #ifdef main
 #undef main
 #endif
 
 extern int SDL_main(int argc, char *argv[]);
-BOOL isServerRunning = NO;
-
 int main (int argc, char **argv) {
 	int i;
 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
@@ -63,6 +66,13 @@
 	return (SDLUIKitDelegate *)[[UIApplication sharedApplication] delegate];
 }
 
+-(void) dealloc {
+	[setup release];
+	[controller release];
+	[window release];
+	[super dealloc];
+}
+
 -(void) launchSDL_main{
 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 	
@@ -78,34 +88,29 @@
 -(IBAction) startSDLgame {
 	
 	[setup startThread:@"engineProtocol"];
-	
+	[setup loadSettingsFromFile:@"settings.plist" forKey:@"systemSettings"];
+
 	// remove the current view to free resources
 	[UIView beginAnimations:nil context:NULL];
 	[UIView setAnimationDuration:1.5];
 	controller.view.alpha = 0;
 	[UIView commitAnimations];
 	[controller.view performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.5];
-	//[controller.view removeFromSuperview];
-	
+
 	NSLog(@"Game is launching...");
 
 	[NSThread detachNewThreadSelector:@selector(launchSDL_main) toTarget:self withObject:nil];
 	
-	//SDL_main(forward_argc, forward_argv);
-
-
 }
 
 // override the direct execution of SDL_main to allow us to implement the frontend (even using a nib)
 -(void) applicationDidFinishLaunching:(UIApplication *)application {
 	[application setStatusBarHidden:YES animated:NO];
 
-	setup = [[GameSetup alloc] init]; 
+	setup = [[GameSetup alloc] init];
 	/* Set working directory to resource path */
 	[[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]];
-//#import "SoundEffect.h"	
-//	SoundEffect *erasingSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Erase" ofType:@"caf"]];
-//	SoundEffect *selectSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Select" ofType:@"caf"]];
+
 	[window addSubview:controller.view];
 	[window makeKeyAndVisible];
 }
@@ -150,10 +155,12 @@
 	[SDLUIKitDelegate sharedAppDelegate].controller.view.alpha = 1;
 	[UIView commitAnimations];
 	
+	[[SDLUIKitDelegate sharedAppDelegate].setup unloadSettings];
 	[[SDLUIKitDelegate sharedAppDelegate].window makeKeyAndVisible];
 }
 
-
+#pragma mark -
+#pragma mark Convenience methods
 void IPH_returnFrontend (void) {
 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 
@@ -165,11 +172,10 @@
 }
 
 
--(void) dealloc {
-	[setup release];
-	[controller release];
-	[window release];
-	[super dealloc];
++(NSString *)dataFilePath: (NSString *)fileName {
+	NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+	NSString *documentsDirectory = [paths objectAtIndex:0];
+	return [documentsDirectory stringByAppendingPathComponent:fileName];
 }
 
 @end