project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m
author nemo
Sun, 10 Oct 2010 20:16:17 -0400
changeset 3951 c9a63db3e603
parent 3930 8b00b4f93242
child 4284 57a501a69e5f
permissions -rw-r--r--
Correct another bug in slot switching, adjust width of theme list, really truly fix reset of weps (I hope) should also fix infinite teleport bug in place hogs mode. Slow update of health to 5s for inf attack mode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3829
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     1
/*
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     2
 * Hedgewars-iOS, a Hedgewars port for iOS devices
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     3
 * Copyright (c) 2009-2010 Vittorio Giovara <vittorio.giovara@gmail.com>
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     4
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
81db3c85784b headers ftw, also right project file
koda
parents: 3825
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: 3825
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     8
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    12
 * GNU General Public License for more details.
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    13
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    14
 * You should have received a copy of the GNU General Public License
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    15
 * along with this program; if not, write to the Free Software
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    17
 *
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    18
 * File created on 19/06/2010.
81db3c85784b headers ftw, also right project file
koda
parents: 3825
diff changeset
    19
 */
81db3c85784b headers ftw, also right project file
koda
parents: 3825
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 "SingleWeaponViewController.h"
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    23
#import "CommodityFunctions.h"
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    24
#import "UIImageExtra.h"
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    25
#import "PascalImports.h"
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    26
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    27
@implementation SingleWeaponViewController
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    28
@synthesize weaponName, description, ammoStoreImage;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    29
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    30
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    31
    return rotationManager(interfaceOrientation);
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    32
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    33
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    34
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    35
#pragma mark View lifecycle
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    36
-(void) viewDidLoad {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    37
    [super viewDidLoad];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    38
    
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    39
    NSString *trFilePath = [NSString stringWithFormat:@"%@/en.txt",LOCALE_DIRECTORY()];
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    40
    // fill the data structure that we are going to read
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    41
    LoadLocaleWrapper([trFilePath UTF8String]);
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    42
    
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    43
    quantity = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    44
    probability = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    45
    delay = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    46
    crateness = (char *)malloc(sizeof(char)*(HW_getNumberOfWeapons()+1));
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    47
    
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    48
    NSString *str = [NSString stringWithFormat:@"%@/AmmoMenu/Ammos.png",GRAPHICS_DIRECTORY()];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    49
    UIImage *img = [[UIImage alloc] initWithContentsOfFile:str];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    50
    self.ammoStoreImage = img;
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    51
    [img release];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    52
    
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
    53
    self.title = NSLocalizedString(@"Edit weapons preferences",@"");
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    54
}
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    55
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    56
-(void) viewWillAppear:(BOOL) animated {
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    57
    [super viewWillAppear:animated];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    58
    
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
    59
    NSString *ammoFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName];
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    60
    NSDictionary *weapon = [[NSDictionary alloc] initWithContentsOfFile:ammoFile];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    61
    [ammoFile release];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    62
    
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    63
    self.description = [weapon objectForKey:@"description"];
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    64
    const char *tmp1 = [[weapon objectForKey:@"ammostore_initialqt"] UTF8String];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    65
    const char *tmp2 = [[weapon objectForKey:@"ammostore_probability"] UTF8String];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    66
    const char *tmp3 = [[weapon objectForKey:@"ammostore_delay"] UTF8String];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    67
    const char *tmp4 = [[weapon objectForKey:@"ammostore_crate"] UTF8String];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    68
    [weapon release];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    69
    
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    70
    // if the new weaponset is diffrent from the older we need to update it replacing
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    71
    // the missing ammos with 0 quantity
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    72
    int oldlen = strlen(tmp1);
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    73
    for (int i = 0; i < oldlen; i++) {
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    74
        quantity[i] = tmp1[i];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    75
        probability[i] = tmp2[i];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    76
        delay[i] = tmp3[i];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    77
        crateness[i] = tmp4[i];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    78
    }
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    79
    for (int i = oldlen; i < HW_getNumberOfWeapons(); i++) {
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    80
        quantity[i] = '0';
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    81
        probability[i] = '0';
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    82
        delay[i] = '0';
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    83
        crateness[i] = '0';
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    84
    }
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    85
    
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    86
    [self.tableView reloadData];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
    87
}
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    88
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    89
-(void) viewWillDisappear:(BOOL) animated {
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
    90
    [super viewWillDisappear:animated];
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
    91
    [self saveAmmos];
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
    92
}
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
    93
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
    94
