project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m
author nemo
Sat, 04 Dec 2010 11:30:54 -0500
changeset 4455 a0c8779713f2
parent 4356 d1d26f8963a3
child 4476 4bf74e158f44
permissions -rw-r--r--
In AI survival mode, have the AI score when it kills humans, instead of its own team, clear poison on an AI kill, and reset AI health using InitialHealth instead of 100.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     3
 * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3782
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: 3782
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    17
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    18
 * File created on 13/06/2010.
81db3c85784b headers ftw, also right project file
koda
parents: 3782
diff changeset
    19
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3782
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 "SchemeWeaponConfigViewController.h"
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    23
#import "CommodityFunctions.h"
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    24
#import "SDL_uikitappdelegate.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    25
4349
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
    26
#define LABEL_TAG 57423
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
    27
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    28
@implementation SchemeWeaponConfigViewController
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
    29
@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon, syncSwitch;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    30
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    31
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
    return rotationManager(interfaceOrientation);
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    36
#pragma mark View lifecycle
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    37
-(void) viewDidLoad {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    38
    [super viewDidLoad];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    39
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    40
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    41
    self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44);
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    42
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    43
    self.selectedScheme = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    44
    self.selectedWeapon = nil;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    45
4244
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    46
    if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    47
        if (IS_IPAD())
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    48
            [self.tableView setBackgroundView:nil];
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    49
        else {
4356
d1d26f8963a3 update some files for new graphics and new ios4.2
koda
parents: 4349
diff changeset
    50
            UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"background~iphone.png"];
4244
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    51
            UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    52
            [backgroundImage release];
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    53
            [self.tableView setBackgroundView:background];
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    54
            [background release];
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    55
        }
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    56
    } else {
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    57
        self.view.backgroundColor = [UIColor blackColor];
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    58
    }
bf46b4bdf27d iphone interface
koda
parents: 4115
diff changeset
    59
3917
4c243b1eac97 playing a bit with colors
koda
parents: 3829
diff changeset
    60
    self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3619
