project_files/HedgewarsMobile/Classes/GameConfigViewController.m
author koda
Sun, 17 Apr 2011 22:38:24 +0200
changeset 5155 f2165724605c
parent 5002 a9c44a8ffec8
child 5156 641abe679bf0
permissions -rw-r--r--
more refactoring, less warnings, less stuff kept around
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
4976
088d40d8aba2 Happy 2011 :)
koda
parents: 4912
diff changeset
     3
 * Copyright (c) 2009-2011 Vittorio Giovara <vittorio.giovara@gmail.com>
3829
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"
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
    23
#import "MapConfigViewController.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    24
#import "TeamConfigViewController.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    25
#import "SchemeWeaponConfigViewController.h"
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    26
#import "HelpPageViewController.h"
4757
7ca9ebb6895d initial stats display
koda
parents: 4754
diff changeset
    27
#import "StatsPageViewController.h"
3792
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:
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
    45
            if ([self.mapConfigViewController busy]) {
3625
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    46
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Wait for the Preview",@"")
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    47
                                                                message:NSLocalizedString(@"Before returning the preview needs to be generated",@"")
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    48
                                                               delegate:nil
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    49
                                                      cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    50
                                                      otherButtonTitles:nil];
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    51
                [alert show];
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    52
                [alert release];
