00001
00002
00003
00004
00005
00006
00007
00008
00009 #import "SettingsController.h"
00010
00011
00012 @implementation SettingsController
00013
00014 - (void) awakeFromNib {
00015 [notificationCenter addObserver:self selector:@selector(saveSettings) name:@"MC_LEAVING_SETTINGS"];
00016 [self setPreviousValues];
00017 }
00018
00019 - (void) setPreviousValues {
00020 LLPersistantSettings *settings = [LLPersistantSettings defaultSettings];
00021
00022 NSNumber *val;
00023
00024 val = [settings valueForKey:@"MUSIC_LEVEL"];
00025 if (val != nil) {
00026 [musicLevel setFloatValue:[val floatValue]];
00027 }
00028 val = [settings valueForKey:@"FX_LEVEL"];
00029 if (val != nil) {
00030 [fxLevel setFloatValue:[val floatValue]];
00031 }
00032 val = [settings valueForKey:@"VOICE_OVER"];
00033 if (val != nil) {
00034 if ([val boolValue]) {
00035 [voiceOver setState:NSOnState];
00036 } else {
00037 [voiceOver setState:NSOffState];
00038 }
00039 }
00040 val = [settings valueForKey:@"THEME"];
00041 if (val != nil) {
00042 [graphicsModel setSelectedSegment:[val intValue]];
00043 }
00044 }
00045
00046 - (void) saveSettings {
00047
00048 LLPersistantSettings *settings = [LLPersistantSettings defaultSettings];
00049
00050 [settings setLazyValue:[NSNumber numberWithFloat:[self musicLevel]] forKey:@"MUSIC_LEVEL"];
00051 [settings setLazyValue:[NSNumber numberWithFloat:[self fxLevel]] forKey:@"FX_LEVEL"];
00052 [settings setLazyValue:[NSNumber numberWithBool:[self voiceEnabled]] forKey:@"VOICE_OVER"];
00053 [settings setLazyValue:[NSNumber numberWithInt:[self graphicsModel]] forKey:@"THEME"];
00054 [settings update];
00055 }
00056
00057 - (float) musicLevel {
00058 return [musicLevel floatValue];
00059 }
00060
00061 - (float) fxLevel {
00062 return [fxLevel floatValue];
00063 }
00064
00065 - (bool) soundEnabled {
00066 if (([musicLevel intValue] > 0) || ([fxLevel intValue] > 0)) {
00067 return YES;
00068 } else {
00069 return NO;
00070 }
00071 }
00072
00073 - (bool) voiceEnabled {
00074 return ([voiceOver state] == NSOnState);
00075 }
00076
00077 - (int) graphicsModel {
00078 return [graphicsModel selectedSegment];
00079 }
00080
00081 @end