# HG changeset patch
# User koda
# Date 1292460315 -3600
# Node ID 9b614e420de5f7d4d40aeaefd836c10399919361
# Parent bad3411cba491cf830f1b66ba8f1a6510a1bf490
add two preferences for enabling/disabling blurry land and multitasking
diff -r bad3411cba49 -r 9b614e420de5 project_files/HedgewarsMobile/Classes/GameSetup.m
--- a/project_files/HedgewarsMobile/Classes/GameSetup.m Thu Dec 16 00:48:32 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Thu Dec 16 01:45:15 2010 +0100
@@ -570,19 +570,19 @@
NSString *verticalSize = [[NSString alloc] initWithFormat:@"%d", height];
const char **gameArgs = (const char**) malloc(sizeof(char *) * 10);
NSInteger tmpQuality;
+ BOOL enhanced = [[self.systemSettings objectForKey:@"enhanced"] boolValue];
NSString *modelId = modelType();
- if ([modelId hasPrefix:@"iPhone1"] || // = iPhone or iPhone 3G
- [modelId hasPrefix:@"iPod1,1"] || [modelId hasPrefix:@"iPod2,1"]) // = iPod Touch or iPod Touch 2G
- tmpQuality = 0x00000001 | 0x00000002 | 0x00000008 | 0x00000040; // rqLowRes | rqBlurryLand | rqSimpleRope | rqKillFlakes
- else if ([modelId hasPrefix:@"iPhone2"] || // = iPhone 3GS
- [modelId hasPrefix:@"iPod3"]) // = iPod Touch 3G
- tmpQuality = 0x00000002 | 0x00000040; // rqBlurryLand | rqKillFlakes
- else if ([modelId hasPrefix:@"iPad1"]) // = iPad
- tmpQuality = 0x00000002; // rqBlurryLand
- else // = everything else
- tmpQuality = 0; // full quality
- if (IS_IPAD() == NO) // = disable tooltips on phone
+ if ([modelId hasPrefix:@"iPhone1"] || [modelId hasPrefix:@"iPod1,1"] || [modelId hasPrefix:@"iPod2,1"]) // = iPhone and iPhone 3G or iPod Touch or iPod Touch 2G
+ tmpQuality = 0x00000001 | 0x00000002 | 0x00000008 | 0x00000040; // rqLowRes | rqBlurryLand | rqSimpleRope | rqKillFlakes
+ else if ([modelId hasPrefix:@"iPhone2"] || [modelId hasPrefix:@"iPod3"]) // = iPhone 3GS or iPod Touch 3G
+ tmpQuality = 0x00000002 | 0x00000040; // rqBlurryLand | rqKillFlakes
+ else if ([modelId hasPrefix:@"iPad1"] || enhanced == NO) // = iPad 1G or not enhanced mode
+ tmpQuality = 0x00000002; // rqBlurryLand
+ else // = everything else
+ tmpQuality = 0; // full quality
+
+ if (IS_IPAD() == NO) // = disable tooltips on phone
tmpQuality = tmpQuality | 0x00000400;
// prevents using an empty nickname
diff -r bad3411cba49 -r 9b614e420de5 project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Thu Dec 16 00:48:32 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Thu Dec 16 01:45:15 2010 +0100
@@ -76,7 +76,13 @@
case 30: //alternateSwitch
[self.settingsDictionary setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"alternate"];
break;
- case 60: //getReady
+ case 70: //enhanced graphics
+ [self.settingsDictionary setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"enhanced"];
+ break;
+ case 80: //nomultitasking
+ [self.settingsDictionary setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"multitasking"];
+ break;
+ case 60: //classic menu
[self.settingsDictionary setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"menu"];
break;
default:
@@ -109,10 +115,10 @@
return 2;
break;
case 2: // other stuff
- if (IS_IPAD())
- return 2;
+ if (IS_IPAD() == YES)
+ return 4;
else
- return 1;
+ return 3;
break;
default:
DLog(@"Nope");
@@ -218,16 +224,34 @@
}
switchContent = (UISwitch *)cell.accessoryView;
- if (row == 0) {
- cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
- cell.detailTextLabel.text = NSLocalizedString(@"Damage popups will notify you on every single hit", @"");
- switchContent.on = [[self.settingsDictionary objectForKey:@"alternate"] boolValue];
- switchContent.tag = 30;
- } else {
- cell.textLabel.text = NSLocalizedString(@"Classic Ammo Menu", @"");
- cell.detailTextLabel.text = NSLocalizedString(@"Select which style of ammo menu you prefer",@"");
- switchContent.on = [[self.settingsDictionary objectForKey:@"menu"] boolValue];
- switchContent.tag = 60;
+ switch (row) {
+ case 0:
+ cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"Damage popups will notify you on every single hit", @"");
+ switchContent.on = [[self.settingsDictionary objectForKey:@"alternate"] boolValue];
+ switchContent.tag = 30;
+ break;
+ case 1:
+ cell.textLabel.text = NSLocalizedString(@"Enanched Graphics Mode", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"The game will use more memory so it could crash!", @"");
+ switchContent.on = [[self.settingsDictionary objectForKey:@"enhanced"] boolValue];
+ switchContent.tag = 70;
+ break;
+ case 2:
+ cell.textLabel.text = NSLocalizedString(@"Multitasking Enabled", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"Disable it in case of issues when returing in game", @"");
+ switchContent.on = [[self.settingsDictionary objectForKey:@"multitasking"] boolValue];
+ switchContent.tag = 80;
+ break;
+ case 3:
+ cell.textLabel.text = NSLocalizedString(@"Classic Ammo Menu", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"Select which style of ammo menu you prefer",@"");
+ switchContent.on = [[self.settingsDictionary objectForKey:@"menu"] boolValue];
+ switchContent.tag = 60;
+ break;
+ default:
+ DLog(@"Nope");
+ break;
}
break;
default:
diff -r bad3411cba49 -r 9b614e420de5 project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m
--- a/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Thu Dec 16 00:48:32 2010 +0100
+++ b/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Thu Dec 16 01:45:15 2010 +0100
@@ -232,8 +232,9 @@
if ([device respondsToSelector:@selector(isMultitaskingSupported)] &&
device.multitaskingSupported &&
self.isInGame) {
- // multiasking in-game works only for ios >= 4.2, returns a black screen on other verions
- if (NSClassFromString(@"UIPrintInfo"))
+ // let's try to be permissive with multitasking here...
+ NSDictionary *settings = [[NSDictionary alloc] initWithContentsOfFile:SETTINGS_FILE()];
+ if ([[settings objectForKey:@"multitasking"] boolValue])
HW_suspend();
else {
// so the game returns to the configuration view
@@ -246,6 +247,7 @@
longjmp(*(jump_env()), 1);
}
}
+ [settings release];
}
}
diff -r bad3411cba49 -r 9b614e420de5 project_files/HedgewarsMobile/Resources/Settings/settings.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/settings.plist Thu Dec 16 00:48:32 2010 +0100
+++ b/project_files/HedgewarsMobile/Resources/Settings/settings.plist Thu Dec 16 01:45:15 2010 +0100
@@ -16,5 +16,9 @@
password_length
0
+ enhanced
+
+ multitasking
+