cocoaTouch/MainMenuViewController.m
changeset 3321 988e39ef3c20
parent 3317 198ec44b6d92
child 3325 652a8ebdf667
equal deleted inserted replaced
3320:506f7d6a82b3 3321:988e39ef3c20
    36     self.cover = nil;
    36     self.cover = nil;
    37 	[super viewDidUnload];
    37 	[super viewDidUnload];
    38 }
    38 }
    39 
    39 
    40 -(void) viewDidLoad {
    40 -(void) viewDidLoad {
    41     
       
    42     char *ver;
    41     char *ver;
    43     HW_versionInfo(NULL, &ver);
    42     HW_versionInfo(NULL, &ver);
    44     NSString *versionNumber = [[NSString alloc] initWithCString:ver];
    43     NSString *versionNumber = [[NSString alloc] initWithCString:ver];
    45     self.versionLabel.text = versionNumber;
    44     self.versionLabel.text = versionNumber;
    46     [versionNumber release];
    45     [versionNumber release];
    47 
    46 
    48     // initialize some files the first time we load the game
       
    49 	[NSThread detachNewThreadSelector:@selector(checkFirstRun) toTarget:self withObject:nil];
       
    50     // listen to request to remove the modalviewcontroller
    47     // listen to request to remove the modalviewcontroller
    51     [[NSNotificationCenter defaultCenter] addObserver:self
    48     [[NSNotificationCenter defaultCenter] addObserver:self
    52                                              selector:@selector(dismissModalViewController)
    49                                              selector:@selector(dismissModalViewController)
    53                                                  name: @"dismissModalView" 
    50                                                  name: @"dismissModalView" 
    54                                                object:nil];
    51                                                object:nil];
    55 
    52     
       
    53     // initialize some files the first time we load the game
       
    54     NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"];
       
    55 	if (!([[NSFileManager defaultManager] fileExistsAtPath:filePath])) 
       
    56         [NSThread detachNewThreadSelector:@selector(checkFirstRun) toTarget:self withObject:nil];
       
    57     
    56 	[super viewDidLoad];
    58 	[super viewDidLoad];
    57 }
    59 }
    58 
    60 
    59 // this is called to verify whether it's the first time the app is launched
    61 // this is called to verify whether it's the first time the app is launched
    60 // if it is it blocks user interaction with an alertView until files are created
    62 // if it is it blocks user interaction with an alertView until files are created
    61 -(void) checkFirstRun {
    63 -(void) checkFirstRun {
    62 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    64 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
       
    65     NSLog(@"First time run, creating settings files");
       
    66     
       
    67     // show a popup with an indicator to make the user wait
       
    68     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Please wait",@"")
       
    69                                                     message:nil
       
    70                                                    delegate:nil
       
    71                                           cancelButtonTitle:nil
       
    72                                           otherButtonTitles:nil];
       
    73     [alert show];
       
    74     
       
    75     UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] 
       
    76                                           initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
       
    77     indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50);
       
    78     [indicator startAnimating];
       
    79     [alert addSubview:indicator];
       
    80     [indicator release];
       
    81     [alert release];
       
    82     
       
    83     // create Default Team.plist
       
    84     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
       
    85     NSString *teamsDirectory = [[paths objectAtIndex:0] stringByAppendingString:@"/Teams/"];
       
    86     [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory 
       
    87                               withIntermediateDirectories:NO 
       
    88                                                attributes:nil 
       
    89                                                     error:NULL];
       
    90     
       
    91     NSMutableArray *hedgehogs = [[NSMutableArray alloc] init];
       
    92     
       
    93     for (int i = 0; i < 8; i++) {
       
    94         NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
       
    95         NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:@"100",@"health",@"0",@"level",
       
    96                              hogName,@"hogname",@"NoHat",@"hat",nil];
       
    97         [hogName release];
       
    98         [hedgehogs addObject:hog];
       
    99         [hog release];
       
   100     }
       
   101     
       
   102     NSDictionary *defaultTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"4421353",@"color",@"0",@"hash",
       
   103                                  @"Default Team",@"teamname",@"Statue",@"grave",@"Plane",@"fort",
       
   104                                  @"Default",@"voicepack",@"hedgewars",@"flag",hedgehogs,@"hedgehogs",nil];
       
   105     [hedgehogs release];
       
   106     NSString *defaultTeamFile = [teamsDirectory stringByAppendingString:@"Default Team.plist"];
       
   107     [defaultTeam writeToFile:defaultTeamFile atomically:YES];
       
   108     [defaultTeam release];
       
   109     
       
   110     // create settings.plist
       
   111     NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init];
    63 	
   112 	
    64 	NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"];
   113     [saveDict setObject:@"" forKey:@"username"];
    65 	if (!([[NSFileManager defaultManager] fileExistsAtPath:filePath])) {
   114     [saveDict setObject:@"" forKey:@"password"];
    66 		// file not present, means that also other files are absent
   115     [saveDict setObject:@"1" forKey:@"music"];
    67 		NSLog(@"First time run, creating settings files");
   116     [saveDict setObject:@"1" forKey:@"sounds"];
    68 		
   117     [saveDict setObject:@"0" forKey:@"alternate"];
    69 		// show a popup with an indicator to make the user wait
       
    70 		UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Please wait",@"")
       
    71                                                         message:nil
       
    72                                                        delegate:nil
       
    73                                               cancelButtonTitle:nil
       
    74                                               otherButtonTitles:nil];
       
    75 		[alert show];
       
    76 
   118 
    77 		UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] 
   119     NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"];
    78                                               initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
   120     [saveDict writeToFile:filePath atomically:YES];
    79 		indicator.center = CGPointMake(alert.bounds.size.width / 2, alert.bounds.size.height - 50);
   121     [saveDict release];
    80 		[indicator startAnimating];
   122     
    81 		[alert addSubview:indicator];
   123     // create other files
    82 		[indicator release];
   124     
    83 		[alert release];
   125     // ok let the user take control
    84 		
   126     [alert dismissWithClickedButtonIndex:0 animated:YES];
    85         // create Default Team.plist
       
    86         NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
       
    87         NSString *teamsDirectory = [[paths objectAtIndex:0] stringByAppendingString:@"/Teams/"];
       
    88 		[[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory 
       
    89                                   withIntermediateDirectories:NO 
       
    90                                                    attributes:nil 
       
    91                                                         error:NULL];
       
    92 
   127 
    93         NSMutableArray *hedgehogs = [[NSMutableArray alloc] init];
       
    94 
       
    95         for (int i = 0; i < 8; i++) {
       
    96             NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
       
    97             NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:@"100",@"health",@"0",@"level",
       
    98                                  hogName,@"hogname",@"NoHat",@"hat",nil];
       
    99             [hogName release];
       
   100             [hedgehogs addObject:hog];
       
   101             [hog release];
       
   102         }
       
   103         
       
   104         NSDictionary *defaultTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"4421353",@"color",@"0",@"hash",
       
   105                                      @"Default Team",@"teamname",@"Statue",@"grave",@"Plane",@"fort",
       
   106                                      @"Default",@"voicepack",@"hedgewars",@"flag",hedgehogs,@"hedgehogs",nil];
       
   107         [hedgehogs release];
       
   108         NSString *defaultTeamFile = [teamsDirectory stringByAppendingString:@"Default Team.plist"];
       
   109         [defaultTeam writeToFile:defaultTeamFile atomically:YES];
       
   110         [defaultTeam release];
       
   111         
       
   112 		// create settings.plist
       
   113 		NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init];
       
   114 	
       
   115 		[saveDict setObject:@"" forKey:@"username"];
       
   116 		[saveDict setObject:@"" forKey:@"password"];
       
   117 		[saveDict setObject:@"1" forKey:@"music"];
       
   118 		[saveDict setObject:@"1" forKey:@"sounds"];
       
   119 		[saveDict setObject:@"0" forKey:@"alternate"];
       
   120 	
       
   121 		[saveDict writeToFile:filePath atomically:YES];
       
   122 		[saveDict release];
       
   123 		
       
   124 		// create other files
       
   125         
       
   126         // ok let the user take control
       
   127 		[alert dismissWithClickedButtonIndex:0 animated:YES];
       
   128 	}
       
   129 	[pool release];
   128 	[pool release];
   130 	[NSThread exit];
   129 	[NSThread exit];
   131 }
   130 }
   132 
   131 
   133 #pragma mark -
   132 #pragma mark -