cocoaTouch/SingleTeamViewController.m
author koda
Thu, 17 Jun 2010 19:57:51 +0200
changeset 3513 f589230fa21b
parent 3490 016b3172b645
permissions -rw-r--r--
now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive) add rotation for iphone build too make the ifrontend work again with 3.0 sdk reworked openalbridge following most of an old implementation by Smaxx and making it more modular -- now sources are limited but the memory extension and cleanup is todo nil'd many variables in engine that were causing intialization problems
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     1
//
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     2
//  SingleTeamViewController.m
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     3
//  HedgewarsMobile
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     4
//
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     5
//  Created by Vittorio on 02/04/10.
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     7
//
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     8
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     9
#import "SingleTeamViewController.h"
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    10
#import "HogHatViewController.h"
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    11
#import "GravesViewController.h"
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    12
#import "VoicesViewController.h"
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    13
#import "FortsViewController.h"
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
    14
#import "FlagsViewController.h"
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    15
#import "LevelViewController.h"
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
    16
#import "CommodityFunctions.h"
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
    17
#import "UIImageExtra.h"
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    18
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    19
#define TEAMNAME_TAG 1234
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    20
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    21
@implementation SingleTeamViewController
3374
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
    22
@synthesize teamDictionary, normalHogSprite, secondaryItems, textFieldBeingEdited, teamName;
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
    23
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    24
3335
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3332
diff changeset
    25
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3332
diff changeset
    26
	return rotationManager(interfaceOrientation);
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
    27
}
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    28
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    29
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    30
#pragma mark -
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    31
#pragma mark textfield methods
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    32
-(void) cancel:(id) sender {
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    33
    if (textFieldBeingEdited != nil)
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    34
        [self.textFieldBeingEdited resignFirstResponder];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    35
}
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    36
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    37
// set the new value
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    38
-(BOOL) save:(id) sender {
3332
3c90a923f156 simplify the general settings and review minor stuff
koda
parents: 3330
diff changeset
    39
    NSInteger index = textFieldBeingEdited.tag;
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    40
    
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    41
    if (textFieldBeingEdited != nil) {
3332
3c90a923f156 simplify the general settings and review minor stuff
koda
parents: 3330
diff changeset
    42
        if (TEAMNAME_TAG == index) {
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    43
            [self.teamDictionary setObject:textFieldBeingEdited.text forKey:@"teamname"];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    44
        } else {
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    45
            //replace the old value with the new one            
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    46
            NSMutableDictionary *hog = [[teamDictionary objectForKey:@"hedgehogs"] objectAtIndex:index];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    47
            [hog setObject:textFieldBeingEdited.text forKey:@"hogname"];
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    48
        }
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    49
        
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    50
        isWriteNeeded = YES;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    51
        [self.textFieldBeingEdited resignFirstResponder];
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    52
        return YES;
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    53
    }
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    54
    return NO;
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    55
}
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    56
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    57
// the textfield is being modified, update the navigation controller
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
    58
