cocoaTouch/GameConfigViewController.m
author mbait
Tue, 27 Apr 2010 12:51:29 +0000
changeset 3370 37f4f83fedb1
parent 3369 c7289e42f0ee
child 3373 c1ff724a5c34
permissions -rw-r--r--
Teleport AI: * basic implementation of teleport using in order to take crates * filter option to get certain types of gears in FillBonuses
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     1
    //
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     2
//  GameConfigViewController.m
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     3
//  HedgewarsMobile
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     4
//
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     5
//  Created by Vittorio on 18/04/10.
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     7
//
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     8
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
     9
#import "GameConfigViewController.h"
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    10
#import "SDL_uikitappdelegate.h"
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    11
#import "CommodityFunctions.h"
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    12
#import "MapConfigViewController.h"
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
    13
#import "TeamConfigViewController.h"
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    14
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    15
@implementation GameConfigViewController
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
    16
@synthesize availableTeamsTableView, weaponsButton, schemesButton, mapButton, randomButton, startButton;
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    17
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    18
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    19
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    20
    return rotationManager(interfaceOrientation);
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    21
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    22
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    23
-(IBAction) buttonPressed:(id) sender {
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
    24
    // works even if it's not actually a button
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    25
    UIButton *theButton = (UIButton *)sender;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    26
    switch (theButton.tag) {
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    27
        case 0:
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    28
            [[self parentViewController] dismissModalViewControllerAnimated:YES];
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    29
            break;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    30
        case 1:
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    31
            [self performSelector:@selector(startGame)
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    32
                       withObject:nil
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    33
                       afterDelay:0.25];
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    34
            break;
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    35
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    36
    }
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    37
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
    38
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    39
-(IBAction) segmentPressed:(id) sender {
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    40
    UISegmentedControl *theSegment = (UISegmentedControl *)sender;
3369
c7289e42f0ee add other controls for map preview, also fix a bug in digest
koda
parents: 3365
diff changeset
    41
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    42
    switch (theSegment.selectedSegmentIndex) {
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    43
        case 0:
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    44
            // this init here is just aestetic as this controller was already set up in viewDidLoad
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    45
            if (mapConfigViewController == nil) {
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    46
                mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    47
                [mapConfigViewController viewWillAppear:NO];  
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    48
            }
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    49
            activeController = mapConfigViewController;
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    50
            break;
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    51
        case 1:
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    52
            if (teamConfigViewController == nil) {
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    53
                teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    54
                // this message is compulsory otherwise the team table won't be loaded at all
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    55
                [teamConfigViewController viewWillAppear:NO];  
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    56
            }
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    57
            activeController = teamConfigViewController;
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    58
            break;
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    59
        case 2:
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    60
            
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    61
            break;
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    62
    }
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    63
    
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    64
    [self.view addSubview:activeController.view];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    65
}
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    66
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    67
-(void) startGame {
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    68
    // play only if there is more than one team
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    69
    if ([teamConfigViewController.listOfSelectedTeams count] < 2) {
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    70
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too few teams playing",@"")
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    71
                                                        message:NSLocalizedString(@"You need to select at least two teams to play a game",@"")
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    72
                                                       delegate:nil
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    73
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    74
                                              otherButtonTitles:nil];
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    75
        [alert show];
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    76
        [alert release];
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    77
        return;
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
    78
    }
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    79
    
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    80
    // play if there's room for enough hogs in the selected map
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    81
    int hogs = 0;
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    82
    for (NSDictionary *teamData in teamConfigViewController.listOfSelectedTeams)
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    83
        hogs += [[teamData objectForKey:@"number"] intValue];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    84
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    85
    if (hogs > mapConfigViewController.maxHogs) {
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    86
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many hogs",@"")
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    87
                                                        message:NSLocalizedString(@"The map you selected is too small for that many hogs",@"")
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    88
                                                       delegate:nil
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    89
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    90
                                              otherButtonTitles:nil];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    91
        [alert show];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    92
        [alert release];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    93
        return;
3369
c7289e42f0ee add other controls for map preview, also fix a bug in digest
koda
parents: 3365
diff changeset
    94
    }
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    95
    NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:mapConfigViewController.seedCommand,@"seed_command",
3369
c7289e42f0ee add other controls for map preview, also fix a bug in digest
koda
parents: 3365
diff changeset
    96
                                                                      mapConfigViewController.templateFilterCommand,@"templatefilter_command",
c7289e42f0ee add other controls for map preview, also fix a bug in digest
koda
parents: 3365
diff changeset
    97
                                                                      mapConfigViewController.mapGenCommand,@"mapgen_command",
c7289e42f0ee add other controls for map preview, also fix a bug in digest
koda
parents: 3365
diff changeset
    98
                                                                      mapConfigViewController.mazeSizeCommand,@"mazesize_command",
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
    99
                                                                      teamConfigViewController.listOfSelectedTeams,@"teams_list",nil];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   100
    [dict writeToFile:GAMECONFIG_FILE() atomically:YES];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   101
    [dict release];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   102
    [[self parentViewController] dismissModalViewControllerAnimated:YES];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   103
    [[SDLUIKitDelegate sharedAppDelegate] startSDLgame];
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   104
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   105
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   106
-(void) viewDidLoad {
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   107
    mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   108
    activeController = mapConfigViewController;
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   109
    
3369
c7289e42f0ee add other controls for map preview, also fix a bug in digest
koda
parents: 3365
diff changeset
   110
    [self.view addSubview:mapConfigViewController.view];
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   111
    
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   112
    [super viewDidLoad];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   113
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   114
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   115
-(void) viewWillAppear:(BOOL)animated {
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   116
    [mapConfigViewController viewWillAppear:animated];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   117
    [teamConfigViewController viewWillAppear:animated];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   118
    // ADD other controllers here
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   119
     
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   120
    [super viewWillAppear:animated];
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   121
}
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   122
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   123
-(void) didReceiveMemoryWarning {
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   124
    // Releases the view if it doesn't have a superview.
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   125
    [super didReceiveMemoryWarning];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   126
    // Release any cached data, images, etc that aren't in use.
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   127
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   128
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   129
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   130
-(void) viewDidUnload {
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   131
    NSLog(@"unloading");
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   132
    activeController = nil;
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   133
    mapConfigViewController = nil;
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   134
    teamConfigViewController = nil;
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   135
    self.availableTeamsTableView = nil;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   136
    self.weaponsButton = nil;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   137
    self.schemesButton = nil;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   138
    self.mapButton = nil;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   139
    self.randomButton = nil;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   140
    self.startButton = nil;
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   141
    [super viewDidUnload];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   142
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   143
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   144
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   145
-(void) dealloc {
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   146
    [activeController release];
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   147
    [mapConfigViewController release];
3361
cfc6cd502f85 buttons for number of hogs in game config
koda
parents: 3356
diff changeset
   148
    [teamConfigViewController release];
3356
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   149
    [availableTeamsTableView release];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   150
    [weaponsButton release];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   151
    [schemesButton release];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   152
    [mapButton release];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   153
    [randomButton release];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   154
    [startButton release];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   155
    [super dealloc];
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   156
}
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   157
3ae3fccb439e add missing controller stubs
koda
parents:
diff changeset
   158
@end