cocoaTouch/SettingsViewController.m
author smxx
Thu, 04 Feb 2010 14:48:49 +0000
changeset 2745 11fce231f24a
parent 2743 39d097ac2276
child 2799 558b29bf00c5
permissions -rw-r--r--
Engine: + Split PlaySound into PlaySound and LoopSound + Added overloaded versions of PlaySound/LoopSound that won't require voicepack parameter + LoopSound now allows multiple copies of the same sound to play looped and returns the channel used for playback (to stop them later) + StopSound now allows either a specific sound (single playback) or channel (single playback as well as looped playback) to be stopped + SoundChannel attribute for Gears to be used when looping sounds
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     1
//
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     2
//  SettingsViewController.m
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     3
//  hwengine
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     4
//
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     5
//  Created by Vittorio on 08/01/10.
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     7
//
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     8
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
     9
#import "SettingsViewController.h"
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    10
#import "SDL_uikitappdelegate.h"
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    11
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    12
@implementation SettingsViewController
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    13
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    14
@synthesize username, password, musicSwitch, soundsSwitch, altDamageSwitch, 
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    15
	    settingsTable, buttonContainer, parentView;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    16
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    17
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    18
-(void) loadView {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    19
	self.musicSwitch = [[UISwitch alloc] init];
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    20
	self.soundsSwitch = [[UISwitch alloc] init];
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    21
	self.altDamageSwitch = [[UISwitch alloc] init];
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    22
	[self.soundsSwitch addTarget:self action:@selector(sameValueSwitch) forControlEvents:UIControlEventValueChanged];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    23
	[self.musicSwitch addTarget:self action:@selector(checkValueSwitch) forControlEvents:UIControlEventValueChanged];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    24
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    25
	[super loadView];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    26
}
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    27
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    28
-(void) viewDidLoad {
2698
90585aba87ad objc/pascal finally working
koda
parents: 2696
diff changeset
    29
	NSString *filePath = [[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"];
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    30
	
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    31
	needsReset = NO;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    32
	if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {	
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    33
		NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    34
		username.text = [data objectForKey:@"username"];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    35
		password.text = [data objectForKey:@"password"];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    36
		if (1 == [[data objectForKey:@"music"] intValue]) {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    37
			musicSwitch.on = YES;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    38
		} else {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    39
			musicSwitch.on = NO;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    40
		}
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    41
		if (1 == [[data objectForKey:@"sounds"] intValue]) {
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    42
			soundsSwitch.on = YES;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    43
		} else {
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    44
			soundsSwitch.on = NO;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    45
		}
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    46
		if (1 == [[data objectForKey:@"alternate"] intValue]) {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    47
			altDamageSwitch.on = YES;
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    48
		} else {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    49
			altDamageSwitch.on = NO;
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    50
		}		
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    51
		[data release];
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    52
	} else {
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    53
		[NSException raise:@"File NOT found" format:@"The file settings.plist was not found at %@", filePath];
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    54
	}
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    55
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    56
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    57
	username.textColor = [UIColor grayColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    58
	password.textColor = [UIColor grayColor];
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    59
	settingsTable.backgroundColor = [UIColor clearColor];
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    60
	settingsTable.allowsSelection = NO;
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    61
	buttonContainer.backgroundColor = [UIColor clearColor];
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    62
	settingsTable.tableFooterView = buttonContainer;
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    63
	
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    64
	[super viewDidLoad];
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    65
}
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    66
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    67
-(void) viewDidUnload {
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    68
	self.username = nil;
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    69
	self.password = nil;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    70
	self.musicSwitch = nil;
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    71
	self.soundsSwitch = nil;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    72
	self.altDamageSwitch = nil;
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
    73
	self.settingsTable = nil;
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    74
	self.buttonContainer = nil;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    75
	[super viewDidUnload];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    76
}
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    77
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    78
//- (void)applicationWillTerminate:(NSNotification *)notification {
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    79
-(void) viewWillDisappear:(BOOL)animated {
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    80
	if (!needsReset) {
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    81
		NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    82
		NSString *tmpMus = (musicSwitch.on) ? @"1" : @"0";
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    83
		NSString *tmpEff = (soundsSwitch.on) ? @"1" : @"0";
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    84
		NSString *tmpAlt = (altDamageSwitch.on) ? @"1" : @"0";
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    85
		
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    86
		[saveDict setObject:username.text forKey:@"username"];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    87
		[saveDict setObject:password.text forKey:@"password"];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    88
		[saveDict setObject:tmpMus forKey:@"music"];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    89
		[saveDict setObject:tmpEff forKey:@"sounds"];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    90
		[saveDict setObject:tmpAlt forKey:@"alternate"];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    91
		
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    92
		[saveDict writeToFile:[[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"] atomically:YES];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    93
		[saveDict release];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
    94
	}
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    95
	[super viewWillDisappear:animated];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    96
}
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    97
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    98
-(void) dealloc {
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
    99
	[username release];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   100
	[password release];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   101
	[musicSwitch release];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   102
	[soundsSwitch release];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   103
	[altDamageSwitch release];
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   104
	[settingsTable release];
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   105
	[buttonContainer release];
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   106
	[super dealloc];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   107
}
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   108
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   109
// Override to allow orientations other than the default portrait orientation.
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   110
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   111
    // Return YES for supported orientations
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   112
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   113
}
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   114
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   115
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
   116
// makes the keyboard go away when background is tapped
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   117
-(IBAction) backgroundTap: (id)sender {
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   118
	[username resignFirstResponder];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   119
	[password resignFirstResponder];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   120
}
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   121
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
   122
// makes the keyboard go away when "Done" is tapped
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   123
-(IBAction) textFieldDoneEditing: (id)sender {
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   124
	[sender resignFirstResponder];
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   125
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   126
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   127
// set music off when sound is turned off
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   128
-(void) sameValueSwitch {
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   129
	if (YES == self.musicSwitch.on) {
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   130
		[musicSwitch setOn:NO animated:YES];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   131
	}
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   132
}
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   133
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   134
// don't enable music when sound is off
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   135
-(void) checkValueSwitch {
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   136
	if (NO == self.soundsSwitch.on) {
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   137
		[musicSwitch setOn:!musicSwitch.on animated:YES];
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   138
	}
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   139
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   140
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   141
#pragma mark -
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   142
#pragma mark UIActionSheet Methods
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   143
-(IBAction) deleteData: (id)sender {
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   144
	/* temporary commented out
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   145
	UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Are you reeeeeally sure?", @"")
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   146
								 delegate:self
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   147
							cancelButtonTitle:NSLocalizedString(@"Well, maybe not...", @"")
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   148
						   destructiveButtonTitle:NSLocalizedString(@"As sure as I can be!", @"")
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   149
							otherButtonTitles:nil];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   150
	[actionSheet showInView:self.view];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   151
	[actionSheet release];
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   152
	 */
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   153
	[UIView beginAnimations:@"Get Back" context:NULL];
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   154
	[UIView setAnimationDuration:3];
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   155
	[UIView setAnimationDuration:UIViewAnimationCurveEaseOut];
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   156
	
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   157
	self.view.frame = CGRectMake(0, -320, 480, 320);
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   158
	self.parentView.frame = CGRectMake(0, 0, 480, 320);
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   159
	[UIView commitAnimations];
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   160
2740
03df0573a9fd programmatically load main controller
koda
parents: 2723
diff changeset
   161
	[self.view performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:2];
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   162
	self.parentView = nil;
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   163
}
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   164
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   165
-(void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex {
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   166
	if ([actionSheet cancelButtonIndex] != buttonIndex) {
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   167
		needsReset = YES;
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   168
		
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   169
		// get the documents dirctory
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   170
		NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   171
		NSString *documentsDirectory = [paths objectAtIndex:0];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   172
		
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   173
		// get the content of the directory
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   174
		NSFileManager *fm = [NSFileManager defaultManager];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   175
		NSArray *dirContent = [fm directoryContentsAtPath:documentsDirectory];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   176
		NSError *error;
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   177
		
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   178
		// delete data
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   179
		for (NSString *fileName in dirContent) {
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   180
			[fm removeItemAtPath:[documentsDirectory stringByAppendingPathComponent:fileName] error:&error];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   181
		}
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   182
		
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   183
		// force resetting
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   184
		UIAlertView *anAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Hit Home Button to Exit", @"")
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   185
								  message:NSLocalizedString(@"\nEverything is gone!\nNow you need to restart the game...", @"")
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   186
								 delegate:self
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   187
							cancelButtonTitle:nil
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   188
							otherButtonTitles:nil];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   189
		[anAlert show];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   190
		[anAlert release];
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   191
	}
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   192
}
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   193
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   194
#pragma mark -
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   195
#pragma mark TableView Methods
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   196
#define kNetworkFields 0
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   197
#define kAudioFields 1
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   198
#define kOtherFields 2
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   199
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   200
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   201
	return 3;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   202
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   203
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   204
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   205
	switch (section) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   206
		case kNetworkFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   207
			return 2;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   208
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   209
		case kAudioFields:
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   210
			return 2;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   211
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   212
		case kOtherFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   213
			return 1;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   214
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   215
		default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   216
			NSLog(@"Warning: unset case value for numberOfRowsInSection!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   217
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   218
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   219
	return 0;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   220
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   221
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   222
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   223
	static NSString *cellIdentifier = @"systemSettingsCell";
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   224
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   225
	UITableViewCell *cell;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   226
	if ( !(kAudioFields == [indexPath section] && 2 == [indexPath row]) ){
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   227
		cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   228
		if (nil == cell) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   229
			cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   230
						       reuseIdentifier:cellIdentifier] autorelease];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   231
		}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   232
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   233
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   234
	switch ([indexPath section]) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   235
		case kNetworkFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   236
			switch ([indexPath row]) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   237
				case 0:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   238
					cell.textLabel.text = NSLocalizedString(@"Nickname", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   239
					cell.accessoryView = username;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   240
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   241
				case 1:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   242
					cell.textLabel.text = NSLocalizedString(@"Password", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   243
					cell.accessoryView = password;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   244
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   245
				default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   246
					NSLog(@"Warning: unset case value in kNetworkFields section!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   247
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   248
			}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   249
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   250
		case kAudioFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   251
			switch ([indexPath row]) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   252
				case 0:
2702
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   253
					cell.accessoryView = soundsSwitch;
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   254
					cell.textLabel.text = NSLocalizedString(@"Sound", @"");
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   255
					break;
48fc46a922fd rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
koda
parents: 2701
diff changeset
   256
				case 1:
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   257
					cell.accessoryView = musicSwitch;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   258
					cell.textLabel.text = NSLocalizedString(@"Music", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   259
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   260
				default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   261
					NSLog(@"Warning: unset case value in kAudioFields section!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   262
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   263
			}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   264
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   265
		case kOtherFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   266
			cell.accessoryView = altDamageSwitch;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   267
			cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   268
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   269
		default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   270
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   271
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   272
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   273
	return cell;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   274
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   275
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   276
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   277
	UIView *containerView =	[[[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 50)] autorelease];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   278
	UILabel *headerLabel = [[[UILabel alloc] initWithFrame:CGRectMake(10, 20, 300, 40)] autorelease];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   279
	headerLabel.textColor = [UIColor lightGrayColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   280
	headerLabel.shadowColor = [UIColor blackColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   281
	headerLabel.shadowOffset = CGSizeMake(0, 1);
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   282
	headerLabel.font = [UIFont boldSystemFontOfSize:20];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   283
	headerLabel.backgroundColor = [UIColor clearColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   284
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   285
	switch (section) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   286
		case kNetworkFields:
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   287
			headerLabel.text = NSLocalizedString(@"Network Configuration", @"");
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   288
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   289
		case kAudioFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   290
			headerLabel.text = NSLocalizedString(@"Audio Preferences", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   291
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   292
		case kOtherFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   293
			headerLabel.text = NSLocalizedString(@"Other Settings", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   294
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   295
		default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   296
			NSLog(@"Warning: unset case value in titleForHeaderInSection!");
2723
eaa6ac1e95ea LANDSCAPE ON IPHONE
koda
parents: 2720
diff changeset
   297
			headerLabel.text = @"!";
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   298
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   299
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   300
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   301
	[containerView addSubview:headerLabel];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   302
	return containerView;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   303
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   304
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   305
/*
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   306
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   307
	if (kAudioFields == [indexPath section] && 2 == [indexPath row])
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   308
		return volumeCell.frame.size.height;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   309
	else
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   310
		return table.rowHeight;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   311
}
2743
39d097ac2276 implement transition in the way i had in mind
koda
parents: 2740
diff changeset
   312
*/
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   313
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   314
-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
2720
a5111ec4d25f adds a "factory reset" to iphone frontend
koda
parents: 2702
diff changeset
   315
	return 57.0;
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   316
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   317
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   318
@end