project_files/HedgewarsMobile/Classes/GameConfigViewController.m
author koda
Sat, 24 Sep 2011 02:23:15 +0200
changeset 6004 b92a6626b0e5
parent 6000 dbcebcd3d79f
child 6078 8c0cc07731e5
permissions -rw-r--r--
use a real button instead of a cellview in statspage
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"
5156
641abe679bf0 work in progress yet again (can run some games now)
koda
parents: 5002
diff changeset
    27
#import "GameInterfaceBridge.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
5666
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
    33
@synthesize imgContainer, helpPage, mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController, interfaceBridge;
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 {
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    54
                [AudioManagerController playBackSound];
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:
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    59
            [AudioManagerController playClickSound];
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:
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    64
            [AudioManagerController playClickSound];
3792
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
6000
dbcebcd3d79f ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro)
koda
parents: 5700
diff changeset
    82
    [AudioManagerController playSelectSound];
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
5455
df05cdb998ed add support for 'gameplay modes' on ios, renamed into 'style'; also colored in grey some segmented controls and moved some ui objects
koda
parents: 5208
diff changeset
   215
    NSString *script = self.mapConfigViewController.missionCommand;
df05cdb998ed add support for 'gameplay modes' on ios, renamed into 'style'; also colored in grey some segmented controls and moved some ui objects
koda
parents: 5208
diff changeset
   216
    if ([script isEqualToString:@""])
df05cdb998ed add support for 'gameplay modes' on ios, renamed into 'style'; also colored in grey some segmented controls and moved some ui objects
koda
parents: 5208
diff changeset
   217
        script = self.schemeWeaponConfigViewController.scriptCommand;
df05cdb998ed add support for 'gameplay modes' on ios, renamed into 'style'; also colored in grey some segmented controls and moved some ui objects
koda
parents: 5208
diff changeset
   218
3632
8e1bd8b5780e fix land check fo' real
koda
parents: 3630
diff changeset
   219
    // create the configuration file that is going to be sent to engine
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   220
    NSDictionary *gameDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   221
                                    self.mapConfigViewController.seedCommand,@"seed_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   222
                                    self.mapConfigViewController.templateFilterCommand,@"templatefilter_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   223
                                    self.mapConfigViewController.mapGenCommand,@"mapgen_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   224
                                    self.mapConfigViewController.mazeSizeCommand,@"mazesize_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   225
                                    self.mapConfigViewController.themeCommand,@"theme_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   226
                                    self.mapConfigViewController.staticMapCommand,@"staticmap_command",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   227
                                    self.teamConfigViewController.listOfSelectedTeams,@"teams_list",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   228
                                    self.schemeWeaponConfigViewController.selectedScheme,@"scheme",
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   229
                                    self.schemeWeaponConfigViewController.selectedWeapon,@"weapon",
5455
df05cdb998ed add support for 'gameplay modes' on ios, renamed into 'style'; also colored in grey some segmented controls and moved some ui objects
koda
parents: 5208
diff changeset
   230
                                    script,@"mission_command",
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   231
                                    nil];
3973
0d1a420531ef i fix up the new ammo menu finally
koda
parents: 3971
diff changeset
   232
5666
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   233
    if (self.interfaceBridge == nil) {
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   234
        GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self];
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   235
        self.interfaceBridge = bridge;
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   236
        [bridge release];
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   237
    }
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   238
    [self.interfaceBridge startLocalGame:gameDictionary];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   239
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   240
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   241
-(void) loadNiceHogs {
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   242
    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
   243
    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
   244
    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
   245
    
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   246
    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
   247
    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
   248
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   249
    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
   250
        [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
   251
    
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   252
    self.imgContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 40)];