-(void) textFieldDidBeginEditing:(UITextField *)aTextField{   
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    59
    self.textFieldBeingEdited = aTextField;
3332
3c90a923f156 simplify the general settings and review minor stuff
koda
parents: 3330
diff changeset
    60
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    61
    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Cancel",@"from the hog name table")
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    62
                                                                     style:UIBarButtonItemStylePlain
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    63
                                                                    target:self
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    64
                                                                    action:@selector(cancel:)];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    65
    self.navigationItem.leftBarButtonItem = cancelButton;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    66
    [cancelButton release];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    67
    
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    68
    UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Save",@"from the hog name table")
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    69
                                                                     style:UIBarButtonItemStyleDone
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    70
                                                                    target:self
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    71
                                                                    action:@selector(save:)];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    72
    self.navigationItem.rightBarButtonItem = saveButton;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    73
    [saveButton release];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    74
}
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    75
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    76
// the textfield has been modified, check for empty strings and restore original navigation bar
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    77
-(void) textFieldDidEndEditing:(UITextField *)aTextField{
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    78
    if ([textFieldBeingEdited.text length] == 0) 
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    79
        textFieldBeingEdited.text = [NSString stringWithFormat:@"hedgehog %d",textFieldBeingEdited.tag];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    80
3332
3c90a923f156 simplify the general settings and review minor stuff
koda
parents: 3330
diff changeset
    81
    self.textFieldBeingEdited = nil;
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    82
    self.navigationItem.rightBarButtonItem = self.navigationItem.backBarButtonItem;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    83
    self.navigationItem.leftBarButtonItem = nil;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    84
}
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    85
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    86
// limit the size of the field to 64 characters like in original frontend
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    87
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    88
    int limit = 64;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    89
    return !([textField.text length] > limit && [string length] > range.length);
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    90
}
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    91
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    92
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    93
#pragma mark -
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    94
#pragma mark View lifecycle
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    95
-(void) viewDidLoad {
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    96
    [super viewDidLoad];
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
    97
    
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
    98
    // labels for the entries
3339
d558bc5a73c5 lots of untested stuff for the ifrontend
koda
parents: 3335
diff changeset
    99
    NSArray *array = [[NSArray alloc] initWithObjects:
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   100
                      NSLocalizedString(@"Grave",@""),
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   101
                      NSLocalizedString(@"Voice",@""),
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   102
                      NSLocalizedString(@"Fort",@""),
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   103
                      NSLocalizedString(@"Flag",@""),
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   104
                      NSLocalizedString(@"Level",@""),nil];
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   105
    self.secondaryItems = array;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   106
    [array release];
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   107
3374
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   108
    // load the base hog image, drawing will occure in cellForRow...
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   109
    NSString *normalHogFile = [[NSString alloc] initWithFormat:@"%@/Hedgehog.png",GRAPHICS_DIRECTORY()];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   110
    UIImage *hogSprite = [[UIImage alloc] initWithContentsOfFile:normalHogFile andCutAt:CGRectMake(96, 0, 32, 32)];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   111
    [normalHogFile release];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   112
    self.normalHogSprite = hogSprite;
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   113
    [hogSprite release];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   114
    
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   115
    // listen if any childController modifies the plist and write it if needed
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   116
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setWriteNeeded) name:@"setWriteNeedTeams" object:nil];
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   117
    isWriteNeeded = NO;
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   118
}
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   119
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   120
-(void) viewWillAppear:(BOOL)animated {
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   121
    [super viewWillAppear:animated];
3323
091cf214bdd5 implement an add/remove team in the ifrontend
koda
parents: 3316
diff changeset
   122
    
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   123
    // load data about the team and write if there has been a change
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   124
    if (isWriteNeeded) 
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   125
        [self writeFile];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   126
    
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   127
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),self.title];
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   128
	NSMutableDictionary *teamDict = [[NSMutableDictionary alloc] initWithContentsOfFile:teamFile];
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   129
    self.teamDictionary = teamDict;
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   130
    [teamDict release];
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   131
	[teamFile release];
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   132
    
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   133
    self.teamName = self.title;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   134
    
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   135
    [self.tableView reloadData];
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   136
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   137
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   138
// write on file if there has been a change
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   139
-(void) viewWillDisappear:(BOOL)animated {
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   140
	[super viewWillDisappear:animated];
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   141
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   142
    // end the editing of the current field
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   143
    if (textFieldBeingEdited != nil) {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   144
        [self save:nil];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   145
    }
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   146
    
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   147
    if (isWriteNeeded) 
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   148
        [self writeFile];        
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   149
}
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   150
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   151
#pragma mark -
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   152
// needed by other classes to warn about a user change
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   153
-(void) setWriteNeeded {
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   154
    isWriteNeeded = YES;
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   155
}
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   156
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   157
-(void) writeFile {
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   158
    NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),self.title];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   159
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   160
    NSString *newTeamName = [self.teamDictionary objectForKey:@"teamname"];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   161
    if (![newTeamName isEqualToString:self.teamName]) {
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   162
        //delete old
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   163
        [[NSFileManager defaultManager] removeItemAtPath:teamFile error:NULL];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   164
        [teamFile release];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   165
        self.title = newTeamName;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   166
        self.teamName = newTeamName;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   167
        teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),newTeamName];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   168
    }
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   169
    
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   170
    [self.teamDictionary writeToFile:teamFile atomically:YES];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   171
    NSLog(@"writing: %@",teamDictionary);
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   172
    isWriteNeeded = NO;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   173
	[teamFile release];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   174
}
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   175
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   176
#pragma mark -
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   177
#pragma mark Table view data source
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   178
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   179
    return 3;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   180
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   181
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   182
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3312
6d8f1c76756d restore and update the old general settings
koda
parents: 3308
diff changeset
   183
    NSInteger rows = 0;
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   184
    switch (section) {
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   185
        case 0: // team name
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   186
            rows = 1;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   187
            break;
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   188
        case 1: // team members
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   189
            rows = MAX_HOGS;
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   190
            break;
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   191
        case 2: // team details
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   192
            rows = [self.secondaryItems count];
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   193
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   194
        default:
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   195
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   196
    }
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   197
    return rows;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   198
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   199
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   200
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   201
    static NSString *CellIdentifier0 = @"Cell0";
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   202
    static NSString *CellIdentifier1 = @"Cell1";
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   203
    static NSString *CellIdentifier2 = @"Cell2";
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   204
    
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   205
    NSArray *hogArray;
