project_files/HedgewarsMobile/Classes/GameConfigViewController.m
author koda
Sat, 04 Dec 2010 08:52:57 +0100
changeset 4454 42bfc1a70968
parent 4362 8dae325dc625
child 4504 8906b2409d97
permissions -rw-r--r--
more retina support and multitasking support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     3
 * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    17
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    18
 * File created on 18/04/2010.
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    19
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3792
diff changeset
    20
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    21
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    22
#import "GameConfigViewController.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
#import "SDL_uikitappdelegate.h"
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
    24
#import "MapConfigViewController.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    25
#import "TeamConfigViewController.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
#import "SchemeWeaponConfigViewController.h"
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    27
#import "HelpPageViewController.h"
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    28
#import "CommodityFunctions.h"
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
    29
#import "UIImageExtra.h"
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3923
diff changeset
    30
#import "PascalImports.h"
3705
e1959819a542 completing the ifrontend interface...
koda
parents: 3703
diff changeset
    31
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
@implementation GameConfigViewController
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
    33
@synthesize imgContainer, helpPage, mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
    34
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    36
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
3616
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
    37
    return rotationManager(interfaceOrientation);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
    40
-(IBAction) buttonPressed:(id) sender {
4362
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
    41
    UIButton *theButton = (UIButton *)sender;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
    42
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    43
    switch (theButton.tag) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    44
        case 0:
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3780
diff changeset
    45
            playSound(@"backSound");
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
    46
            if ([self.mapConfigViewController busy]) {
3625
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    47
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Wait for the Preview",@"")
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    48
                                                                message:NSLocalizedString(@"Before returning the preview needs to be generated",@"")
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    49
                                                               delegate:nil
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    50
                                                      cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    51
                                                      otherButtonTitles:nil];
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    52
                [alert show];
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    53
                [alert release];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
    54
            } else
3625
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    55
                [[self parentViewController] dismissModalViewControllerAnimated:YES];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    56
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    57
        case 1:
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3780
diff changeset
    58
            playSound(@"clickSound");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    59
            theButton.enabled = NO;
3626
19f78afa0188 fix the multitouch shooting and moving
koda
parents: 3625
diff changeset
    60
            [self startGame:theButton];
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    61
            break;
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    62
        case 2:
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    63
            playSound(@"clickSound");
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    64
            if (self.helpPage == nil)