4861
91f889289a47 (ios) perform a small change about how to close the game window, should hopefully save memory and avoid crashes (who am i kidding? that's the usual PR talk...)
koda
parents: 4856
diff changeset
    53
            } else {
91f889289a47 (ios) perform a small change about how to close the game window, should hopefully save memory and avoid crashes (who am i kidding? that's the usual PR talk...)
koda
parents: 4856
diff changeset
    54
                playSound(@"backSound");
3625
9f1d79e01a60 icons \o/
koda
parents: 3623
diff changeset
    55
                [[self parentViewController] dismissModalViewControllerAnimated:YES];
4861
91f889289a47 (ios) perform a small change about how to close the game window, should hopefully save memory and avoid crashes (who am i kidding? that's the usual PR talk...)
koda
parents: 4856
diff changeset
    56
            }
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    57
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    58
        case 1:
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3780
diff changeset
    59
            playSound(@"clickSound");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    60
            theButton.enabled = NO;
3626
19f78afa0188 fix the multitouch shooting and moving
koda
parents: 3625
diff changeset
    61
            [self startGame:theButton];
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    62
            break;
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    63
        case 2:
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    64
            playSound(@"clickSound");
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    65
            if (self.helpPage == nil)
4144
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
    66
                self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPad" bundle:nil];
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    67
            self.helpPage.view.alpha = 0;
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    68
            [self.view addSubview:helpPage.view];
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    69
            [UIView beginAnimations:@"helplobby" context:NULL];
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    70
            self.helpPage.view.alpha = 1;
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    71
            [UIView commitAnimations];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    72
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    73
        default:
3792
dd9345e74b66 help page for lobby
koda
parents: 3783
diff changeset
    74
            DLog(@"Nope");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    75
            break;
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
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    79
-(IBAction) segmentPressed:(id) sender {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    80
    UISegmentedControl *theSegment = (UISegmentedControl *)sender;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    81
3783
8e9daf967406 X&Y buttons, sounds for some buttons, cleanup
koda
parents: 3780
diff changeset
    82
    playSound(@"selSound");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    83
    switch (theSegment.selectedSegmentIndex) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    84
        case 0:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    85
            // this init here is just aestetic as this controller was already set up in viewDidLoad
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    86
            if (mapConfigViewController == nil) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    87
                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
    88
                [self.view addSubview:mapConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    89
            }
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    90
            // 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
    91
            [mapConfigViewController viewWillAppear:NO];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    92
            [self.view bringSubviewToFront:mapConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    93
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    94
        case 1:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    95
            if (teamConfigViewController == nil) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    96
                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
    97
                [self.view addSubview:teamConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    98
            }
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
    99
            // 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
   100
            [teamConfigViewController viewWillAppear:NO];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   101
            [self.view bringSubviewToFront:teamConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   102
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   103
        case 2:
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   104
            if (schemeWeaponConfigViewController == nil) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   105
                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
   106
                [self.view addSubview:schemeWeaponConfigViewController.view];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   107
            }
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   108
            // 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
   109
            [schemeWeaponConfigViewController viewWillAppear:NO];
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   110
            [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
   111
            break;
4144
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   112
        case 3:
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   113
            if (helpPage == nil) {
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   114
                helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPhone" bundle:nil];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   115
                [self.view addSubview:helpPage.view];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   116
            }
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   117
            // this message is compulsory otherwise the table won't be loaded at all
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   118
            [helpPage viewWillAppear:NO];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   119
            [self.view bringSubviewToFront:helpPage.view];
cda2685feeb4 help pages for iphone
koda
parents: 3996
diff changeset
   120
            break;
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   121
        default:
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   122
            DLog(@"Nope");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
            break;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   124
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   125
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   126
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   127
-(BOOL) isEverythingSet {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   128
    // don't start playing if the preview is in progress
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   129
    if ([self.mapConfigViewController busy]) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Wait for the Preview",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   131
                                                        message:NSLocalizedString(@"Before playing the preview needs to be generated",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   132
                                                       delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   133
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   134
                                              otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   135
        [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   136
        [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
   137
        return NO;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   138
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   139
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   140
    // play only if there is more than one team
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   141
    if ([self.teamConfigViewController.listOfSelectedTeams count] < 2) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   142
        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
   143
                                                        message:NSLocalizedString(@"Select at least two teams to play a game",@"")
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   144
                                                       delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   145
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   146
                                              otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   147
        [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   148
        [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
   149
        return NO;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   150
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   151
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   152
    // play if there's room for enough hogs in the selected map
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   153
    int hogs = 0;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   154
    for (NSDictionary *teamData in teamConfigViewController.listOfSelectedTeams)
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   155
        hogs += [[teamData objectForKey:@"number"] intValue];
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   156
    if (hogs > self.mapConfigViewController.maxHogs) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   157
        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
   158
                                                        message:NSLocalizedString(@"The map is too small for that many hogs",@"")
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   159
                                                       delegate:nil
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   160
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   161
                                              otherButtonTitles:nil];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   162
        [alert show];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   163
        [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
   164
        return NO;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   165
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   166
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   167
    // play if there aren't too many teams
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   168
    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
   169
        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
   170
                                                        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
   171
                                                       delegate:nil
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   172
                                              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
   173
                                              otherButtonTitles:nil];
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   174
        [alert show];
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   175
        [alert release];
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   176
        return NO;
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   177
    }
4150
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   178
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   179
    // play only if one scheme and one weapon are selected
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   180
    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
   181
        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
   182
                                                        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
   183
                                                       delegate:nil
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   184
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   185
                                              otherButtonTitles:nil];
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   186
        [alert show];
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   187
        [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
   188
        return NO;
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   189
    }
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   190
4349
8efa91f98274 display an empty table for missions
koda
parents: 4150
diff changeset
   191
    // 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
   192
    NSString *schemePath = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),self.schemeWeaponConfigViewController.selectedScheme];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   193
    NSArray *gameFlags = [[NSDictionary dictionaryWithContentsOfFile:schemePath] objectForKey:@"gamemod"];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   194
    [schemePath release];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   195
    if ([[gameFlags objectAtIndex:2] boolValue] && [self.teamConfigViewController.listOfSelectedTeams count] != 2) {
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   196
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Scheme mismatch",@"")
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   197
                                                        message:NSLocalizedString(@"The scheme you selected allows only for two teams",@"")
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   198
                                                       delegate:nil
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   199
                                              cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   200
                                              otherButtonTitles:nil];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   201
        [alert show];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   202
        [alert release];
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   203
        return NO;
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   204
    }
050163c35c83 perform an additional check on gamestart
koda
parents: 4144
diff changeset
   205
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   206
    return YES;
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
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   209
-(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
   210
    button.enabled = YES;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   211
    
3881
e570268a9d52 re-add City theme with the UpdateDataFolder script (and revert changes made to the flake sprite)
koda
parents: 3829
diff changeset
   212
    if ([self isEverythingSet] == NO)
3548
4d220ee7c75f server somewhat simplified and correct sporadic crasher
koda
parents: 3547
diff changeset
   213
        return;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   214
3632
8e1bd8b5780e fix land check fo' real
koda
parents: 3630
diff changeset
   215
    // create the configuration file that is going to be sent to engine
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   216
    NSDictionary *gameDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   217
                                    self.mapConfigViewController.seedCommand,@"seed_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   218
                                    self.mapConfigViewController.templateFilterCommand,@"templatefilter_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   219
                                    self.mapConfigViewController.mapGenCommand,@"mapgen_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   220
                                    self.mapConfigViewController.mazeSizeCommand,@"mazesize_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   221
                                    self.mapConfigViewController.themeCommand,@"theme_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   222
                                    self.mapConfigViewController.staticMapCommand,@"staticmap_command",
3973
0d1a420531ef i fix up the new ammo menu finally
koda
parents: 3971
diff changeset
   223
                                    self.mapConfigViewController.missionCommand,@"mission_command",
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   224
                                    self.teamConfigViewController.listOfSelectedTeams,@"teams_list",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   225
                                    self.schemeWeaponConfigViewController.selectedScheme,@"scheme",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   226
                                    self.schemeWeaponConfigViewController.selectedWeapon,@"weapon",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   227
                                    [NSNumber numberWithInt:self.interfaceOrientation],@"orientation",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   228
                                    nil];
3973
0d1a420531ef i fix up the new ammo menu finally
koda
parents: 3971
diff changeset
   229
4757
7ca9ebb6895d initial stats display
koda
parents: 4754
diff changeset
   230
    NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:
7ca9ebb6895d initial stats display
koda
parents: 4754
diff changeset
   231
                                      gameDictionary,@"game_dictionary",
7ca9ebb6895d initial stats display
koda
parents: 4754
diff changeset
   232
                                      [NSNumber numberWithBool:NO],@"netgame",
4754
a0fd8211c00f moar code cleanup and initial saving of stats
koda
parents: 4504
diff changeset
   233
                                      @"",@"savefile",
a0fd8211c00f moar code cleanup and initial saving of stats
koda
parents: 4504
diff changeset
   234
                                      nil];
4763
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   235
4861
91f889289a47 (ios) perform a small change about how to close the game window, should hopefully save memory and avoid crashes (who am i kidding? that's the usual PR talk...)
koda
parents: 4856
diff changeset
   236
    // also modify SavedGamesViewController.m
4763
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   237
    StatsPageViewController *statsPage = [[StatsPageViewController alloc] initWithStyle:UITableViewStyleGrouped];
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   238
    statsPage.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   239
    if ([statsPage respondsToSelector:@selector(setModalPresentationStyle:)])
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   240
        statsPage.modalPresentationStyle = UIModalPresentationPageSheet;
4757
7ca9ebb6895d initial stats display
koda
parents: 4754
diff changeset
   241
4912
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   242
    NSArray *stats;
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   243
    if (IS_DUALHEAD()) {
5002
a9c44a8ffec8 we get our own AppDelegate, subclassing SDL_UikitAppDelegate so that we don't have to mess with sdl build system
koda
parents: 4976
diff changeset
   244
        stats = [[HedgewarsAppDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
4912
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   245
        [self presentModalViewController:statsPage animated:NO];
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   246
    } else {
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   247
        [self performSelector:@selector(presentModalViewController:animated:) withObject:statsPage afterDelay:3];
5002
a9c44a8ffec8 we get our own AppDelegate, subclassing SDL_UikitAppDelegate so that we don't have to mess with sdl build system
koda
parents: 4976
diff changeset
   248
        stats = [[HedgewarsAppDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
4912
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   249
    }
862b134284b2 change order of statspage/gamerun when running in dual screen
koda
parents: 4861
diff changeset
   250
4856
dbc256913b35 implemented ranking in ios stats pages
koda
parents: 4763
diff changeset
   251
    if ([stats count] <= 1) {
dbc256913b35 implemented ranking in ios stats pages
koda
parents: 4763
diff changeset
   252
        DLog(@"%@",stats);
4763
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   253
        [statsPage dismissModalViewControllerAnimated:NO];
4856
dbc256913b35 implemented ranking in ios stats pages
koda
parents: 4763
diff changeset
   254
    } else {
4763
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   255
        statsPage.statsArray = stats;
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   256
        [statsPage.tableView reloadData];
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   257
        [statsPage viewWillAppear:YES];
3630
2c7a9d5aa18c fix static land loading on desktop
koda
parents: 3629
diff changeset
   258
    }
3629
86212d2b116a redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents: 3626
diff changeset
   259
4763
c228a4841e3f unify stats display on ipad and non-ipad and on saved and normal games
koda
parents: 4760
diff changeset
   260
    [statsPage release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   261
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   262
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   263
-(void) loadNiceHogs {
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   264
    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
   265
    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
   266
    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
   267
    
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   268
    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
   269
    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
   270
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   271
    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
   272
        [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
   273
    
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   274
    self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
3978
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   275
    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
   276
        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
   277
        
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   278
        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
   279
        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
   280
        [hatFile release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   281
        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
   282
        [hatSprite release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   283
        
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   284
        UIImageView *hog = [[UIImageView alloc] initWithImage:hogWithHat];
3978
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   285
        int x = 15*(i+1)+random()%40;
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   286
        if (x + 32 > 300)
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   287
            x = i*10;
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   288
        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
   289
        [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
   290
        [hog release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   291
    }
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   292
    [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
   293
    [sprite release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   294
    [pool drain];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   295
}
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   296
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   297
-(void) viewDidLoad {
3629
86212d2b116a redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents: 3626
diff changeset
   298
    self.view.backgroundColor = [UIColor blackColor];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   299
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   300
    CGRect screen = [[UIScreen mainScreen] bounds];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   301
    self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   302
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3984
diff changeset
   303
    if (IS_IPAD()) {
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   304
        // load other controllers
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   305
        if (self.mapConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   306
            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
   307
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   308
        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
   309
        [self.mapConfigViewController.view addSubview:leftBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   310
        [leftBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   311
        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
   312
        [self.mapConfigViewController.view addSubview:middleBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   313
        [middleBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   314
        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
   315
        [self.mapConfigViewController.view addSubview:rightBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   316
        [rightBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   317
        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
   318
        [self.mapConfigViewController.view addSubview:topBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   319
        [topBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   320
        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
   321
        [self.mapConfigViewController.view addSubview:bottomLeftBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   322
        [bottomLeftBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   323
        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
   324
        bottomRightBackground.font = [UIFont italicSystemFontOfSize:[UIFont labelFontSize]];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   325
        [self.mapConfigViewController.view addSubview:bottomRightBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   326
        [bottomRightBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   327
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.maxLabel];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   328
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.sizeLabel];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   329
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.segmentedControl];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   330
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.previewButton];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   331
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.slider];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   332
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.tableView];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   333
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   334
        if (self.teamConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   335
            self.teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   336
        [self.mapConfigViewController.view addSubview:self.teamConfigViewController.view];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   337
        if (self.schemeWeaponConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   338
            self.schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   339
        [self.mapConfigViewController.view addSubview:schemeWeaponConfigViewController.view];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   340
        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
   341
        self.teamConfigViewController.view.frame = CGRectMake(348, 200, 328, 480);
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   342
        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
   343
4362
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   344
        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
   345
    } 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
   346
        // 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
   347
        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
   348
            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
   349
        // 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
   350
        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
   351
        [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
   352
    }
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   353
    [self.view addSubview:self.mapConfigViewController.view];
4349
8efa91f98274 display an empty table for missions
koda
parents: 4150
diff changeset
   354
    self.mapConfigViewController.externalController = schemeWeaponConfigViewController;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   355
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   356
    [super viewDidLoad];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   357
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   358
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   359
-(void) viewWillAppear:(BOOL)animated {
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3984
diff changeset
   360
    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
   361
        [NSThread detachNewThreadSelector:@selector(loadNiceHogs) toTarget:self withObject:nil];
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   362
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   363
    [self.mapConfigViewController viewWillAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   364
    [self.teamConfigViewController viewWillAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   365
    [self.schemeWeaponConfigViewController viewWillAppear:animated];
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   366
    // add other controllers here and below
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   367
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   368
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   369
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   370
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   371
-(void) viewDidAppear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   372
    [self.mapConfigViewController viewDidAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   373
    [self.teamConfigViewController viewDidAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   374
    [self.schemeWeaponConfigViewController viewDidAppear:animated];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   375
    [super viewDidAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   376
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   377
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   378
-(void) viewWillDisappear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   379
    [self.mapConfigViewController viewWillDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   380
    [self.teamConfigViewController viewWillDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   381
    [self.schemeWeaponConfigViewController viewWillDisappear:animated];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   382
    [super viewWillDisappear:animated];
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   383
}
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   384
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   385
-(void) viewDidDisappear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   386
    [self.mapConfigViewController viewDidDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   387
    [self.teamConfigViewController viewDidDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   388
    [self.schemeWeaponConfigViewController viewDidDisappear:animated];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   389
    [super viewDidDisappear:animated];
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   390
}
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   391
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   392
-(void) didReceiveMemoryWarning {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   393
    if (self.teamConfigViewController.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   394
        self.teamConfigViewController = nil;
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   395
    if (self.schemeWeaponConfigViewController.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   396
        self.schemeWeaponConfigViewController = nil;
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   397
    if (self.helpPage.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   398
        self.helpPage = nil;
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   399
    if (self.mapConfigViewController.view.superview == nil)
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   400
        self.mapConfigViewController = nil;
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   401
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   402
    self.imgContainer = nil;
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   403
    MSG_MEMCLEAN();
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   404
    [super didReceiveMemoryWarning];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   405
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   406
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   407
-(void) viewDidUnload {
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   408
    self.imgContainer = nil;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   409
    self.mapConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   410
    self.teamConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   411
    self.schemeWeaponConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   412
    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
   413
    MSG_DIDUNLOAD();
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   414
    [super viewDidUnload];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   415
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   416
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   417
-(void) dealloc {
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   418
    [imgContainer release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   419
    [mapConfigViewController release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   420
    [teamConfigViewController release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   421
    [schemeWeaponConfigViewController release];
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   422
    [helpPage release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   423
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   424
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   425
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   426
@end