diff -r 16ca7a7a6aa6 -r 72c882c0fd0f project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/MissionTrainingViewController.m Wed Oct 05 00:18:54 2011 +0200 @@ -0,0 +1,162 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2009-2011 Vittorio Giovara + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * File created on 03/10/2011. + */ + +#import "MissionTrainingViewController.h" +#import +#import "GameInterfaceBridge.h" + +@implementation MissionTrainingViewController +@synthesize listOfMissions, previewImage, tableView, descriptionLabel, missionFile; + +-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { + return rotationManager(interfaceOrientation); +} + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +-(void) viewDidLoad { + srand(time(NULL)); + + NSString *imgName = (IS_IPAD()) ? @"mediumBackground~ipad.png" : @"smallerBackground~iphone.png"; + UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName]; + self.view.backgroundColor = [UIColor colorWithPatternImage:img]; + [img release]; + + NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:TRAININGS_DIRECTORY() error:NULL]; + self.listOfMissions = array; + self.previewImage.layer.borderColor = [[UIColor darkYellowColor] CGColor]; + self.previewImage.layer.borderWidth = 3.8f; + self.previewImage.layer.cornerRadius = 14; + + UIView *backView = [[UIView alloc] initWithFrame:self.tableView.frame]; + backView.backgroundColor = [UIColor darkBlueColorTransparent]; + [self.tableView setBackgroundView:backView]; + [backView release]; + self.tableView.backgroundColor = [UIColor clearColor]; + self.tableView.layer.borderColor = [[UIColor darkYellowColor] CGColor]; + self.tableView.layer.borderWidth = 2; + self.tableView.layer.cornerRadius = 8; + + self.descriptionLabel.textColor = [UIColor lightYellowColor]; + [super viewDidLoad]; +} + +-(void) viewWillAppear:(BOOL)animated { + NSIndexPath *indexPath = [NSIndexPath indexPathForRow:random()%[self.listOfMissions count] inSection:0]; + [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone]; + [self tableView:self.tableView didSelectRowAtIndexPath:indexPath]; + [super viewWillAppear:animated]; +} + +-(IBAction) buttonPressed:(id) sender { + UIButton *button = (UIButton *)sender; + + if (button.tag == 0) { + [AudioManagerController playBackSound]; + [[self parentViewController] dismissModalViewControllerAnimated:YES]; + } else { +/* GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self]; + [bridge startMissionGame:self.missionFile]; + [bridge release];*/ + } +} + +#pragma mark Table view data source +-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [self.listOfMissions count]; +} + +-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *CellIdentifier = @"CellTr"; + + UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier]; + if (cell == nil) + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; + + cell.textLabel.text = [[[self.listOfMissions objectAtIndex:[indexPath row]] stringByDeletingPathExtension] stringByReplacingOccurrencesOfString:@"_" withString:@" "]; + cell.textLabel.textColor = [UIColor lightYellowColor]; + //cell.textLabel.font = [UIFont fontWithName:@"Bradley Hand Bold" size:[UIFont labelFontSize]]; + cell.textLabel.textAlignment = UITextAlignmentCenter; + cell.textLabel.backgroundColor = [UIColor clearColor]; + cell.backgroundColor = [UIColor blackColorTransparent]; + return cell; +} + +#pragma mark - +#pragma mark Table view delegate +-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + NSString *missionName = [[self.listOfMissions objectAtIndex:[indexPath row]] stringByDeletingPathExtension]; + NSString *filePath = [[NSString alloc] initWithFormat:@"%@/Missions/Training/%@@2x.png",GRAPHICS_DIRECTORY(),missionName]; + UIImage *img = [[UIImage alloc] initWithContentsOfFile:filePath]; + [filePath release]; + [self.previewImage setImage:img]; + [img release]; + + self.descriptionLabel.text = nil; + NSString *descLocation = [[NSString alloc] initWithFormat:@"%@/missions_en.txt",LOCALE_DIRECTORY()]; + NSString *descComplete = [[NSString alloc] initWithContentsOfFile:descLocation encoding:NSUTF8StringEncoding error:NULL]; + [descLocation release]; + NSArray *descArray = [descComplete componentsSeparatedByString:@"\n"]; + [descComplete release]; + for (NSString *str in descArray) { + if ([str hasPrefix:missionName]) { + NSArray *descriptionText = [str componentsSeparatedByString:@"\""]; + self.descriptionLabel.text = [descriptionText objectAtIndex:1]; + } + } + + NSString *missionPath = [[NSString alloc] initWithFormat:@"%@/%@.lua",TRAININGS_DIRECTORY(),missionName]; + self.missionFile = missionPath; + [missionPath release]; +} + +#pragma mark - +#pragma mark Memory management +-(void) didReceiveMemoryWarning { + previewImage = nil; + missionFile = nil; + [super didReceiveMemoryWarning]; +} + +-(void) viewDidUnload { + self.listOfMissions = nil; + self.previewImage = nil; + self.tableView = nil; + self.descriptionLabel = nil; + self.missionFile = nil; + MSG_DIDUNLOAD(); + [super viewDidUnload]; +} + + +-(void) dealloc { + releaseAndNil(listOfMissions); + releaseAndNil(previewImage); + releaseAndNil(tableView); + releaseAndNil(descriptionLabel); + releaseAndNil(missionFile); + [super dealloc]; +} + + +@end