4144
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
    65
                self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPad" bundle:nil];
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    66
            self.helpPage.view.alpha = 0;
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    67
            [self.view addSubview:helpPage.view];
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    68
            [UIView beginAnimations:@"helplobby" context:NULL];
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    69
            self.helpPage.view.alpha = 1;
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    70
            [UIView commitAnimations];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    71
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    72
        default:
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    73
            DLog(@"Nope");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    74
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    75
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    76
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    77
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    78
-(IBAction) segmentPressed:(id) sender {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    79
    UISegmentedControl *theSegment = (UISegmentedControl *)sender;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    80
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3780
diff changeset
    81
    playSound(@"selSound");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    82
    switch (theSegment.selectedSegmentIndex) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    83
        case 0:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    84
            // this init here is just aestetic as this controller was already set up in viewDidLoad
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    85
            if (mapConfigViewController == nil) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    86
                mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil];
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    87
                [self.view addSubview:mapConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    88
            }
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    89
            // this message is compulsory otherwise the table won't be loaded at all
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    90
            [mapConfigViewController viewWillAppear:NO];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    91
            [self.view bringSubviewToFront:mapConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    92
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    93
        case 1:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    94
            if (teamConfigViewController == nil) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    95
                teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    96
                [self.view addSubview:teamConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    97
            }
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    98
            // this message is compulsory otherwise the table won't be loaded at all
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    99
            [teamConfigViewController viewWillAppear:NO];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   100
            [self.view bringSubviewToFront:teamConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   101
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   102
        case 2:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   103
            if (schemeWeaponConfigViewController == nil) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   104
                schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   105
                [self.view addSubview:schemeWeaponConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   106
            }
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   107
            // this message is compulsory otherwise the table won't be loaded at all
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   108
            [schemeWeaponConfigViewController viewWillAppear:NO];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   109
            [self.view bringSubviewToFront:schemeWeaponConfigViewController.view];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   110
            break;
4144
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   111
        case 3:
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   112
            if (helpPage == nil) {
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   113
                helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPhone" bundle:nil];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   114
                [self.view addSubview:helpPage.view];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   115
            }
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   116
            // this message is compulsory otherwise the table won't be loaded at all
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   117
            [helpPage viewWillAppear:NO];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   118
            [self.view bringSubviewToFront:helpPage.view];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   119
            break;
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   120
        default:
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   121
            DLog(@"Nope");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   122
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   124
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   125
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   126
-(BOOL) isEverythingSet {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   127
    // don't start playing if the preview is in progress
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   128
    if ([self.mapConfigViewController busy]) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   129
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Wait for the Preview",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
                                                        message:NSLocalizedString(@"Before playing the preview needs to be generated",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   131
                                                       delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   132
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   133
                                              otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   134
        [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   135
        [alert release];
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   136
        return NO;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   137
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   138
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   139
    // play only if there is more than one team
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   140
    if ([self.teamConfigViewController.listOfSelectedTeams count] < 2) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   141
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too few teams playing",@"")
3616
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
   142
                                                        message:NSLocalizedString(@"Select at least two teams to play a game",@"")
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   143
                                                       delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   144
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   145
                                              otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   146
        [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   147
        [alert release];
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   148
        return NO;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   149
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   150
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   151
    // play if there's room for enough hogs in the selected map
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   152
    int hogs = 0;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   153
    for (NSDictionary *teamData in teamConfigViewController.listOfSelectedTeams)
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   154
        hogs += [[teamData objectForKey:@"number"] intValue];
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   155
    if (hogs > self.mapConfigViewController.maxHogs) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   156
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many hogs",@"")
3616
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
   157
                                                        message:NSLocalizedString(@"The map is too small for that many hogs",@"")
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   158
                                                       delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   159
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   160
                                              otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   161
        [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   162
        [alert release];
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   163
        return NO;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   164
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   165
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   166
    // play if there aren't too many teams
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   167
    if ([self.teamConfigViewController.listOfSelectedTeams count] > HW_getMaxNumberOfTeams()) {
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   168
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many teams",@"")
4362
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   169
                                                        message:NSLocalizedString(@"You exceeded the maximum number of tems allowed in a game",@"")
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   170
                                                       delegate:nil
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   171
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   172
                                              otherButtonTitles:nil];
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   173
        [alert show];
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   174
        [alert release];
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   175
        return NO;
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   176
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   177
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   178
    // play only if one scheme and one weapon are selected
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   179
    if ([self.schemeWeaponConfigViewController.selectedScheme length] == 0 || [self.schemeWeaponConfigViewController.selectedWeapon length] == 0 ) {
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   180
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Missing detail",@"")
3616
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
   181
                                                        message:NSLocalizedString(@"Select one Scheme and one Weapon for this game",@"")
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   182
                                                       delegate:nil
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   183
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   184
                                              otherButtonTitles:nil];
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   185
        [alert show];
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   186
        [alert release];
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   187
        return NO;
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   188
    }
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   189
4349
8efa91f98274 display an empty table for missions
koda
parents: 4150
diff changeset
   190
    // play if the gameflags are set correctly (divideteam works only with 2 teams)
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   191
    NSString *schemePath = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),self.schemeWeaponConfigViewController.selectedScheme];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   192
    NSArray *gameFlags = [[NSDictionary dictionaryWithContentsOfFile:schemePath] objectForKey:@"gamemod"];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   193
    [schemePath release];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   194
    if ([[gameFlags objectAtIndex:2] boolValue] && [self.teamConfigViewController.listOfSelectedTeams count] != 2) {
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   195
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Scheme mismatch",@"")
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   196
                                                        message:NSLocalizedString(@"The scheme you selected allows only for two teams",@"")
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   197
                                                       delegate:nil
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   198
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   199
                                              otherButtonTitles:nil];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   200
        [alert show];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   201
        [alert release];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   202
        return NO;
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   203
    }
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   204
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   205
    return YES;
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   206
}
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   207
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   208
-(void) startGame:(UIButton *)button {
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   209
    button.enabled = YES;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   210
    
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   211
    if ([self isEverythingSet] == NO)
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   212
        return;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   213
3632
8e1bd8b5780e fix land check fo' real
koda
parents: 3630
diff changeset
   214
    // create the configuration file that is going to be sent to engine
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   215
    NSDictionary *gameDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   216
                                    self.mapConfigViewController.seedCommand,@"seed_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   217
                                    self.mapConfigViewController.templateFilterCommand,@"templatefilter_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   218
                                    self.mapConfigViewController.mapGenCommand,@"mapgen_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   219
                                    self.mapConfigViewController.mazeSizeCommand,@"mazesize_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   220
                                    self.mapConfigViewController.themeCommand,@"theme_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   221
                                    self.mapConfigViewController.staticMapCommand,@"staticmap_command",
3973
0d1a420531ef i fix up the new ammo menu finally
koda
parents: 3971
diff changeset
   222
                                    self.mapConfigViewController.missionCommand,@"mission_command",
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   223
                                    self.teamConfigViewController.listOfSelectedTeams,@"teams_list",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   224
                                    self.schemeWeaponConfigViewController.selectedScheme,@"scheme",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   225
                                    self.schemeWeaponConfigViewController.selectedWeapon,@"weapon",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   226
                                    [NSNumber numberWithInt:self.interfaceOrientation],@"orientation",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   227
                                    nil];
3973
0d1a420531ef i fix up the new ammo menu finally
koda
parents: 3971
diff changeset
   228
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   229
    // finally launch game and remove this controller
3629
86212d2b116a redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents: 3626
diff changeset
   230
    DLog(@"sending config %@", gameDictionary);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   231
4362
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   232
    NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:gameDictionary,@"game_dictionary", @"",@"savefile",
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   233
                                      [NSNumber numberWithBool:NO],@"netgame", nil];
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   234
    if (IS_IPAD())
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   235
        [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   236
    else {
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   237
        // this causes a sporadic crash on the ipad but without this rotation doesn't work on iphone
3984
d92509c2f255 some more memory opt
koda
parents: 3983
diff changeset
   238
        UIViewController *dummy = [[UIViewController alloc] init];
d92509c2f255 some more memory opt
koda
parents: 3983
diff changeset
   239
        [self presentModalViewController:dummy animated:NO];
3893
568bfd083465 allow more flexibility between viewcontrollers, also added stub pages for saved games
koda
parents: 3881
diff changeset
   240
        [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
3984
d92509c2f255 some more memory opt
koda
parents: 3983
diff changeset
   241
        [self dismissModalViewControllerAnimated:NO];
d92509c2f255 some more memory opt
koda
parents: 3983
diff changeset
   242
        [dummy release];
3630
2c7a9d5aa18c fix static land loading on desktop
koda
parents: 3629
diff changeset
   243
    }
3629
86212d2b116a redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents: 3626
diff changeset
   244
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   245
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   246
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   247
-(void) loadNiceHogs {
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   248
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   249
    NSString *filePath = [NSString stringWithFormat:@"%@/Hedgehog.png",GRAPHICS_DIRECTORY()];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   250
    UIImage *sprite = [[UIImage alloc] initWithContentsOfFile:filePath andCutAt:CGRectMake(96, 0, 32, 32)];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   251
    
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   252
    NSArray *hatArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:HATS_DIRECTORY() error:NULL];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   253
    int numberOfHats = [hatArray count];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   254
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   255
    if (self.imgContainer != nil)
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   256
        [self.imgContainer removeFromSuperview];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   257
    
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   258
    self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
3978
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   259
    for (int i = 0; i < 1 + random()%20; i++) {
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   260
        NSString *hat = [hatArray objectAtIndex:random()%numberOfHats];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   261
        
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   262
        NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@", HATS_DIRECTORY(), hat];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   263
        UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile: hatFile andCutAt:CGRectMake(0, 0, 32, 32)];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   264
        [hatFile release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   265
        UIImage *hogWithHat = [sprite mergeWith:hatSprite atPoint:CGPointMake(0, 5)];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   266
        [hatSprite release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   267
        
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   268
        UIImageView *hog = [[UIImageView alloc] initWithImage:hogWithHat];
3978
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   269
        int x = 15*(i+1)+random()%40;
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   270
        if (x + 32 > 300)
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   271
            x = i*10;
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   272
        hog.frame = CGRectMake(x, 30, 32, 32);
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   273
        [self.imgContainer addSubview:hog];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   274
        [hog release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   275
    }
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   276
    [self.view addSubview:self.imgContainer];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   277
    [sprite release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   278
    [pool drain];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   279
}
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   280
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   281
-(void) viewDidLoad {
3629
86212d2b116a redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents: 3626
diff changeset
   282
    self.view.backgroundColor = [UIColor blackColor];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   283
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   284
    CGRect screen = [[UIScreen mainScreen] bounds];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   285
    self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   286
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3984
diff changeset
   287
    if (IS_IPAD()) {
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   288
        // load other controllers
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   289
        if (self.mapConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   290
            self.mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPad" bundle:nil];
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   291
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   292
        UILabel *leftBackground = createLabelWithParams(nil, CGRectMake(0, 60, 320, 620), 2.7f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   293
        [self.mapConfigViewController.view addSubview:leftBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   294
        [leftBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   295
        UILabel *middleBackground = createLabelWithParams(nil, CGRectMake(337, 187, 350, 505), 2.7f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   296
        [self.mapConfigViewController.view addSubview:middleBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   297
        [middleBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   298
        UILabel *rightBackground = createLabelWithParams(nil, CGRectMake(704, 214, 320, 464), 2.7f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   299
        [self.mapConfigViewController.view addSubview:rightBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   300
        [rightBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   301
        UILabel *topBackground = createLabelWithParams(nil, CGRectMake(714, 14, 300, 190), 2.3f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   302
        [self.mapConfigViewController.view addSubview:topBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   303
        [topBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   304
        UILabel *bottomLeftBackground = createLabelWithParams(nil, CGRectMake(106, 714, 320, 40), 2.0f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   305
        [self.mapConfigViewController.view addSubview:bottomLeftBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   306
        [bottomLeftBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   307
        UILabel *bottomRightBackground = createLabelWithParams(NSLocalizedString(@"Max Hogs:                 ",@""), CGRectMake(594, 714, 320, 40), 2.0f, UICOLOR_HW_YELLOW_BODER, UICOLOR_HW_ALPHABLUE);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   308
        bottomRightBackground.font = [UIFont italicSystemFontOfSize:[UIFont labelFontSize]];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   309
        [self.mapConfigViewController.view addSubview:bottomRightBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   310
        [bottomRightBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   311
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.maxLabel];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   312
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.sizeLabel];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   313
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.segmentedControl];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   314
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.previewButton];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   315
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.slider];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   316
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.tableView];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   317
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   318
        if (self.teamConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   319
            self.teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   320
        [self.mapConfigViewController.view addSubview:self.teamConfigViewController.view];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   321
        if (self.schemeWeaponConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   322
            self.schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   323
        [self.mapConfigViewController.view addSubview:schemeWeaponConfigViewController.view];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   324
        self.mapConfigViewController.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   325
        self.teamConfigViewController.view.frame = CGRectMake(348, 200, 328, 480);
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   326
        self.schemeWeaponConfigViewController.view.frame = CGRectMake(10, 70, 300, 600);
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   327
4362
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   328
        self.mapConfigViewController.parentController = self;
3616
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
   329
    } else {
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
   330
        // this is the visible controller
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   331
        if (self.mapConfigViewController == nil)
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   332
            self.mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   333
        // this must be loaded & added in order to auto set default scheme and ammo
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   334
        self.schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   335
        [self.view addSubview:self.schemeWeaponConfigViewController.view];
3616
85d69ddb41b6 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page)
koda
parents: 3548
diff changeset
   336
    }
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   337
    [self.view addSubview:self.mapConfigViewController.view];
4349
8efa91f98274 display an empty table for missions
koda
parents: 4150
diff changeset
   338
    self.mapConfigViewController.externalController = schemeWeaponConfigViewController;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   339
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   340
    [super viewDidLoad];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   341
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   342
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   343
-(void) viewWillAppear:(BOOL)animated {
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3984
diff changeset
   344
    if (IS_IPAD())
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   345
        [NSThread detachNewThreadSelector:@selector(loadNiceHogs) toTarget:self withObject:nil];
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   346
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   347
    [self.mapConfigViewController viewWillAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   348
    [self.teamConfigViewController viewWillAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   349
    [self.schemeWeaponConfigViewController viewWillAppear:animated];
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   350
    // add other controllers here and below
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   351
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   352
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   353
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   354
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   355
-(void) viewDidAppear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   356
    [self.mapConfigViewController viewDidAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   357
    [self.teamConfigViewController viewDidAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   358
    [self.schemeWeaponConfigViewController viewDidAppear:animated];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   359
    [super viewDidAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   360
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   361
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   362
-(void) viewWillDisappear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   363
    [self.mapConfigViewController viewWillDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   364
    [self.teamConfigViewController viewWillDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   365
    [self.schemeWeaponConfigViewController viewWillDisappear:animated];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   366
    [super viewWillDisappear:animated];
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   367
}
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   368
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   369
-(void) viewDidDisappear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   370
    [self.mapConfigViewController viewDidDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   371
    [self.teamConfigViewController viewDidDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   372
    [self.schemeWeaponConfigViewController viewDidDisappear:animated];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   373
    [super viewDidDisappear:animated];
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   374
}
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   375
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   376
-(void) didReceiveMemoryWarning {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   377
    if (self.teamConfigViewController.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   378
        self.teamConfigViewController = nil;
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   379
    if (self.schemeWeaponConfigViewController.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   380
        self.schemeWeaponConfigViewController = nil;
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   381
    if (self.helpPage.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   382
        self.helpPage = nil;
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   383
    if (self.mapConfigViewController.view.superview == nil)
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   384
        self.mapConfigViewController = nil;
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   385
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   386
    self.imgContainer = nil;
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   387
    MSG_MEMCLEAN();
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   388
    [super didReceiveMemoryWarning];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   389
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   390
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   391
-(void) viewDidUnload {
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   392
    self.imgContainer = nil;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   393
    self.mapConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   394
    self.teamConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   395
    self.schemeWeaponConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   396
    self.helpPage = nil;
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3661
diff changeset
   397
    MSG_DIDUNLOAD();
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   398
    [super viewDidUnload];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   399
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   400
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   401
-(void) dealloc {
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   402
    [imgContainer release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   403
    [mapConfigViewController release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   404
    [teamConfigViewController release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   405
    [schemeWeaponConfigViewController release];
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   406
    [helpPage release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   407
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   408
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   409
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   410
@end