# HG changeset patch # User koda # Date 1278124949 -7200 # Node ID 85d69ddb41b66ccad93d0a889a246a8aea978692 # Parent b78d7959540acb2102bd7b782bdce225c8a0b4d1 tackling the iphoneos todo (another trial for the beginning sporadic bug, remove curl animation, don't need to go to detail page) diff -r b78d7959540a -r 85d69ddb41b6 hedgewars/uVisualGears.pas --- a/hedgewars/uVisualGears.pas Sat Jul 03 04:09:27 2010 +0200 +++ b/hedgewars/uVisualGears.pas Sat Jul 03 04:42:29 2010 +0200 @@ -375,7 +375,7 @@ begin Tint(Gear^.Tint); case Gear^.Kind of - vgtFlake: if ((cReducedQuality and rqkillFlakes) <> 0) then + vgtFlake: if ((cReducedQuality and rqkillFlakes) = 0) then if vobVelocity = 0 then DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame) else diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/CommodityFunctions.h --- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Sat Jul 03 04:42:29 2010 +0200 @@ -13,8 +13,6 @@ #define SETTINGS_FILE() [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) \ objectAtIndex:0] stringByAppendingString:@"/settings.plist"] -#define GAMECONFIG_FILE() [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) \ - objectAtIndex:0] stringByAppendingString:@"/gameconfig.plist"] #define DEBUG_FILE() [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) \ objectAtIndex:0] stringByAppendingString:@"/debug.txt"] diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/GameConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sat Jul 03 04:42:29 2010 +0200 @@ -17,8 +17,7 @@ -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - // dirty trick to avoid rotating below the curl - return interfaceOrientation == self.parentViewController.interfaceOrientation; + return rotationManager(interfaceOrientation); } -(IBAction) buttonPressed:(id) sender { @@ -88,7 +87,7 @@ // play only if there is more than one team if ([teamConfigViewController.listOfSelectedTeams count] < 2) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too few teams playing",@"") - message:NSLocalizedString(@"You need to select at least two teams to play a game",@"") + message:NSLocalizedString(@"Select at least two teams to play a game",@"") delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") otherButtonTitles:nil]; @@ -104,7 +103,7 @@ if (hogs > mapConfigViewController.maxHogs) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many hogs",@"") - message:NSLocalizedString(@"The map you selected is too small for that many hogs",@"") + message:NSLocalizedString(@"The map is too small for that many hogs",@"") delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") otherButtonTitles:nil]; @@ -115,7 +114,7 @@ if ([schemeWeaponConfigViewController.selectedScheme length] == 0 || [schemeWeaponConfigViewController.selectedWeapon length] == 0 ) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Missing detail",@"") - message:NSLocalizedString(@"Make sure you selected one Scheme and one Weapon for this game",@"") + message:NSLocalizedString(@"Select one Scheme and one Weapon for this game",@"") delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"") otherButtonTitles:nil]; @@ -125,7 +124,7 @@ } // create the configuration file that is going to be sent to engine - NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:mapConfigViewController.seedCommand,@"seed_command", + NSDictionary *gameDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:mapConfigViewController.seedCommand,@"seed_command", mapConfigViewController.templateFilterCommand,@"templatefilter_command", mapConfigViewController.mapGenCommand,@"mapgen_command", mapConfigViewController.mazeSizeCommand,@"mazesize_command", @@ -134,12 +133,11 @@ schemeWeaponConfigViewController.selectedScheme,@"scheme", schemeWeaponConfigViewController.selectedWeapon,@"weapon", nil]; - [dict writeToFile:GAMECONFIG_FILE() atomically:YES]; - [dict release]; // finally launch game and remove this controller [[self parentViewController] dismissModalViewControllerAnimated:YES]; - [[SDLUIKitDelegate sharedAppDelegate] startSDLgame]; + [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:gameDictionary]; + [gameDictionary release]; } -(void) viewDidLoad { @@ -165,8 +163,12 @@ break; } } - } else + } else { + // this is the visible controller mapConfigViewController = [[MapConfigViewController alloc] initWithNibName:@"MapConfigViewController-iPhone" bundle:nil]; + // this must be loaded to auto set default scheme and ammo + schemeWeaponConfigViewController = [[SchemeWeaponConfigViewController alloc] initWithStyle:UITableViewStyleGrouped]; + } activeController = mapConfigViewController; [self.view addSubview:mapConfigViewController.view]; diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/GameSetup.h --- a/project_files/HedgewarsMobile/Classes/GameSetup.h Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameSetup.h Sat Jul 03 04:42:29 2010 +0200 @@ -20,6 +20,7 @@ @property (nonatomic, retain) NSDictionary *systemSettings; @property (nonatomic, retain) NSDictionary *gameConfig; +-(id) initWithDictionary:(NSDictionary *)gameDictionary; -(void) engineProtocol; -(void) startThread:(NSString *)selector; -(int) sendToEngine:(NSString *)string; diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/GameSetup.m --- a/project_files/HedgewarsMobile/Classes/GameSetup.m Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Sat Jul 03 04:42:29 2010 +0200 @@ -21,7 +21,7 @@ @synthesize systemSettings, gameConfig; --(id) init { +-(id) initWithDictionary:(NSDictionary *)gameDictionary { if (self = [super init]) { ipcPort = randomPort(); @@ -30,9 +30,7 @@ self.systemSettings = dictSett; [dictSett release]; - NSDictionary *dictGame = [[NSDictionary alloc] initWithContentsOfFile:GAMECONFIG_FILE()]; - self.gameConfig = dictGame; - [dictGame release]; + self.gameConfig = gameDictionary; } return self; } @@ -336,7 +334,7 @@ break; default: // empty packet or just statistics -- in either cases gameTicks is sent - //gameTicks = SDLNet_Read16 (&buffer[msgSize - 2]); + gameTicks = SDLNet_Read16 (&buffer[msgSize - 2]); //DLog(@"engineProtocol - %d: received [%s]", gameTicks, buffer); break; } @@ -347,9 +345,7 @@ // Close the client socket SDLNet_TCP_Close(csd); SDLNet_Quit(); - - [[NSFileManager defaultManager] removeItemAtPath:GAMECONFIG_FILE() error:NULL]; - + [pool release]; //Invoking this method should be avoided as it does not give your thread a chance to clean up any resources it allocated during its execution. //[NSThread exit]; diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/MainMenuViewController.m --- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sat Jul 03 04:42:29 2010 +0200 @@ -107,9 +107,6 @@ case 0: gameConfigViewController = [[GameConfigViewController alloc] initWithNibName:@"GameConfigViewController" bundle:nil]; - // bug in UIModalTransitionStylePartialCurl, displays the controller awkwardly if it is not allocated every time - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - gameConfigViewController.modalTransitionStyle = UIModalTransitionStylePartialCurl; [self presentModalViewController:gameConfigViewController animated:YES]; break; case 2: diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.h --- a/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.h Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.h Sat Jul 03 04:42:29 2010 +0200 @@ -32,7 +32,7 @@ } +(SDLUIKitDelegate *)sharedAppDelegate; --(void) startSDLgame; +-(void) startSDLgame:(NSDictionary *)gameDictionary; -(void) displayOverlayLater; @end diff -r b78d7959540a -r 85d69ddb41b6 project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m --- a/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Sat Jul 03 04:09:27 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Sat Jul 03 04:42:29 2010 +0200 @@ -75,14 +75,15 @@ } // main routine for calling the actual game engine --(IBAction) startSDLgame { +-(IBAction) startSDLgame: (NSDictionary *)gameDictionary { [UIView beginAnimations:@"removing main controller" context:NULL]; [UIView setAnimationDuration:1]; mainViewController.view.alpha = 0; [UIView commitAnimations]; // pull out useful configuration info from various files - GameSetup *setup = [[GameSetup alloc] init]; + GameSetup *setup = [[GameSetup alloc] initWithDictionary:gameDictionary]; + [setup startThread:@"engineProtocol"]; const char **gameArgs = [setup getSettings]; [setup release]; @@ -96,6 +97,7 @@ isInGame = NO; free(gameArgs); + // bring the uiwindow below in front UIWindow *aWin = [[[UIApplication sharedApplication] windows] objectAtIndex:0]; [aWin makeKeyAndVisible]; aWin = [[[UIApplication sharedApplication] windows] lastObject];