diff -r 156c04c6a3d8 -r 6592fbb969da project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Sat Jun 19 00:48:47 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Sun Jun 20 18:35:59 2010 +0200 @@ -10,7 +10,7 @@ #import "CommodityFunctions.h" @implementation SchemeWeaponConfigViewController -@synthesize listOfSchemes, listOfWeapons, lastIndexPath, selectedScheme, selectedWeapon; +@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon; -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return rotationManager(interfaceOrientation); @@ -23,9 +23,6 @@ CGSize screenSize = [[UIScreen mainScreen] bounds].size; self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44); - - self.selectedScheme = @"Default.plist"; - self.selectedWeapon = @"Default.plist"; } -(void) viewWillAppear:(BOOL) animated { @@ -34,24 +31,15 @@ NSArray *contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCHEMES_DIRECTORY() error:NULL]; self.listOfSchemes = contentsOfDir; + contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:WEAPONS_DIRECTORY() error:NULL]; + self.listOfWeapons = contentsOfDir; + + self.selectedScheme = @"Default.plist"; + self.selectedWeapon = @"Default.plist"; + [self.tableView reloadData]; } -/* -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; -} -*/ -/* -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; -} -*/ -/* -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; -} -*/ #pragma mark - @@ -84,13 +72,13 @@ cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension]; if ([[self.listOfSchemes objectAtIndex:row] isEqualToString:self.selectedScheme]) { cell.accessoryType = UITableViewCellAccessoryCheckmark; - self.lastIndexPath = indexPath; + self.lastIndexPath_sc = indexPath; } } else { cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension]; if ([[self.listOfWeapons objectAtIndex:row] isEqualToString:self.selectedWeapon]) { cell.accessoryType = UITableViewCellAccessoryCheckmark; - self.lastIndexPath = indexPath; + self.lastIndexPath_we = indexPath; } } @@ -101,6 +89,12 @@ #pragma mark - #pragma mark Table view delegate -(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + NSIndexPath *lastIndexPath; + if ([indexPath section] == 0) + lastIndexPath = self.lastIndexPath_sc; + else + lastIndexPath = self.lastIndexPath_we; + int newRow = [indexPath row]; int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1; @@ -110,8 +104,15 @@ newCell.accessoryType = UITableViewCellAccessoryCheckmark; UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath]; oldCell.accessoryType = UITableViewCellAccessoryNone; - self.lastIndexPath = indexPath; - self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow]; + + if ([indexPath section] == 0) { + self.lastIndexPath_sc = indexPath; + self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow]; + } else { + self.lastIndexPath_we = indexPath; + self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow]; + } + [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone]; } [aTableView deselectRowAtIndexPath:indexPath animated:YES]; @@ -136,7 +137,8 @@ -(void) viewDidUnload { self.listOfSchemes = nil; self.listOfWeapons = nil; - self.lastIndexPath = nil; + self.lastIndexPath_sc = nil; + self.lastIndexPath_we = nil; self.selectedScheme = nil; self.selectedWeapon = nil; MSG_DIDUNLOAD(); @@ -146,7 +148,8 @@ -(void) dealloc { [listOfSchemes release]; [listOfWeapons release]; - [lastIndexPath release]; + [lastIndexPath_sc release]; + [lastIndexPath_we release]; [selectedScheme release]; [selectedWeapon release]; [super dealloc];