3364
e5403e2bf02c no more hardcoded teams, team selection is real \o/
koda
parents: 3361
diff changeset
   206
    UITableViewCell *cell = nil;
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   207
    NSInteger row = [indexPath row];
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   208
    UIImage *accessoryImage;
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   209
    
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   210
    switch ([indexPath section]) {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   211
        case 0:
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   212
            cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier0];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   213
            if (cell == nil) {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   214
                cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   215
                                               reuseIdentifier:CellIdentifier0] autorelease];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   216
                // create a uitextfield for each row, expand it to take the maximum size
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   217
                UITextField *aTextField = [[UITextField alloc] 
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   218
                                           initWithFrame:CGRectMake(5, 12, (cell.frame.size.width + cell.frame.size.width/3) - 42, 25)];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   219
                aTextField.clearsOnBeginEditing = NO;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   220
                aTextField.returnKeyType = UIReturnKeyDone;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   221
                aTextField.adjustsFontSizeToFitWidth = YES;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   222
                aTextField.delegate = self;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   223
                aTextField.tag = [indexPath row];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   224
                aTextField.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize] + 2];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   225
                aTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   226
                [aTextField addTarget:self action:@selector(save:) forControlEvents:UIControlEventEditingDidEndOnExit];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   227
                [cell.contentView addSubview:aTextField];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   228
                [aTextField release];
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   229
            }
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   230
            
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   231
            cell.imageView.image = nil;
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   232
            cell.accessoryType = UITableViewCellAccessoryNone;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   233
            for (UIView *oneView in cell.contentView.subviews) {
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   234
                if ([oneView isMemberOfClass:[UITextField class]]) {
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   235
                    // we find the uitextfied and we'll use its tag to understand which one is being edited
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   236
                    UITextField *textFieldFound = (UITextField *)oneView;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   237
                    textFieldFound.text = [self.teamDictionary objectForKey:@"teamname"];
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   238
                    textFieldFound.tag = TEAMNAME_TAG;
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   239
                }
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   240
            }            
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   241
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   242
        case 1:
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   243
            cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   244
            if (cell == nil) {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   245
                cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   246
                                               reuseIdentifier:CellIdentifier1] autorelease];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   247
                
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   248
                // create a uitextfield for each row, expand it to take the maximum size
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   249
                UITextField *aTextField = [[UITextField alloc] 
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   250
                                           initWithFrame:CGRectMake(42, 12, (cell.frame.size.width + cell.frame.size.width/3) - 42, 25)];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   251
                aTextField.clearsOnBeginEditing = NO;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   252
                aTextField.returnKeyType = UIReturnKeyDone;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   253
                aTextField.adjustsFontSizeToFitWidth = YES;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   254
                aTextField.delegate = self;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   255
                aTextField.tag = [indexPath row];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   256
                aTextField.font = [UIFont boldSystemFontOfSize:[UIFont systemFontSize] + 2];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   257
                aTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   258
                [aTextField addTarget:self action:@selector(save:) forControlEvents:UIControlEventEditingDidEndOnExit];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   259
                [cell.contentView addSubview:aTextField];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   260
                [aTextField release];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   261
            }
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   262
            
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   263
            hogArray = [self.teamDictionary objectForKey:@"hedgehogs"];
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   264
            
