cocoaTouch/SettingsViewController.m
author koda
Sat, 23 Jan 2010 21:57:24 +0000
changeset 2702 48fc46a922fd
parent 2701 3a8560c00f78
child 2720 a5111ec4d25f
permissions -rw-r--r--
rewrite gamesetup to use less memory, rename effects to sound plus some nice actions, settings work in game again
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
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
    14
@synthesize username, password, musicSwitch, soundsSwitch, altDamageSwitch, volumeSlider, volumeLabel, table, volumeCell;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    15
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
-(void) loadView {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    18
	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
    19
	self.soundsSwitch = [[UISwitch alloc] init];
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    20
	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
    21
	[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
    22
	[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
    23
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    24
	[super loadView];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    25
}
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    26
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    27
-(void) viewDidLoad {
2698
90585aba87ad objc/pascal finally working
koda
parents: 2696
diff changeset
    28
	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
    29
	
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    30
	if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {	
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    31
		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
    32
		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
    33
		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
    34
		if (1 == [[data objectForKey:@"music"] intValue]) {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    35
			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
    36
		} else {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    37
			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
    38
		}
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
    39
		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
    40
			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
    41
		} 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
    42
			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
    43
		}
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    44
		if (1 == [[data objectForKey:@"alternate"] intValue]) {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    45
			altDamageSwitch.on = YES;
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    46
		} else {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    47
			altDamageSwitch.on = NO;
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    48
		}		
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    49
		
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    50
		[volumeSlider setValue:[[data objectForKey:@"volume"] intValue] animated:NO];
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
	NSString *tmpVol = [[NSString alloc] initWithFormat:@"%d", (int) volumeSlider.value];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    57
	volumeLabel.text = tmpVol;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    58
	[tmpVol release];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    59
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    60
	username.textColor = [UIColor grayColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    61
	password.textColor = [UIColor grayColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    62
	volumeLabel.textColor = [UIColor grayColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    63
	table.backgroundColor = [UIColor clearColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    64
	table.allowsSelection = NO;
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
    65
	[super viewDidLoad];
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    66
}
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    67
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    68
-(void) viewDidUnload {
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    69
	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
    70
	self.password = nil;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    71
	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
    72
	self.soundsSwitch = nil;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    73
	self.altDamageSwitch = nil;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    74
	self.volumeLabel = nil;
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    75
	self.volumeSlider = nil;
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    76
	self.table = nil;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    77
	self.volumeCell = nil;
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    78
	[super viewDidUnload];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    79
}
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
    80
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    81
//- (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
    82
-(void) viewWillDisappear:(BOOL)animated {
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    83
	NSMutableDictionary *saveDict = [[NSMutableDictionary alloc] init];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    84
	NSString *tmpMus = (musicSwitch.on) ? @"1" : @"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
    85
	NSString *tmpEff = (soundsSwitch.on) ? @"1" : @"0";
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    86
	NSString *tmpAlt = (altDamageSwitch.on) ? @"1" : @"0";
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    87
	
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    88
	[saveDict setObject:username.text forKey:@"username"];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    89
	[saveDict setObject:password.text forKey:@"password"];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    90
	[saveDict setObject:tmpMus forKey:@"music"];
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
    91
	[saveDict setObject:tmpEff forKey:@"sounds"];
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    92
	[saveDict setObject:tmpAlt forKey:@"alternate"];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    93
	[saveDict setObject:volumeLabel.text forKey:@"volume"];
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    94
	
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    95
	[saveDict writeToFile:[[SDLUIKitDelegate sharedAppDelegate] dataFilePath:@"settings.plist"] atomically:YES];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
    96
	[saveDict release];
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
    97
	[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
    98
}
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
    99
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
-(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
   101
	[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
   102
	[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
   103
	[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
   104
	[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
   105
	[altDamageSwitch 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
   106
	[volumeLabel 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
   107
	[volumeSlider 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
   108
	[table 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
   109
	[volumeCell 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
   110
	[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
   111
}
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   112
/*
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   113
// 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
   114
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   115
    // Return YES for supported orientations
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   116
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   117
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   118
*/
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   119
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
   120
// 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
   121
-(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
   122
	[username resignFirstResponder];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   123
	[password resignFirstResponder];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   124
}
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   125
2696
41aa7b56c17b settings are applied to game launch
koda
parents: 2694
diff changeset
   126
// 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
   127
-(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
   128
	[sender resignFirstResponder];
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   129
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   130
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
   131
// update the value of the label when slider is updated
2694
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   132
-(IBAction) sliderChanged: (id) sender {
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   133
	UISlider *slider = (UISlider *)sender;
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   134
	int progress = slider.value;
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   135
	NSString *newLabel = [[NSString alloc] initWithFormat:@"%d",progress];
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   136
	self.volumeLabel.text = newLabel;
dcd248e04f3d can use latest sdlimage, work on setting panel and option when launching the game, minor fixes
koda
parents: 2687
diff changeset
   137
	[newLabel release];
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   138
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   139
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
   140
// 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
   141
-(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
   142
	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
   143
		[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
   144
	}
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
   145
}
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
   146
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
   147
// 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
   148
-(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
   149
	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
   150
		[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
   151
	}
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   152
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   153
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   154
#pragma mark -
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   155
#pragma mark TableView Methods
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   156
#define kNetworkFields 0
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   157
#define kAudioFields 1
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   158
#define kOtherFields 2
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   159
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   160
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   161
	return 3;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   162
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   163
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   164
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   165
	switch (section) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   166
		case kNetworkFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   167
			return 2;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   168
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   169
		case kAudioFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   170
			return 3;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   171
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   172
		case kOtherFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   173
			return 1;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   174
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   175
		default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   176
			NSLog(@"Warning: unset case value for numberOfRowsInSection!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   177
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   178
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   179
	return 0;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   180
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   181
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   182
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   183
	static NSString *cellIdentifier = @"systemSettingsCell";
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   184
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   185
	UITableViewCell *cell;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   186
	if ( !(kAudioFields == [indexPath section] && 2 == [indexPath row]) ){
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   187
		cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   188
		if (nil == cell) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   189
			cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   190
						       reuseIdentifier:cellIdentifier] autorelease];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   191
		}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   192
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   193
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   194
	switch ([indexPath section]) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   195
		case kNetworkFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   196
			switch ([indexPath row]) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   197
				case 0:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   198
					cell.textLabel.text = NSLocalizedString(@"Nickname", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   199
					cell.accessoryView = username;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   200
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   201
				case 1:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   202
					cell.textLabel.text = NSLocalizedString(@"Password", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   203
					cell.accessoryView = password;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   204
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   205
				default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   206
					NSLog(@"Warning: unset case value in kNetworkFields section!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   207
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   208
			}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   209
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   210
		case kAudioFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   211
			switch ([indexPath row]) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   212
				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
   213
					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
   214
					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
   215
					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
   216
				case 1:
2701
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   217
					cell.accessoryView = musicSwitch;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   218
					cell.textLabel.text = NSLocalizedString(@"Music", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   219
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   220
				case 2:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   221
					cell = volumeCell;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   222
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   223
				default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   224
					NSLog(@"Warning: unset case value in kAudioFields section!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   225
					break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   226
			}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   227
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   228
		case kOtherFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   229
			cell.accessoryView = altDamageSwitch;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   230
			cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   231
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   232
		default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   233
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   234
	}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   235
	
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   236
	return cell;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   237
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   238
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   239
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   240
	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
   241
	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
   242
	headerLabel.textColor = [UIColor lightGrayColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   243
	headerLabel.shadowColor = [UIColor blackColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   244
	headerLabel.shadowOffset = CGSizeMake(0, 1);
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   245
	headerLabel.font = [UIFont boldSystemFontOfSize:20];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   246
	headerLabel.backgroundColor = [UIColor clearColor];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   247
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   248
	switch (section) {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   249
		case kNetworkFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   250
			headerLabel.text = NSLocalizedString(@"Network Configuration", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   251
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   252
		case kAudioFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   253
			headerLabel.text = NSLocalizedString(@"Audio Preferences", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   254
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   255
		case kOtherFields:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   256
			headerLabel.text = NSLocalizedString(@"Other Settings", @"");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   257
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   258
		default:
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   259
			NSLog(@"Warning: unset case value in titleForHeaderInSection!");
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   260
			headerLabel.text = @"!!!";
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   261
			break;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   262
	}
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
	[containerView addSubview:headerLabel];
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   265
	return containerView;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   266
}
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   267
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   268
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   269
	if (kAudioFields == [indexPath section] && 2 == [indexPath row])
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   270
		return volumeCell.frame.size.height;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   271
	else
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   272
		return table.rowHeight;
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   273
}
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
-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
3a8560c00f78 settings tab has now a very nice iphone-like interface
koda
parents: 2698
diff changeset
   276
	return 57;
2687
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   277
}
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   278
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   279
28b8330b8af1 add stub files for other views and prevent useless crashes
koda
parents:
diff changeset
   280
@end