# HG changeset patch # User koda # Date 1285545072 -7200 # Node ID 46d7a5cf8ac6bcc28e8ffc1209871555804ee9d3 # Parent dd47efbdec46d5e2a36b1e225e6aaa5d0deaf30b further rework of MapConfigViewController, lists missions correctly (they don't load fine yet) diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Classes/CommodityFunctions.h --- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Mon Sep 27 01:51:12 2010 +0200 @@ -21,7 +21,8 @@ #import -#define MAX_HOGS 8 +#define MAX_HOGS 8 +#define CURRENT_AMMOSIZE 48 // also add a line in SingleWeaponViewController array #define DOCUMENTS_FOLDER() [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] @@ -40,15 +41,14 @@ #define BTN_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Btn"] #define FLAGS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Graphics/Flags/"] #define FORTS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Forts/"] +#define VOICES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Sounds/voices/"] #define THEMES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Themes/"] #define MAPS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Maps/"] -#define VOICES_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Sounds/voices/"] +#define MISSIONS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Maps/"] #define MSG_MEMCLEAN() DLog(@"has cleaned up some memory"); #define MSG_DIDUNLOAD() DLog(@"unloaded"); -#define CURRENT_AMMOSIZE 48 // also add a line in SingleWeaponViewController array - #define UICOLOR_HW_YELLOW_BODER [UIColor colorWithRed:(CGFloat)0xFE/255 green:(CGFloat)0xC0/255 blue:0 alpha:1] #define UICOLOR_HW_YELLOW_TEXT [UIColor colorWithRed:(CGFloat)0xF0/255 green:(CGFloat)0xD0/255 blue:0 alpha:1] #define UICOLOR_HW_DARKBLUE [UIColor colorWithRed:(CGFloat)0x0F/255 green:0 blue:(CGFloat)0x42/255 alpha:1] @@ -56,10 +56,10 @@ void createTeamNamed (NSString *nameWithoutExt); void createWeaponNamed (NSString *nameWithoutExt, int type); void createSchemeNamed (NSString *nameWithoutExt); -BOOL rotationManager (UIInterfaceOrientation interfaceOrientation); -NSInteger randomPort (); +void print_free_memory (); +void playSound (NSString *snd); void popError (const char *title, const char *message); -void print_free_memory (); +BOOL rotationManager (UIInterfaceOrientation interfaceOrientation); BOOL isPhone (); +NSInteger randomPort (); NSString *modelType (); -void playSound (NSString *snd); diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Classes/GameConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Mon Sep 27 01:51:12 2010 +0200 @@ -183,6 +183,7 @@ mapConfigViewController.mazeSizeCommand,@"mazesize_command", mapConfigViewController.themeCommand,@"theme_command", mapConfigViewController.staticMapCommand,@"staticmap_command", + mapConfigViewController.missionCommand,@"mission_command", teamConfigViewController.listOfSelectedTeams,@"teams_list", schemeWeaponConfigViewController.selectedScheme,@"scheme", schemeWeaponConfigViewController.selectedWeapon,@"weapon", @@ -191,10 +192,13 @@ // finally launch game and remove this controller DLog(@"sending config %@", gameDictionary); - if ([[gameDictionary allKeys] count] == 9) { + if ([[gameDictionary allKeys] count] == 10) { NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:gameDictionary,@"game_dictionary", @"",@"savefile", [NSNumber numberWithBool:NO],@"netgame", nil]; [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary]; + + // tell controllers that they're being reloaded + [mapConfigViewController viewWillAppear:YES]; } else { DLog(@"gameconfig data not complete!!\nmapConfigViewController = %@\nteamConfigViewController = %@\nschemeWeaponConfigViewController = %@\n", mapConfigViewController, teamConfigViewController, schemeWeaponConfigViewController); diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Classes/GameSetup.m --- a/project_files/HedgewarsMobile/Classes/GameSetup.m Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Mon Sep 27 01:51:12 2010 +0200 @@ -338,7 +338,7 @@ [self sendToEngine:staticMap]; // lua script (if set) - NSString *script = [self.gameConfig objectForKey:@"script_command"]; + NSString *script = [self.gameConfig objectForKey:@"mission_command"]; if ([script length] != 0) [self sendToEngine:script]; diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Classes/MapConfigViewController.h --- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.h Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.h Mon Sep 27 01:51:12 2010 +0200 @@ -44,6 +44,7 @@ NSString *mazeSizeCommand; NSString *themeCommand; NSString *staticMapCommand; + NSString *missionCommand; // various widgets in the view MapPreviewButtonView *previewButton; @@ -55,8 +56,7 @@ // internal objects NSIndexPath *lastIndexPath; - NSArray *themeArray; - NSArray *mapArray; + NSArray *dataSourceArray; } @property (nonatomic,retain) id delegate; @@ -69,6 +69,7 @@ @property (nonatomic,retain) NSString *mazeSizeCommand; @property (nonatomic,retain) NSString *themeCommand; @property (nonatomic,retain) NSString *staticMapCommand; +@property (nonatomic,retain) NSString *missionCommand; @property (nonatomic,retain) IBOutlet MapPreviewButtonView *previewButton; @property (nonatomic,retain) IBOutlet UITableView *tableView; @@ -78,8 +79,7 @@ @property (nonatomic,retain) IBOutlet UISlider *slider; @property (nonatomic,retain) NSIndexPath *lastIndexPath; -@property (nonatomic,retain) NSArray *themeArray; -@property (nonatomic,retain) NSArray *mapArray; +@property (nonatomic,retain) NSArray *dataSourceArray; -(IBAction) buttonPressed:(id) sender; diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Classes/MapConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Mon Sep 27 01:51:12 2010 +0200 @@ -24,10 +24,12 @@ #import "CommodityFunctions.h" #import "UIImageExtra.h" +#define scIndex self.segmentedControl.selectedSegmentIndex +#define isRandomness() (segmentedControl.selectedSegmentIndex == 0 || segmentedControl.selectedSegmentIndex == 2) @implementation MapConfigViewController @synthesize previewButton, maxHogs, seedCommand, templateFilterCommand, mapGenCommand, mazeSizeCommand, themeCommand, staticMapCommand, - tableView, maxLabel, sizeLabel, segmentedControl, slider, lastIndexPath, themeArray, mapArray, busy, delegate; + missionCommand, tableView, maxLabel, sizeLabel, segmentedControl, slider, lastIndexPath, dataSourceArray, busy, delegate; -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { @@ -52,14 +54,15 @@ self.seedCommand = seedCmd; [seedCmd release]; + NSArray *source = [self.dataSourceArray objectAtIndex:scIndex]; NSIndexPath *theIndex; - if (segmentedControl.selectedSegmentIndex != 1) { + if (isRandomness()) { // prevent other events and add an activity while the preview is beign generated [self turnOffWidgets]; [self.previewButton updatePreviewWithSeed:seed]; - theIndex = [NSIndexPath indexPathForRow:(random()%[self.themeArray count]) inSection:0]; + theIndex = [NSIndexPath indexPathForRow:(random()%[source count]) inSection:0]; } else { - theIndex = [NSIndexPath indexPathForRow:(random()%[self.mapArray count]) inSection:0]; + theIndex = [NSIndexPath indexPathForRow:(random()%[source count]) inSection:0]; // the preview for static maps is loaded in didSelectRowAtIndexPath } [seed release]; @@ -108,10 +111,7 @@ } -(NSInteger) tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger) section { - if (self.segmentedControl.selectedSegmentIndex != 1) - return [themeArray count]; - else - return [mapArray count]; + return [[self.dataSourceArray objectAtIndex:scIndex] count]; } -(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { @@ -125,17 +125,17 @@ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT; - if (self.segmentedControl.selectedSegmentIndex != 1) { - // the % prevents a strange bug that occurs sporadically - NSString *themeName = [self.themeArray objectAtIndex:row % [self.themeArray count]]; - cell.textLabel.text = themeName; - UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),themeName]]; + NSArray *source = [self.dataSourceArray objectAtIndex:scIndex]; + + NSString *labelString = [source objectAtIndex:row]; + cell.textLabel.text = labelString; + + if (isRandomness()) { + UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),labelString]]; cell.imageView.image = image; [image release]; - } else { - cell.textLabel.text = [self.mapArray objectAtIndex:row]; + } else cell.imageView.image = nil; - } if (row == [self.lastIndexPath row]) { UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]]; @@ -150,25 +150,31 @@ // this set details for a static map (called by didSelectRowAtIndexPath) -(void) setDetailsForStaticMap:(NSInteger) index { - // update label - maxHogs = 18; - NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg", MAPS_DIRECTORY(),[self.mapArray objectAtIndex:index]]; + NSArray *source = [self.dataSourceArray objectAtIndex:scIndex]; + + NSString *fileCfg = [[NSString alloc] initWithFormat:@"%@/%@/map.cfg", + (scIndex == 1) ? MAPS_DIRECTORY() : MISSIONS_DIRECTORY(),[source objectAtIndex:index]]; NSString *contents = [[NSString alloc] initWithContentsOfFile:fileCfg encoding:NSUTF8StringEncoding error:NULL]; [fileCfg release]; NSArray *split = [contents componentsSeparatedByString:@"\n"]; [contents release]; - // set the theme and map here - self.themeCommand = [NSString stringWithFormat:@"etheme %@", [split objectAtIndex:0]]; - self.staticMapCommand = [NSString stringWithFormat:@"emap %@", [self.mapArray objectAtIndex:index]]; - // if the number is not set we keep 18 standard; // sometimes it's not set but there are trailing characters, we get around them with the second equation if ([split count] > 1 && [[split objectAtIndex:1] intValue] > 0) maxHogs = [[split objectAtIndex:1] intValue]; + else + maxHogs = 18; NSString *max = [[NSString alloc] initWithFormat:@"%d",maxHogs]; self.maxLabel.text = max; [max release]; + + self.themeCommand = [NSString stringWithFormat:@"etheme %@", [split objectAtIndex:0]]; + self.staticMapCommand = [NSString stringWithFormat:@"emap %@", [source objectAtIndex:index]]; + if (scIndex != 3) + self.missionCommand = @""; + else + self.missionCommand = [NSString stringWithFormat:@"escript %@/%@/map.lua",MISSIONS_DIRECTORY(),[source objectAtIndex:index]]; } #pragma mark - @@ -178,12 +184,13 @@ int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1; if (newRow != oldRow) { - [self.tableView reloadData]; - if (self.segmentedControl.selectedSegmentIndex != 1) { + NSArray *source = [self.dataSourceArray objectAtIndex:scIndex]; + if (isRandomness()) { // just change the theme, don't update preview - self.themeCommand = [NSString stringWithFormat:@"etheme %@", [self.themeArray objectAtIndex:newRow]]; + self.themeCommand = [NSString stringWithFormat:@"etheme %@", [source objectAtIndex:newRow]]; } else { - NSString *fileImage = [NSString stringWithFormat:@"%@/%@/preview.png",MAPS_DIRECTORY(),[self.mapArray objectAtIndex:newRow]]; + NSString *fileImage = [NSString stringWithFormat:@"%@/%@/preview.png", + (scIndex == 1) ? MAPS_DIRECTORY() : MISSIONS_DIRECTORY(),[source objectAtIndex:newRow]]; [self.previewButton updatePreviewWithFile:fileImage]; [self setDetailsForStaticMap:newRow]; } @@ -290,7 +297,7 @@ // perform actions based on the activated section, then call updatePreview to visually update the selection // and if necessary update the table with a slide animation -(IBAction) segmentedControlChanged:(id) sender { - NSString *mapgen, *staticmap; + NSString *mapgen, *staticmap, *mission; NSInteger newPage = self.segmentedControl.selectedSegmentIndex; playSound(@"selSound"); @@ -298,14 +305,17 @@ case 0: // Random mapgen = @"e$mapgen 0"; staticmap = @""; + mission = @""; [self sliderChanged:nil]; self.slider.enabled = YES; break; case 1: // Map + case 3: // Mission mapgen = @"e$mapgen 0"; - // dummy value, everything is set by -updatePreview -> -didSelectRowAtIndexPath -> -updatePreviewWithMap + // dummy values, these are set by -updatePreview -> -didSelectRowAtIndexPath -> -setDetailsForStaticMap staticmap = @"map Bamboo"; + mission = @""; self.slider.enabled = NO; self.sizeLabel.text = NSLocalizedString(@"No filter",@""); break; @@ -313,6 +323,7 @@ case 2: // Maze mapgen = @"e$mapgen 1"; staticmap = @""; + mission = @""; [self sliderChanged:nil]; self.slider.enabled = YES; break; @@ -320,31 +331,52 @@ default: mapgen = nil; staticmap = nil; + mission = nil; break; } self.mapGenCommand = mapgen; self.staticMapCommand = staticmap; - [self updatePreview]; + self.missionCommand = mission; // nice animation for updating the table when appropriate (on iphone) if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) - if (((oldPage == 0 || oldPage == 2) && newPage == 1) || - (oldPage == 1 && (newPage == 0 || newPage == 2))) { - [UIView beginAnimations:@"moving out table" context:NULL]; + if (((oldPage == 0 || oldPage == 2) && (newPage == 1 || newPage == 3)) || + ((oldPage == 1 || oldPage == 3) && (newPage == 0 || newPage == 2)) || + ((oldPage == 1 && newPage == 3) || (oldPage == 3 || newPage == 1))) { self.tableView.frame = CGRectMake(480, 0, 185, 276); + [UIView beginAnimations:@"moving in table" context:NULL]; + self.tableView.frame = CGRectMake(295, 0, 185, 276); [UIView commitAnimations]; - [self performSelector:@selector(moveTable) withObject:nil afterDelay:0.2]; } + + [self.tableView reloadData]; + [self updatePreview]; oldPage = newPage; } -// update data when table is not visible and then show it --(void) moveTable { - [self.tableView reloadData]; +#pragma mark - +#pragma mark delegate functions for iPad +-(IBAction) buttonPressed:(id) sender { + if (self.delegate != nil && [delegate respondsToSelector:@selector(buttonPressed:)]) + [self.delegate buttonPressed:(UIButton *)sender]; +} - [UIView beginAnimations:@"moving in table" context:NULL]; - self.tableView.frame = CGRectMake(295, 0, 185, 276); - [UIView commitAnimations]; +-(void) loadDataSourceArray { + // themes.cfg contains all the user-selectable themes + NSString *string = [[NSString alloc] initWithContentsOfFile:[THEMES_DIRECTORY() stringByAppendingString:@"/themes.cfg"] + encoding:NSUTF8StringEncoding + error:NULL]; + NSMutableArray *themeArray = [[NSMutableArray alloc] initWithArray:[string componentsSeparatedByString:@"\n"]]; + [string release]; + // remove a trailing "" element + [themeArray removeLastObject]; + NSArray *mapArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL]; + NSArray *missionArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MISSIONS_DIRECTORY() error:NULL]; + + NSArray *array = [[NSArray alloc] initWithObjects:themeArray,mapArray,themeArray,missionArray,nil]; + self.dataSourceArray = array; + [array release]; + [themeArray release]; } #pragma mark - @@ -356,25 +388,18 @@ CGSize screenSize = [[UIScreen mainScreen] bounds].size; self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44); - - // themes.cfg contains all the user-selectable themes - NSString *string = [[NSString alloc] initWithContentsOfFile:[THEMES_DIRECTORY() stringByAppendingString:@"/themes.cfg"] - encoding:NSUTF8StringEncoding - error:NULL]; - NSMutableArray *array = [[NSMutableArray alloc] initWithArray:[string componentsSeparatedByString:@"\n"]]; - [string release]; - // remove a trailing "" element - [array removeLastObject]; - self.themeArray = array; - [array release]; - self.mapArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL]; - + // initialize some "default" values self.sizeLabel.text = NSLocalizedString(@"All",@""); self.slider.value = 0.05f; - + oldValue = 5; + + busy = NO; + [self loadDataSourceArray]; + self.lastIndexPath = [NSIndexPath indexPathForRow:-1 inSection:0]; + // select a map at first because it's faster - done in IB - //self.segmentedControl.selectedSegmentIndex = 1; + oldPage = 1; if (self.segmentedControl.selectedSegmentIndex == 1) { self.slider.enabled = NO; self.sizeLabel.text = NSLocalizedString(@"No filter",@""); @@ -384,12 +409,7 @@ self.mazeSizeCommand = @"e$maze_size 0"; self.mapGenCommand = @"e$mapgen 0"; self.staticMapCommand = @""; - - self.lastIndexPath = [NSIndexPath indexPathForRow:-1 inSection:0]; - - oldValue = 5; - oldPage = 0; - busy = NO; + self.missionCommand = @""; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { [self.tableView setBackgroundView:nil]; @@ -400,24 +420,17 @@ } } +-(void) viewWillAppear:(BOOL)animated { + if (self.dataSourceArray == nil) + [self loadDataSourceArray]; + [super viewWillAppear:animated]; +} + -(void) viewDidAppear:(BOOL) animated { [self updatePreview]; [super viewDidAppear:animated]; } -#pragma mark - -#pragma mark delegate functions for iPad --(IBAction) buttonPressed:(id) sender { - if (self.delegate != nil && [delegate respondsToSelector:@selector(buttonPressed:)]) - [self.delegate buttonPressed:(UIButton *)sender]; -} - -#pragma mark - --(void) didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - MSG_MEMCLEAN(); -} - -(void) viewDidUnload { self.delegate = nil; @@ -428,6 +441,7 @@ self.mazeSizeCommand = nil; self.themeCommand = nil; self.staticMapCommand = nil; + self.missionCommand = nil; self.previewButton = nil; self.tableView = nil; @@ -437,13 +451,19 @@ self.slider = nil; self.lastIndexPath = nil; - self.themeArray = nil; - self.mapArray = nil; + self.dataSourceArray = nil; MSG_DIDUNLOAD(); [super viewDidUnload]; } +-(void) didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + self.dataSourceArray = nil; + // maybe we can save some more + MSG_MEMCLEAN(); +} + -(void) dealloc { self.delegate = nil; @@ -453,6 +473,7 @@ [mazeSizeCommand release]; [themeCommand release]; [staticMapCommand release]; + [missionCommand release]; [previewButton release]; [tableView release]; @@ -462,8 +483,7 @@ [slider release]; [lastIndexPath release]; - [themeArray release]; - [mapArray release]; + [dataSourceArray release]; [super dealloc]; } diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj --- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Mon Sep 27 01:51:12 2010 +0200 @@ -2144,7 +2144,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/btn*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels\n\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Hats/{TeamCap,TeamHeadband,TeamHair}\n\ncp -R ${PROJECT_DIR}/audio/* ${PROJECT_DIR}/Data/\n\n#the following ones must be removed when their support is implemented\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball} ${PROJECT_DIR}/Data/Missions/Maps/\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\n#remove Isalnd from the list of Themes\nawk '{if ($1 != \"Island\") print $0}' < ${PROJECT_DIR}/Data/Themes/themes.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/themes.cfg\n\n#remove Isalnd from the Maps and themes\nrm -rf ${PROJECT_DIR}/Data/Themes/Island\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Cave/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Cave/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg\n\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n\n#delete useless fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n"; + shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/btn*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels\n\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Hats/{TeamCap,TeamHeadband,TeamHair}\n\n#copy mono audio\ncp -R ${PROJECT_DIR}/audio/* ${PROJECT_DIR}/Data/\n\n#the following ones must be removed when their support is implemented\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball} ${PROJECT_DIR}/Data/Missions/Maps/\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\n#remove Isalnd from the list of Themes\nawk '{if ($1 != \"Island\") print $0}' < ${PROJECT_DIR}/Data/Themes/themes.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/themes.cfg\n\n#remove Isalnd from the Maps and themes\nrm -rf ${PROJECT_DIR}/Data/Themes/Island\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Cave/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Cave/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg\n\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n\n#delete useless fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n"; showEnvVarsInLog = 0; }; 9283011B0F10CB2D00CC5A3C /* Build libfpc.a */ = { diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib --- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib Mon Sep 27 01:51:12 2010 +0200 @@ -148,42 +148,47 @@ 289 - {{744, 166}, {240, 30}} + {{725, 166}, {277, 30}} NO IBIPadFramework 2 - 3 + 4 1 YES Random Map Maze + Mission YES + YES + YES {0, 0} {0, 0} {0, 0} + {0, 0} YES + 1 @@ -610,7 +615,6 @@ - @@ -619,6 +623,7 @@ + diff -r dd47efbdec46 -r 46d7a5cf8ac6 project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib --- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Sun Sep 26 23:48:03 2010 +0200 +++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Mon Sep 27 01:51:12 2010 +0200 @@ -45,42 +45,47 @@ 292 - {{28, 166}, {240, 30}} + {{20, 166}, {256, 30}} NO IBCocoaTouchFramework 2 - 3 + 4 0 YES Random Map Maze + Mission YES + YES + YES {0, 0} {0, 0} {0, 0} + {0, 0} YES + @@ -327,10 +332,10 @@ YES - +