--- a/project_files/HedgewarsMobile/Classes/FortsViewController.m Wed Jun 23 21:39:14 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/FortsViewController.m Wed Jun 23 21:49:19 2010 +0200
@@ -1,161 +0,0 @@
-//
-// FortsViewController.m
-// HedgewarsMobile
-//
-// Created by Vittorio on 08/04/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import "FortsViewController.h"
-#import "CommodityFunctions.h"
-#import "UIImageExtra.h"
-
-@implementation FortsViewController
-@synthesize teamDictionary, fortArray, lastIndexPath;
-
-
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
- return rotationManager(interfaceOrientation);
-}
-
-
-#pragma mark -
-#pragma mark View lifecycle
--(void) viewDidLoad {
- [super viewDidLoad];
-
- NSArray *directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:FORTS_DIRECTORY() error:NULL];
- NSMutableArray *filteredContents = [[NSMutableArray alloc] initWithCapacity:([directoryContents count] / 2)];
- // we need to remove the double entries and the L.png suffix
- for (int i = 0; i < [directoryContents count]; i++) {
- if (i % 2) {
- NSString *currentName = [directoryContents objectAtIndex:i];
- NSString *correctName = [currentName substringToIndex:([currentName length] - 5)];
- [filteredContents addObject:correctName];
- }
- }
- self.fortArray = filteredContents;
- [filteredContents release];
-
- /*
- // this creates a scaled down version of the image
- NSMutableArray *spriteArray = [[NSMutableArray alloc] initWithCapacity:[fortArray count]];
- for (NSString *fortName in fortArray) {
- NSString *fortFile = [[NSString alloc] initWithFormat:@"%@/%@L.png", fortsDirectory, fortName];
- UIImage *fortSprite = [[UIImage alloc] initWithContentsOfFile:fortFile];
- [fortFile release];
- [spriteArray addObject:[fortSprite scaleToSize:CGSizeMake(196,196)]];
- [fortSprite release];
- }
- self.fortSprites = spriteArray;
- [spriteArray release];
- */
-
- // statically set row height instead of using delegate method for performance reasons
- self.tableView.rowHeight = 200;
-}
-
-
-- (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- [self.tableView reloadData];
- [self.tableView setContentOffset:CGPointMake(0,0) animated:NO];
-}
-
-
-#pragma mark -
-#pragma mark Table view data source
--(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
-}
-
--(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- return [self.fortArray count];
-}
-
-// Customize the appearance of table view cells.
--(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- static NSString *CellIdentifier = @"Cell";
-
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
- reuseIdentifier:CellIdentifier] autorelease];
- }
-
- NSString *fortName = [fortArray objectAtIndex:[indexPath row]];
- cell.textLabel.text = fortName;
-
- // this creates a scaled down version of the image
- // TODO: create preview files, scaling is way too slow!
- NSString *fortFile = [[NSString alloc] initWithFormat:@"%@/%@L.png", FORTS_DIRECTORY(), fortName];
- UIImage *fortSprite = [[UIImage alloc] initWithContentsOfFile:fortFile];
- [fortFile release];
- cell.imageView.image = [fortSprite scaleToSize:CGSizeMake(196,196)];
- [fortSprite release];
-
- cell.detailTextLabel.text = @"Insert funny description here";
- if ([cell.textLabel.text isEqualToString:[self.teamDictionary objectForKey:@"fort"]]) {
- cell.accessoryType = UITableViewCellAccessoryCheckmark;
- self.lastIndexPath = indexPath;
- } else {
- cell.accessoryType = UITableViewCellAccessoryNone;
- }
-
- return cell;
-}
-
-
-#pragma mark -
-#pragma mark Table view delegate
--(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
- int newRow = [indexPath row];
- int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
-
- if (newRow != oldRow) {
- // if the two selected rows differ update data on the hog dictionary and reload table content
- [self.teamDictionary setValue:[fortArray objectAtIndex:newRow] forKey:@"fort"];
-
- // tell our boss to write this new stuff on disk
- [[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil];
-
- UITableViewCell *newCell = [aTableView cellForRowAtIndexPath:indexPath];
- newCell.accessoryType = UITableViewCellAccessoryCheckmark;
- UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
- oldCell.accessoryType = UITableViewCellAccessoryNone;
- self.lastIndexPath = indexPath;
- [aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
- }
- [aTableView deselectRowAtIndexPath:indexPath animated:YES];
- [self.navigationController popViewControllerAnimated:YES];
-}
-
-
-#pragma mark -
-#pragma mark Memory management
--(void) didReceiveMemoryWarning {
- // Releases the view if it doesn't have a superview.
- [super didReceiveMemoryWarning];
- // Relinquish ownership any cached data, images, etc that aren't in use.
-}
-
--(void) viewDidUnload {
- self.teamDictionary = nil;
- self.lastIndexPath = nil;
- self.fortArray = nil;
- [super viewDidUnload];
- MSG_DIDUNLOAD();
-}
-
-
-- (void)dealloc {
- [teamDictionary release];
- [lastIndexPath release];
- [fortArray release];
-// [fortSprites release];
- [super dealloc];
-}
-
-
-@end
-