diff -r 6cdb427ef82c -r 8dae325dc625 project_files/HedgewarsMobile/Classes/GameConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sun Nov 28 01:58:43 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sun Nov 28 23:49:09 2010 +0100 @@ -38,12 +38,7 @@ } -(IBAction) buttonPressed:(id) sender { - // works even if it's not actually a button - UIButton *theButton; - if (IS_IPAD()) - theButton = [[(NSNotification *)sender userInfo] objectForKey:@"sender"]; - else - theButton = (UIButton *)sender; + UIButton *theButton = (UIButton *)sender; switch (theButton.tag) { case 0: @@ -171,7 +166,7 @@ // play if there aren't too many teams if ([self.teamConfigViewController.listOfSelectedTeams count] > HW_getMaxNumberOfTeams()) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many teams",@"") - message:NSLocalizedString(@"Max six teams are allowed in the same game",@"") + message:NSLocalizedString(@"You exceeded the maximum number of tems allowed in a game",@"") delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") otherButtonTitles:nil]; @@ -234,38 +229,17 @@ // finally launch game and remove this controller DLog(@"sending config %@", gameDictionary); - if ([[gameDictionary allKeys] count] == 11) { - NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:gameDictionary,@"game_dictionary", @"",@"savefile", - [NSNumber numberWithBool:NO],@"netgame", nil]; - // let's hide all the views while the game is on + NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:gameDictionary,@"game_dictionary", @"",@"savefile", + [NSNumber numberWithBool:NO],@"netgame", nil]; + if (IS_IPAD()) + [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary]; + else { + // this causes a sporadic crash on the ipad but without this rotation doesn't work on iphone UIViewController *dummy = [[UIViewController alloc] init]; [self presentModalViewController:dummy animated:NO]; [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary]; [self dismissModalViewControllerAnimated:NO]; [dummy release]; - } else { - DLog(@"gameconfig data not complete!!"); - [self.parentViewController dismissModalViewControllerAnimated:YES]; - - // present an alert to the user, with an image on the ipad (too big for the iphone) - NSString *msg = NSLocalizedString(@"Something went wrong with your configuration. Please try again.",@""); - if (IS_IPAD()) - msg = [msg stringByAppendingString:@"\n\n\n\n\n\n\n\n"]; // this makes space for the image - - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Whoops" - message:msg - delegate:nil - cancelButtonTitle:@"Ok" - otherButtonTitles:nil]; - - if (IS_IPAD()) { - UIImageView *deniedImg = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"denied.png"]]; - deniedImg.frame = CGRectMake(25, 80, 240, 160); - [alert addSubview:deniedImg]; - [deniedImg release]; - } - [alert show]; - [alert release]; } } @@ -311,12 +285,6 @@ self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width); if (IS_IPAD()) { - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(buttonPressed:) - name:@"buttonPressed" - object:nil]; - srandom(time(NULL)); - // load other controllers if (self.mapConfigViewController == nil) self.mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPad" bundle:nil]; @@ -357,6 +325,7 @@ self.teamConfigViewController.view.frame = CGRectMake(348, 200, 328, 480); self.schemeWeaponConfigViewController.view.frame = CGRectMake(10, 70, 300, 600); + self.mapConfigViewController.parentController = self; } else { // this is the visible controller if (self.mapConfigViewController == nil) @@ -420,7 +389,6 @@ } -(void) viewDidUnload { - [[NSNotificationCenter defaultCenter] removeObserver:self]; self.imgContainer = nil; self.mapConfigViewController = nil; self.teamConfigViewController = nil;