3374
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   265
            NSString *hatFile = [[NSString alloc] initWithFormat:@"%@/%@.png", HATS_DIRECTORY(), [[hogArray objectAtIndex:row] objectForKey:@"hat"]];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   266
            UIImage *hatSprite = [[UIImage alloc] initWithContentsOfFile: hatFile andCutAt:CGRectMake(0, 0, 32, 32)];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   267
            [hatFile release];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   268
            cell.imageView.image = [self.normalHogSprite mergeWith:hatSprite atPoint:CGPointMake(0, -5)];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   269
            [hatSprite release];
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   270
                        
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   271
            for (UIView *oneView in cell.contentView.subviews) {
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   272
                if ([oneView isMemberOfClass:[UITextField class]]) {
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   273
                    // we find the uitextfied and we'll use its tag to understand which one is being edited
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   274
                    UITextField *textFieldFound = (UITextField *)oneView;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   275
                    textFieldFound.text = [[hogArray objectAtIndex:row] objectForKey:@"hogname"];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   276
                }
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   277
            }
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   278
            
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   279
            cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   280
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   281
        case 2:
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   282
            cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   283
            if (cell == nil) {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   284
                cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   285
                                               reuseIdentifier:CellIdentifier2] autorelease];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   286
            }
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   287
            
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   288
            cell.textLabel.text = [self.secondaryItems objectAtIndex:row];
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   289
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   290
            switch (row) {
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   291
                case 0: // grave
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   292
                    accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png",
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   293
                                                                              GRAVES_DIRECTORY(),[teamDictionary objectForKey:@"grave"]]
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   294
                                                                    andCutAt:CGRectMake(0,0,32,32)];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   295
                    cell.imageView.image = accessoryImage;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   296
                    [accessoryImage release];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   297
                    break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   298
                case 2: // fort
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   299
                    accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@L.png",
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   300
                                                                              FORTS_DIRECTORY(),[teamDictionary objectForKey:@"fort"]]];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   301
                    cell.imageView.image = [accessoryImage scaleToSize:CGSizeMake(42, 42)];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   302
                    [accessoryImage release];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   303
                    break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   304
                    
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   305
                case 3: // flags
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   306
                    accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.png",
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   307
                                                                              FLAGS_DIRECTORY(),[teamDictionary objectForKey:@"flag"]]];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   308
                    cell.imageView.image = accessoryImage;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   309
                    [accessoryImage release];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   310
                    break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   311
                case 4: // level
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   312
                    accessoryImage = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%d.png",
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   313
                                                                              BOTLEVELS_DIRECTORY(),[[[[teamDictionary objectForKey:@"hedgehogs"]
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   314
                                                                                                      objectAtIndex:0] objectForKey:@"level"]
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   315
                                                                                                     intValue]]];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   316
                    cell.imageView.image = accessoryImage;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   317
                    [accessoryImage release];
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   318
                    break;
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   319
                default:
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   320
                    cell.imageView.image = nil;
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   321
                    break;
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   322
            }
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   323
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   324
    }
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   325
    
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   326
    return cell;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   327
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   328
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   329
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   330
#pragma mark -
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   331
#pragma mark Table view delegate
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   332
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   333
    NSInteger row = [indexPath row];
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   334
    NSInteger section = [indexPath section];