3978
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   253
    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
   254
        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
   255
        
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   256
        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
   257
        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
   258
        [hatFile release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   259
        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
   260
        [hatSprite release];
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
        UIImageView *hog = [[UIImageView alloc] initWithImage:hogWithHat];
3978
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   263
        int x = 15*(i+1)+random()%40;
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   264
        if (x + 32 > 300)
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   265
            x = i*10;
9660600e43cb fix some glitches
koda
parents: 3973
diff changeset
   266
        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
   267
        [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
   268
        [hog release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   269
    }
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   270
    [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
   271
    [sprite release];
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   272
    [pool drain];
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
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   275
-(void) viewDidLoad {
3629
86212d2b116a redo spinning wheel, redo fix for detail selection, redo ammo quantity and name in ammomenu
koda
parents: 3626
diff changeset
   276
    self.view.backgroundColor = [UIColor blackColor];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   277
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   278
    CGRect screen = [[UIScreen mainScreen] bounds];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   279
    self.view.frame = CGRectMake(0, 0, screen.size.height, screen.size.width);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   280
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3984
diff changeset
   281
    if (IS_IPAD()) {
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   282
        // load other controllers
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   283
        if (self.mapConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   284
            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
   285
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   286
        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
   287
        [self.mapConfigViewController.view addSubview:leftBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   288
        [leftBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   289
        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
   290
        [self.mapConfigViewController.view addSubview:middleBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   291
        [middleBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   292
        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
   293
        [self.mapConfigViewController.view addSubview:rightBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   294
        [rightBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   295
        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
   296
        [self.mapConfigViewController.view addSubview:topBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   297
        [topBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   298
        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
   299
        [self.mapConfigViewController.view addSubview:bottomLeftBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   300
        [bottomLeftBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   301
        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
   302
        bottomRightBackground.font = [UIFont italicSystemFontOfSize:[UIFont labelFontSize]];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   303
        [self.mapConfigViewController.view addSubview:bottomRightBackground];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   304
        [bottomRightBackground release];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   305
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.maxLabel];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   306
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.sizeLabel];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   307
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.segmentedControl];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   308
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.previewButton];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   309
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.slider];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   310
        [self.mapConfigViewController.view bringSubviewToFront:self.mapConfigViewController.tableView];
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   311
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   312
        if (self.teamConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   313
            self.teamConfigViewController = [[TeamConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   314
        [self.mapConfigViewController.view addSubview:self.teamConfigViewController.view];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   315
        if (self.schemeWeaponConfigViewController == nil)
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   316
            self.schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   317
        [self.mapConfigViewController.view addSubview:schemeWeaponConfigViewController.view];
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   318
        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
   319
        self.teamConfigViewController.view.frame = CGRectMake(348, 200, 328, 480);
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   320
        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
   321
4362
8dae325dc625 added missing graphics and fixed some glitches/crashes/bugs
koda
parents: 4349
diff changeset
   322
        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
   323
    } 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
   324
        // 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
   325
        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
   326
            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
   327
        // 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
   328
        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
   329
        [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
   330
    }
3948
24daa33a3114 some rethinking of initial menu presentation and initial orientation (also merging images should be threadsafe now)
koda
parents: 3930
diff changeset
   331
    [self.view addSubview:self.mapConfigViewController.view];
4349
8efa91f98274 display an empty table for missions
koda
parents: 4150
diff changeset
   332
    self.mapConfigViewController.externalController = schemeWeaponConfigViewController;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   333
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   334
    [super viewDidLoad];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   335
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   336
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   337
-(void) viewWillAppear:(BOOL)animated {
3996
eb549fd864a5 the ios port is also iphone compatible
koda
parents: 3984
diff changeset
   338
    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
   339
        [NSThread detachNewThreadSelector:@selector(loadNiceHogs) toTarget:self withObject:nil];
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   340
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   341
    [self.mapConfigViewController viewWillAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   342
    [self.teamConfigViewController viewWillAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   343
    [self.schemeWeaponConfigViewController viewWillAppear:animated];
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   344
    // add other controllers here and below
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   345
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   346
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   347
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   348
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   349
-(void) viewDidAppear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   350
    [self.mapConfigViewController viewDidAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   351
    [self.teamConfigViewController viewDidAppear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   352
    [self.schemeWeaponConfigViewController viewDidAppear:animated];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   353
    [super viewDidAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   354
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   355
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   356
-(void) viewWillDisappear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   357
    [self.mapConfigViewController viewWillDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   358
    [self.teamConfigViewController viewWillDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   359
    [self.schemeWeaponConfigViewController viewWillDisappear:animated];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   360
    [super viewWillDisappear:animated];
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   361
}
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   362
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   363
-(void) viewDidDisappear:(BOOL)animated {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   364
    [self.mapConfigViewController viewDidDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   365
    [self.teamConfigViewController viewDidDisappear:animated];
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   366
    [self.schemeWeaponConfigViewController viewDidDisappear:animated];
3739
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   367
    [super viewDidDisappear:animated];
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   368
}
97cf933e5bd2 disable AI teleport
koda
parents: 3737
diff changeset
   369
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   370
-(void) didReceiveMemoryWarning {
3971
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   371
    if (self.teamConfigViewController.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   372
        self.teamConfigViewController = nil;
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   373
    if (self.schemeWeaponConfigViewController.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   374
        self.schemeWeaponConfigViewController = nil;
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   375
    if (self.helpPage.view.superview == nil)
5c82ee165ed5 minor stuff
koda
parents: 3948
diff changeset
   376
        self.helpPage = nil;
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   377
    if (self.mapConfigViewController.view.superview == nil)
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3978
diff changeset
   378
        self.mapConfigViewController = nil;
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   379
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   380
    self.imgContainer = nil;
5700
f0960a88ab0e savedgamesviewcontroller refactor, added icons to supportviewcontroller
koda
parents: 5699
diff changeset
   381
    // don't nil this one or it won't be able to send messages
5699
1a9a6a7662aa ios: respond more gracefully to didReceiveMemoryWarning and add sounds to two buttons
koda
parents: 5666
diff changeset
   382
    //self.interfaceBridge = nil;
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   383
    MSG_MEMCLEAN();
3778
2e61bb50cc57 add a nice group of hogs in lobby page
koda
parents: 3739
diff changeset
   384
    [super didReceiveMemoryWarning];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   385
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   386
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   387
-(void) viewDidUnload {
3923
694e6f6e0e30 various classes updates (new version in mainmenu, opt in mapconfig, clear all in savegames)
koda
parents: 3911
diff changeset
   388
    self.imgContainer = nil;
5666
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   389
    self.interfaceBridge = nil;
3930
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   390
    self.mapConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   391
    self.teamConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   392
    self.schemeWeaponConfigViewController = nil;
8b00b4f93242 remove a useless field from weaponfile format
koda
parents: 3926
diff changeset
   393
    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
   394
    MSG_DIDUNLOAD();
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   395
    [super viewDidUnload];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   396
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   397
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   398
-(void) dealloc {
5208
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 5158
diff changeset
   399
    releaseAndNil(imgContainer);
5666
cc79eb30346e this should fix the double free that happens when closing the sdl window on ios (untested)
koda
parents: 5455
diff changeset
   400
    releaseAndNil(interfaceBridge);
5208
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 5158
diff changeset
   401
    releaseAndNil(mapConfigViewController);
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 5158
diff changeset
   402
    releaseAndNil(teamConfigViewController);
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 5158
diff changeset
   403
    releaseAndNil(schemeWeaponConfigViewController);
878e551f0b4a all together now! releaseAndNil ftw
koda
parents: 5158
diff changeset
   404
    releaseAndNil(helpPage);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   405
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   406
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   407
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   408
@end