diff changeset
    61
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    62
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    63
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    64
-(void) viewWillAppear:(BOOL) animated {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    65
    [super viewWillAppear:animated];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    66
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    67
    NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    68
    self.listOfSchemes = contentsOfDir;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    69
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    70
    if (self.selectedScheme == nil && [listOfSchemes containsObject:@"Default.plist"])
3952
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    71
        self.selectedScheme = @"Default.plist";
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    72
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    73
    contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    74
    self.listOfWeapons = contentsOfDir;
3952
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    75
    
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
    76
    if (self.selectedWeapon == nil && [listOfWeapons containsObject:@"Default.plist"])
3952
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    77
        self.selectedWeapon = @"Default.plist";
d6412423da45 moved some utilities to a separate column with round buttons
koda
parents: 3917
diff changeset
    78
    
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    79
    [self.tableView reloadData];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    80
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    81
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    82
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    83
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    84
#pragma mark Table view data source
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    85
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
4349
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
    86
    if (hideSections)
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
    87
        return 0;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
    88
    else
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
    89
        return 3;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    90
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    91
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    92
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
    93
    if (section == 0)
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    94
        return [self.listOfSchemes count];
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
    95
    else if (section == 1)
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
    96
        return [self.listOfWeapons count];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    97
    else
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
    98
        return 1;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    99
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   100
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   101
// Customize the appearance of table view cells.
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   102
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   103
    static NSString *CellIdentifier = @"Cell";
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   104
    NSInteger row = [indexPath row];
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   105
    NSInteger section = [indexPath section];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   106
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   107
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
3781
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3780
diff changeset
   108
    if (cell == nil)
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3780
diff changeset
   109
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   110
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   111
    cell.accessoryView = nil;
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   112
    if (0 == section) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   113
        cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   114
        NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   115
        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   116
        cell.detailTextLabel.text = [dict objectForKey:@"description"];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   117
        [dict release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   118
        if ([[self.listOfSchemes objectAtIndex:row] isEqualToString:self.selectedScheme]) {
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   119
            UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   120
            cell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   121
            [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   122
            self.lastIndexPath_sc = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
        }
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   124
    } else if (1 == section) {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   125
        cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   126
        NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   127
        NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   128
        cell.detailTextLabel.text = [dict objectForKey:@"description"];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3781
diff changeset
   129
        [dict release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
        if ([[self.listOfWeapons objectAtIndex:row] isEqualToString:self.selectedWeapon]) {
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   131
            UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   132
            cell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   133
            [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   134
            self.lastIndexPath_we = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   135
        }
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   136
    } else {
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   137
        if (self.syncSwitch == nil) {
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   138
            UISwitch *theSwitch = [[UISwitch alloc] init];
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   139
            [theSwitch setOn:YES];
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   140
            self.syncSwitch = theSwitch;
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   141
            [theSwitch release];
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   142
        }
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   143
        cell.textLabel.text = IS_IPAD() ? NSLocalizedString(@"Sync Schemes",@"") : NSLocalizedString(@"Sync Schemes and Weapons",@"");
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   144
        cell.detailTextLabel.text = IS_IPAD() ? nil : NSLocalizedString(@"Choosing a Scheme will select its associated Weapon",@"");
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   145
        cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   146
        cell.accessoryView = self.syncSwitch;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   147
    }
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   148
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   149
    cell.backgroundColor = [UIColor blackColor];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   150
    cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
3781
2bfda544ae48 modified file format for schemes files (which is going to introduce a lot of pre-release bugs, i'm sure)
koda
parents: 3780
diff changeset
   151
    cell.detailTextLabel.textColor = [UIColor whiteColor];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   152
    return cell;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   153
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   154
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   155
-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   156
    return 40.0;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   157
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   158
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   159
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3971
diff changeset
   160
    CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3971
diff changeset
   161
    NSString *text;
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   162
    if (section == 0) 
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3971
diff changeset
   163
        text = NSLocalizedString(@"Schemes",@"");
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   164
    else if (section == 1)
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   165
        text = NSLocalizedString(@"Weapons",@"");
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   166
    else
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   167
        text = NSLocalizedString(@"Options",@"");
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   168
3983
aa24192417a8 use labels instead of images, should save ram and space
koda
parents: 3971
diff changeset
   169
    UILabel *theLabel = createBlueLabel(text, frame);
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   170
    theLabel.center = CGPointMake(self.view.frame.size.width/2, 20);
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   171
3780
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   172
    UIView *theView = [[[UIView alloc] init] autorelease];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   173
    [theView addSubview:theLabel];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   174
    [theLabel release];
7c704e69242e fade in when returning from game, labels rewritten so that they are drawn at runtime (more flexibility with i18n and iphone support)
koda
parents: 3703
diff changeset
   175
    return theView;
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   176
}
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   177
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   178
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   179
#pragma mark Table view delegate
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   180
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   181
    NSIndexPath *lastIndexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   182
    if ([indexPath section] == 0)
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   183
        lastIndexPath = self.lastIndexPath_sc;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   184
    else
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
        lastIndexPath = self.lastIndexPath_we;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   186
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   187
    int newRow = [indexPath row];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   188
    int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   189
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   190
    if (newRow != oldRow) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   191
        //TODO: this code works only for a single section table
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   192
        UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   193
        UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   194
        newCell.accessoryView = checkbox;
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   195
        [checkbox release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   196
        UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
3703
12d17c6e8855 halfway-through finishing the frontend with new graphics by Tiy + initial 'About' page set up
koda
parents: 3697
diff changeset
   197
        oldCell.accessoryView = nil;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   198
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   199
        if ([indexPath section] == 0) {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   200
            self.lastIndexPath_sc = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   201
            self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   202
            if (self.syncSwitch.on) {
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   203
                for (NSString *str in self.listOfWeapons) {
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   204
                    if ([str isEqualToString:self.selectedScheme]) {
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   205
                        int index = [self.listOfSchemes indexOfObject:str];
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   206
                        self.selectedWeapon = str;
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   207
                        self.lastIndexPath_we = [NSIndexPath indexPathForRow:index inSection:1];
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   208
                        [self.tableView reloadData];
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   209
                        break;
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   210
                    }
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   211
                }
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   212
            }
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   213
        } else {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   214
            self.lastIndexPath_we = indexPath;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   215
            self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   216
        }
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3670
diff changeset
   217
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   218
        [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   219
    }
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   220
    [aTableView deselectRowAtIndexPath:indexPath animated:YES];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   221
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   222
4349
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   223
-(void) fillSections {
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   224
    if (hideSections == YES) {
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   225
        hideSections = NO;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   226
        NSRange range;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   227
        range.location = 0;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   228
        range.length = 3;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   229
        NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   230
        [self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   231
        self.selectedScheme = @"Default.plist";
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   232
        self.selectedWeapon = @"Default.plist";
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   233
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   234
        self.tableView.scrollEnabled = YES;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   235
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   236
        [[self.view viewWithTag:LABEL_TAG] removeFromSuperview];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   237
    }
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   238
}
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   239
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   240
-(void) emptySections {
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   241
    hideSections = YES;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   242
    NSRange range;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   243
    range.location = 0;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   244
    range.length = 3;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   245
    NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   246
    [self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   247
    self.selectedScheme = @"Default.plist";
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   248
    self.selectedWeapon = @"Default.plist";
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   249
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   250
    self.tableView.scrollEnabled = NO;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   251
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   252
    CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 60);
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   253
    UILabel *theLabel = createBlueLabel(NSLocalizedString(@"Missions don't need further configuration",@""), frame);
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   254
    theLabel.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   255
    theLabel.numberOfLines = 2;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   256
    theLabel.tag = LABEL_TAG;
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   257
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   258
    [self.view addSubview:theLabel];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   259
    [theLabel release];
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   260
}
8efa91f98274 display an empty table for missions
koda
parents: 4287
diff changeset
   261
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   262
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   263
#pragma mark Memory management
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   264
-(void) didReceiveMemoryWarning {
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   265
    if ([[SDLUIKitDelegate sharedAppDelegate] isInGame]) {
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   266
        self.lastIndexPath_sc = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   267
        self.lastIndexPath_we = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   268
        self.listOfSchemes = nil;
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   269
        self.listOfWeapons = nil;
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   270
        self.syncSwitch = nil;
3971
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   271
        MSG_MEMCLEAN();
5c82ee165ed5 minor stuff
koda
parents: 3952
diff changeset
   272
    }
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   273
    [super didReceiveMemoryWarning];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   274
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   275
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   276
-(void) viewDidUnload {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   277
    self.listOfSchemes = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   278
    self.listOfWeapons = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   279
    self.lastIndexPath_sc = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   280
    self.lastIndexPath_we = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   281
    self.selectedScheme = nil;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   282
    self.selectedWeapon = nil;
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   283
    self.syncSwitch = nil;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   284
    MSG_DIDUNLOAD();
3662
a44406f4369b polish polish polish polish (also: panning horizontal fix, panning momentum, settings page reworked yet again, memory leaks, crashes, segfaults)
koda
parents: 3659
diff changeset
   285
    [super viewDidUnload];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   286
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   287
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   288
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   289
-(void) dealloc {
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   290
    [listOfSchemes release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   291
    [listOfWeapons release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   292
    [lastIndexPath_sc release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   293
    [lastIndexPath_we release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   294
    [selectedScheme release];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   295
    [selectedWeapon release];
4287
7dbdc862097c some interface tricks for iphone as well
koda
parents: 4244
diff changeset
   296
    [syncSwitch release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   297
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   298
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   299
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   300
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   301
@end
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   302