3365
37ac593e9027 wow all these files only for land preview and seed generation
koda
parents: 3364
diff changeset
   335
    UITableViewController *nextController = nil;
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   336
    UITableViewCell *cell;
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   337
    
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   338
    if (2 == section) {
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   339
        switch (row) {
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   340
            case 0: // grave
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   341
                if (nil == gravesViewController)
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   342
                    gravesViewController = [[GravesViewController alloc] initWithStyle:UITableViewStyleGrouped];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   343
                
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   344
                nextController = gravesViewController;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   345
                break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   346
            case 1: // voice
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   347
                if (nil == voicesViewController)
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   348
                    voicesViewController = [[VoicesViewController alloc] initWithStyle:UITableViewStyleGrouped];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   349
                
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   350
                nextController = voicesViewController;                    
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   351
                break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   352
            case 2: // fort
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   353
                if (nil == fortsViewController)
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   354
                    fortsViewController = [[FortsViewController alloc] initWithStyle:UITableViewStyleGrouped];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   355
                
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   356
                nextController = fortsViewController;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   357
                break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   358
            case 3: // flag
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   359
                if (nil == flagsViewController) 
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   360
                    flagsViewController = [[FlagsViewController alloc] initWithStyle:UITableViewStyleGrouped];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   361
                
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   362
                nextController = flagsViewController;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   363
                break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   364
            case 4: // level
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   365
                if (nil == levelViewController)
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   366
                    levelViewController = [[LevelViewController alloc] initWithStyle:UITableViewStyleGrouped];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   367
                
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   368
                nextController = levelViewController;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   369
                break;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   370
        }
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   371
        
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   372
        nextController.title = [secondaryItems objectAtIndex:row];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   373
        [nextController setTeamDictionary:teamDictionary];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   374
        [self.navigationController pushViewController:nextController animated:YES];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   375
    } else {
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   376
        cell = [aTableView cellForRowAtIndexPath:indexPath];
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   377
        for (UIView *oneView in cell.contentView.subviews) {
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   378
            if ([oneView isMemberOfClass:[UITextField class]]) {
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   379
                textFieldBeingEdited = (UITextField *)oneView;
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   380
                [textFieldBeingEdited becomeFirstResponder];
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   381
            }
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   382
        }
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   383
        [aTableView deselectRowAtIndexPath:indexPath animated:NO];
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   384
    }
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   385
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   386
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   387
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   388
// action to perform when you want to change a hog hat
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   389
-(void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   390
    if (nil == hogHatViewController) {
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   391
        hogHatViewController = [[HogHatViewController alloc] initWithStyle:UITableViewStyleGrouped];
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   392
    }
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   393
    
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   394
    // cache the dictionary file of the team, so that other controllers can modify it
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   395
    hogHatViewController.teamDictionary = self.teamDictionary;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   396
    hogHatViewController.selectedHog = [indexPath row];
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   397
    
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   398
    [self.navigationController pushViewController:hogHatViewController animated:YES];
3328
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   399
}
fe87c2242984 fix the save of the team and rearrange hat/name modification
koda
parents: 3325
diff changeset
   400
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   401
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   402
#pragma mark -
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   403
#pragma mark Memory management
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   404
-(void) didReceiveMemoryWarning {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   405
    // Releases the view if it doesn't have a superview.
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   406
    [super didReceiveMemoryWarning];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   407
    // Relinquish ownership any cached data, images, etc that aren't in use.
3490
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   408
    if (hogHatViewController.view.superview == nil)
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   409
        hogHatViewController = nil;
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   410
    if (gravesViewController.view.superview == nil)
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   411
        gravesViewController = nil;
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   412
    if (voicesViewController.view.superview == nil)
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   413
        voicesViewController = nil;
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   414
    if (fortsViewController.view.superview == nil)
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   415
        fortsViewController = nil;
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   416
    if (flagsViewController.view.superview == nil)
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   417
        flagsViewController = nil;
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   418
    if (levelViewController.view.superview == nil)
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   419
        levelViewController = nil;
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   420
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   421
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   422
-(void) viewDidUnload {
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   423
    self.teamDictionary = nil;
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   424
    self.textFieldBeingEdited = nil;
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   425
    self.teamName = nil;
3374
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   426
    self.normalHogSprite = nil;
3325
652a8ebdf667 moved around team creation
koda
parents: 3323
diff changeset
   427
    self.secondaryItems = nil;
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   428
    hogHatViewController = nil;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   429
    flagsViewController = nil;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   430
    fortsViewController = nil;
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   431
    gravesViewController = nil;
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   432
    levelViewController = nil;
3315
4e2813713358 usa a cached dictionary and write only when needed
koda
parents: 3312
diff changeset
   433
    [super viewDidUnload];
3490
016b3172b645 a bunch of minor stuff
koda
parents: 3479
diff changeset
   434
    MSG_DIDUNLOAD();
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   435
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   436
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   437
-(void) dealloc {
3329
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   438
    [teamDictionary release];
d8e41ee0b3ae add support to editing hog names
koda
parents: 3328
diff changeset
   439
    [textFieldBeingEdited release];
3330
987ec27b6042 add support for modifying the name of the team
koda
parents: 3329
diff changeset
   440
    [teamName release];
3374
0d522416d97f lazy loading for all the tables with images (might affect performance but ui feels much more responsive)
koda
parents: 3365
diff changeset
   441
    [normalHogSprite release];
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   442
    [secondaryItems release];
3340
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   443
    [hogHatViewController release];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   444
    [fortsViewController release];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   445
    [gravesViewController release];
96dd168b080b fix all of what was committed before
koda
parents: 3339
diff changeset
   446
    [flagsViewController release];
3352
ac5d14a35482 complete previews on the team settings
koda
parents: 3340
diff changeset
   447
    [levelViewController release];
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   448
    [super dealloc];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   449
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   450
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   451
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   452
@end
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   453