diff -r b07ee704f35d -r ccf4854df294 project_files/HedgewarsMobile/Classes/GameConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Wed Jun 23 21:39:14 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Wed Jun 23 21:49:19 2010 +0200 @@ -1,212 +0,0 @@ - // -// GameConfigViewController.m -// HedgewarsMobile -// -// Created by Vittorio on 18/04/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "GameConfigViewController.h" -#import "SDL_uikitappdelegate.h" -#import "CommodityFunctions.h" -#import "MapConfigViewController.h" -#import "TeamConfigViewController.h" -#import "SchemeWeaponConfigViewController.h" - -@implementation GameConfigViewController - - --(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return rotationManager(interfaceOrientation); -} - --(IBAction) buttonPressed:(id) sender { - // works even if it's not actually a button - UIButton *theButton = (UIButton *)sender; - switch (theButton.tag) { - case 0: - [[self parentViewController] dismissModalViewControllerAnimated:YES]; - break; - case 1: - theButton.enabled = NO; - [self performSelector:@selector(startGame:) - withObject:theButton - afterDelay:0.25]; - break; - default: - break; - } -} - --(IBAction) segmentPressed:(id) sender { - UISegmentedControl *theSegment = (UISegmentedControl *)sender; - - switch (theSegment.selectedSegmentIndex) { - case 0: - // this init here is just aestetic as this controller was already set up in viewDidLoad - if (mapConfigViewController == nil) { - mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil]; - } - activeController = mapConfigViewController; - break; - case 1: - if (teamConfigViewController == nil) { - teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped]; - // this message is compulsory otherwise the table won't be loaded at all - } - activeController = teamConfigViewController; - break; - case 2: - if (schemeWeaponConfigViewController == nil) { - schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped]; - } - activeController = schemeWeaponConfigViewController; - break; - } - - // this message is compulsory otherwise the table won't be loaded at all - [activeController viewWillAppear:NO]; - [self.view addSubview:activeController.view]; -} - --(void) startGame:(UIButton *)button { - button.enabled = YES; - - // don't start playing if the preview is in progress - if ([mapConfigViewController busy]) { - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Wait for the Preview",@"") - message:NSLocalizedString(@"Before playing the preview needs to be generated",@"") - delegate:nil - cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") - otherButtonTitles:nil]; - [alert show]; - [alert release]; - return; - } - - // play only if there is more than one team - if ([teamConfigViewController.listOfSelectedTeams count] < 2) { - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too few teams playing",@"") - message:NSLocalizedString(@"You need to select at least two teams to play a game",@"") - delegate:nil - cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") - otherButtonTitles:nil]; - [alert show]; - [alert release]; - return; - } - - // play if there's room for enough hogs in the selected map - int hogs = 0; - for (NSDictionary *teamData in teamConfigViewController.listOfSelectedTeams) - hogs += [[teamData objectForKey:@"number"] intValue]; - - if (hogs > mapConfigViewController.maxHogs) { - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many hogs",@"") - message:NSLocalizedString(@"The map you selected is too small for that many hogs",@"") - delegate:nil - cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") - otherButtonTitles:nil]; - [alert show]; - [alert release]; - return; - } - - // create the configuration file that is going to be sent to engine - NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:mapConfigViewController.seedCommand,@"seed_command", - mapConfigViewController.templateFilterCommand,@"templatefilter_command", - mapConfigViewController.mapGenCommand,@"mapgen_command", - mapConfigViewController.mazeSizeCommand,@"mazesize_command", - mapConfigViewController.themeCommand,@"theme_command", - teamConfigViewController.listOfSelectedTeams,@"teams_list", - schemeWeaponConfigViewController.selectedScheme,@"scheme", - schemeWeaponConfigViewController.selectedWeapon,@"weapon", - nil]; - [dict writeToFile:GAMECONFIG_FILE() atomically:YES]; - [dict release]; - - // finally launch game and remove this controller - [[self parentViewController] dismissModalViewControllerAnimated:YES]; - [[SDLUIKitDelegate sharedAppDelegate] startSDLgame]; -} - --(void) viewDidLoad { - CGRect screen = [[UIScreen mainScreen] bounds]; - self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width); - - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { - if (mapConfigViewController == nil) - mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPad" bundle:nil]; - if (teamConfigViewController == nil) - teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStylePlain]; - teamConfigViewController.view.frame = CGRectMake(0, 224, 300, 500); - teamConfigViewController.view.backgroundColor = [UIColor clearColor]; - [mapConfigViewController.view addSubview:teamConfigViewController.view]; - if (schemeWeaponConfigViewController == nil) - schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped]; - schemeWeaponConfigViewController.view.frame = CGRectMake(362, 224, 300, 500); - schemeWeaponConfigViewController.view.backgroundColor = [UIColor clearColor]; - [mapConfigViewController.view addSubview:schemeWeaponConfigViewController.view]; - for (UIView *oneView in self.view.subviews) { - if ([oneView isMemberOfClass:[UIToolbar class]]) { - [[oneView viewWithTag:12345] setHidden:YES]; - break; - } - } - } else - mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil]; - activeController = mapConfigViewController; - - [self.view addSubview:mapConfigViewController.view]; - - [super viewDidLoad]; -} - --(void) viewWillAppear:(BOOL)animated { - [mapConfigViewController viewWillAppear:animated]; - [teamConfigViewController viewWillAppear:animated]; - [schemeWeaponConfigViewController viewWillAppear:animated]; - // ADD other controllers here - - [super viewWillAppear:animated]; -} - --(void) viewDidAppear:(BOOL)animated { - [mapConfigViewController viewDidAppear:animated]; - [teamConfigViewController viewDidAppear:animated]; - [schemeWeaponConfigViewController viewDidAppear:animated]; - [super viewDidAppear:animated]; -} - --(void) didReceiveMemoryWarning { - // Releases the view if it doesn't have a superview. - [super didReceiveMemoryWarning]; - // Release any cached data, images, etc that aren't in use. - if (mapConfigViewController.view.superview == nil) - mapConfigViewController = nil; - if (teamConfigViewController.view.superview == nil) - teamConfigViewController = nil; - if (schemeWeaponConfigViewController.view.superview == nil) - schemeWeaponConfigViewController = nil; - activeController = nil; - MSG_MEMCLEAN(); -} - --(void) viewDidUnload { - activeController = nil; - mapConfigViewController = nil; - teamConfigViewController = nil; - schemeWeaponConfigViewController = nil; - [super viewDidUnload]; - MSG_DIDUNLOAD(); -} - --(void) dealloc { - [activeController release]; - [mapConfigViewController release]; - [teamConfigViewController release]; - [schemeWeaponConfigViewController release]; - [super dealloc]; -} - -@end