-(void) saveAmmos {
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    95
    quantity[HW_getNumberOfWeapons()] = '\0';
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    96
    probability[HW_getNumberOfWeapons()] = '\0';
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    97
    delay[HW_getNumberOfWeapons()] = '\0';
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
    98
    crateness[HW_getNumberOfWeapons()] = '\0';
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
    99
    
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   100
    NSString *quantityStr = [NSString stringWithUTF8String:quantity];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   101
    NSString *probabilityStr = [NSString stringWithUTF8String:probability];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   102
    NSString *delayStr = [NSString stringWithUTF8String:delay];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   103
    NSString *cratenessStr = [NSString stringWithUTF8String:crateness];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   104
    
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   105
    NSDictionary *weapon = [[NSDictionary alloc] initWithObjectsAndKeys:
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   106
                            quantityStr,@"ammostore_initialqt",
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   107
                            probabilityStr,@"ammostore_probability",
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   108
                            delayStr,@"ammostore_delay",
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   109
                            cratenessStr,@"ammostore_crate", 
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   110
                            self.description,@"description",
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   111
                            nil];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   112
    
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   113
    NSString *ammoFile = [[NSString alloc] initWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName];
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   114
    [weapon writeToFile:ammoFile atomically:YES];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   115
    [ammoFile release];
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   116
    [weapon release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   117
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   118
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   119
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   120
#pragma mark Table view data source
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   121
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   122
    return 2;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   123
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   124
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   125
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   126
    if (section == 0)
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   127
        return 2;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   128
    else
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
   129
        return HW_getNumberOfWeapons();
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   130
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   131
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   132
// Customize the appearance of table view cells.
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   133
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   134
    static NSString *CellIdentifier0 = @"Cell0";
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   135
    static NSString *CellIdentifier1 = @"Cell1";
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   136
    NSInteger row = [indexPath row];
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   137
    UITableViewCell *cell = nil;
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   138
    
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   139
    if (0 == [indexPath section]) {
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   140
        EditableCellView *editableCell = (EditableCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   141
        if (editableCell == nil) {
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   142
            editableCell = [[[EditableCellView alloc] initWithStyle:UITableViewCellStyleDefault
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   143
                                                    reuseIdentifier:CellIdentifier0] autorelease];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   144
            editableCell.delegate = self;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   145
        }
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   146
        editableCell.tag = row;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   147
        editableCell.selectionStyle = UITableViewCellSelectionStyleNone;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   148
        editableCell.imageView.image = nil;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   149
        editableCell.detailTextLabel.text = nil;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   150
        
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   151
        if (row == 0) {
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   152
            editableCell.textField.text = self.weaponName;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   153
        } else {
3825
fd6c20cd90e3 typos, reduced sound size and last minute fixes
koda
parents: 3782
diff changeset
   154
            editableCell.minimumCharacters = 0;
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   155
            editableCell.textField.font = [UIFont systemFontOfSize:[UIFont labelFontSize]];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   156
            editableCell.textField.text = self.description;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   157
            editableCell.textField.placeholder = NSLocalizedString(@"You can add a description if you wish",@"");
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   158
        }
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   159
        cell = editableCell;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   160
    } else {
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   161
        WeaponCellView *weaponCell = (WeaponCellView *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   162
        if (weaponCell == nil) {
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   163
            weaponCell = [[[WeaponCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] autorelease];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   164
            weaponCell.delegate = self;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   165
        }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   166
3924
2a9ace189288 WIP for an objc ammomenu implementation
koda
parents: 3829
diff changeset
   167
        int x = ((row*32)/(int)self.ammoStoreImage.size.height)*32;
2a9ace189288 WIP for an objc ammomenu implementation
koda
parents: 3829
diff changeset
   168
        int y = (row*32)%(int)self.ammoStoreImage.size.height;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   169
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   170
        UIImage *img = [[self.ammoStoreImage cutAt:CGRectMake(x, y, 32, 32)] makeRoundCornersOfSize:CGSizeMake(7, 7)];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   171
        weaponCell.weaponIcon.image = img;
3926
668b71f31e51 use dynamic data from engine instead of using hardcoded values
koda
parents: 3924
diff changeset
   172
        weaponCell.weaponName.text = [NSString stringWithUTF8String:HW_getWeaponNameByIndex(row)];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   173
        weaponCell.tag = row;
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   174
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   175
        [weaponCell.initialSli setValue:[[NSString stringWithFormat:@"%c",quantity[row]] intValue] animated:NO];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   176
        [weaponCell.probabilitySli setValue:[[NSString stringWithFormat:@"%c", probability[row]] intValue] animated:NO];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   177
        [weaponCell.delaySli setValue:[[NSString stringWithFormat:@"%c", delay[row]] intValue] animated:NO];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   178
        [weaponCell.crateSli setValue:[[NSString stringWithFormat:@"%c", crateness[row]] intValue] animated:NO];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   179
        cell = weaponCell;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   180
    }
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   181
3643
858b20bafb6e reworked the ammunition configuration page (visually)
koda
parents: 3624
diff changeset
   182
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   183
    return cell;
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   184
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   185
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   186
-(CGFloat) tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   187
    if (0 == [indexPath section])
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   188
        return aTableView.rowHeight;
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   189
    else
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   190
        return 120;
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   191
}
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   192
3701
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   193
-(NSString *)tableView:(UITableView *)aTableView titleForHeaderInSection:(NSInteger)section {
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   194
    NSString *sectionTitle = nil;
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   195
    switch (section) {
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   196
        case 0:
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   197
            sectionTitle = NSLocalizedString(@"Weaponset Name", @"");
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   198
            break;
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   199
        case 1:
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   200
            sectionTitle = NSLocalizedString(@"Weapon Ammuntions", @"");
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   201
            break;
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   202
        default:
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   203
            DLog(@"nope");
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   204
            break;
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   205
    }
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   206
    return sectionTitle;
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   207
}
8c449776ebe6 rewrite portions of some uiviewcontrollers
koda
parents: 3697
diff changeset
   208
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   209
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   210
#pragma mark Table view delegate
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   211
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   212
    if (0 == [indexPath section]) {
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   213
        EditableCellView *editableCell = (EditableCellView *)[aTableView cellForRowAtIndexPath:indexPath];
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   214
        [editableCell replyKeyboard];
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   215
    }
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   216
}
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   217
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   218
#pragma mark -
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   219
#pragma mark editableCellView delegate
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   220
// set the new value
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3662
diff changeset
   221
-(void) saveTextFieldValue:(NSString *)textString withTag:(NSInteger) tagValue {
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   222
    if (tagValue == 0) {
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   223
        // delete old file
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   224
        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@.plist",WEAPONS_DIRECTORY(),self.weaponName] error:NULL];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   225
        // update filename
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   226
        self.weaponName = textString;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   227
        // save new file
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   228
        [self saveAmmos];
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   229
    } else {
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   230
        self.description = textString;
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   231
    }
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   232
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   233
3624
304c6d32383a button to open ammomenu
koda
parents: 3623
diff changeset
   234
#pragma mark -
304c6d32383a button to open ammomenu
koda
parents: 3623
diff changeset
   235
#pragma mark WeaponButtonControllerDelegate
3644
42c5684289ae finished ammo configuration (which is the last page missing in config \o/)
koda
parents: 3643
diff changeset
   236
-(void) updateValues:(NSArray *)withArray atIndex:(NSInteger) index {
42c5684289ae finished ammo configuration (which is the last page missing in config \o/)
koda
parents: 3643
diff changeset
   237
    quantity[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:0] intValue]] characterAtIndex:0];
42c5684289ae finished ammo configuration (which is the last page missing in config \o/)
koda
parents: 3643
diff changeset
   238
    probability[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:1] intValue]] characterAtIndex:0];
42c5684289ae finished ammo configuration (which is the last page missing in config \o/)
koda
parents: 3643
diff changeset
   239
    delay[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:2] intValue]] characterAtIndex:0];
42c5684289ae finished ammo configuration (which is the last page missing in config \o/)
koda
parents: 3643
diff changeset
   240
    crateness[index] = [[NSString stringWithFormat:@"%d",[[withArray objectAtIndex:3] intValue]] characterAtIndex:0];
3624
304c6d32383a button to open ammomenu
koda
parents: 3623
diff changeset
   241
}
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   242
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   243
#pragma mark -
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   244
#pragma mark Memory management
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   245
-(void) didReceiveMemoryWarning {
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   246
    [super didReceiveMemoryWarning];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   247
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   248
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   249
-(void) viewDidUnload {
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   250
    free(quantity); quantity = NULL;
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   251
    free(probability); probability = NULL;
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   252
    free(delay); delay = NULL;
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   253
    free(crateness); crateness = NULL;
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   254
    [super viewDidUnload];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   255
    self.description = nil;
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   256
    self.weaponName = nil;
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   257
    self.ammoStoreImage = nil;
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   258
    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: 3660
diff changeset
   259
    [super viewDidUnload];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   260
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   261
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   262
3621
a8ddf681ba7d initial support for customizing weaponset
koda
parents: 3547
diff changeset
   263
-(void) dealloc {
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   264
    [weaponName release];
3782
dc3531e49e4c add a description field for schemes and weapons
koda
parents: 3766
diff changeset
   265
    [description release];
3659
f8d5ac50e307 half reworking of the settings page with delegation
koda
parents: 3644
diff changeset
   266
    [ammoStoreImage release];
3547
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   267
    [super dealloc];
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   268
}
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   269
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   270
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   271
@end
02875b1145b7 i <3 mercurial
koda
parents: 3546
diff changeset
   272