23 |
23 |
24 #define LABEL_TAG 12345 |
24 #define LABEL_TAG 12345 |
25 #define SLIDER_TAG 54321 |
25 #define SLIDER_TAG 54321 |
26 #define SWITCH_TAG 67890 |
26 #define SWITCH_TAG 67890 |
27 |
27 |
28 #define checkValueString(detailString,labelSting,sliderRef); \ |
|
29 if ([labelSting isEqualToString:@"Turn Time"] && (NSInteger) sliderRef.value == 100) \ |
|
30 detailString = @"∞"; \ |
|
31 else if ([labelSting isEqualToString:@"Water Rise Amount"] && (NSInteger) sliderRef.value == 100) \ |
|
32 detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \ |
|
33 else if ([labelSting isEqualToString:@"Crate Drop Turns"] && (NSInteger) sliderRef.value == 0) \ |
|
34 detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \ |
|
35 else if ([labelSting isEqualToString:@"Mines Time"] && (NSInteger) sliderRef.value == -1) \ |
|
36 detailString = NSLocalizedString(@"Rnd",@"Short for 'Random'"); \ |
|
37 else \ |
|
38 detailString = [NSString stringWithFormat:@"%d",(NSInteger) sliderRef.value]; |
|
39 |
|
40 |
28 |
41 @implementation SingleSchemeViewController |
29 @implementation SingleSchemeViewController |
42 @synthesize schemeName, schemeDictionary, basicSettingList, gameModifierArray; |
30 @synthesize schemeName, schemeDictionary, basicSettingList, gameModifierArray; |
43 |
31 |
44 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { |
32 -(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { |
219 sliderLength = 285; |
207 sliderLength = 285; |
220 } |
208 } |
221 } |
209 } |
222 cellSlider.frame = CGRectMake(hOffset, vOffset, sliderLength, 23); |
210 cellSlider.frame = CGRectMake(hOffset, vOffset, sliderLength, 23); |
223 |
211 |
224 NSString *prestring = nil; |
212 NSString *prestring = [self localizedValueStringForKey:basicSettingTitleKey andSlider:cellSlider]; |
225 checkValueString(prestring,basicSettingTitleKey,cellSlider); |
|
226 |
213 |
227 // forced to use this weird format otherwise the label disappears when size of the text is bigger than the original |
214 // forced to use this weird format otherwise the label disappears when size of the text is bigger than the original |
228 while ([prestring length] <= 4) |
215 while ([prestring length] <= 4) |
229 prestring = [NSString stringWithFormat:@" %@",prestring]; |
216 prestring = [NSString stringWithFormat:@" %@",prestring]; |
230 cell.detailTextLabel.text = prestring; |
217 cell.detailTextLabel.text = prestring; |
281 // grab the associated labels |
268 // grab the associated labels |
282 UILabel *detailLabel = (UILabel *)cell.detailTextLabel; |
269 UILabel *detailLabel = (UILabel *)cell.detailTextLabel; |
283 // modify it |
270 // modify it |
284 |
271 |
285 NSString *basicSettingTitleKey = [[self.basicSettingList objectAtIndex:[indexPath row]] objectForKey:@"title"]; |
272 NSString *basicSettingTitleKey = [[self.basicSettingList objectAtIndex:[indexPath row]] objectForKey:@"title"]; |
286 checkValueString(detailLabel.text,basicSettingTitleKey,theSlider); |
273 detailLabel.text = [self localizedValueStringForKey:basicSettingTitleKey andSlider:theSlider]; |
287 |
274 |
288 // save changes in the main array |
275 // save changes in the main array |
289 NSMutableArray *array = [self.schemeDictionary objectForKey:@"basic"]; |
276 NSMutableArray *array = [self.schemeDictionary objectForKey:@"basic"]; |
290 [array replaceObjectAtIndex:theSlider.tag-SLIDER_TAG withObject:[NSNumber numberWithInteger:theSlider.value]]; |
277 [array replaceObjectAtIndex:theSlider.tag-SLIDER_TAG withObject:[NSNumber numberWithInteger:theSlider.value]]; |
291 } |
278 } |
346 return IS_ON_PORTRAIT() ? 72 : aTableView.rowHeight; |
333 return IS_ON_PORTRAIT() ? 72 : aTableView.rowHeight; |
347 else |
334 else |
348 return 56; |
335 return 56; |
349 } |
336 } |
350 |
337 |
|
338 #pragma mark - Helper methods |
|
339 |
|
340 - (NSString *)localizedValueStringForKey:(NSString *)keyString andSlider:(UISlider *)slider |
|
341 { |
|
342 NSInteger sliderValue = (NSInteger)slider.value; |
|
343 |
|
344 if ([keyString isEqualToString:@"Turn Time"] && sliderValue == 100) |
|
345 return @"∞"; |
|
346 else if ([keyString isEqualToString:@"Water Rise Amount"] && sliderValue == 100) |
|
347 return NSLocalizedString(@"Nvr", @"Short for 'Never'"); |
|
348 else if ([keyString isEqualToString:@"Crate Drop Turns"] && sliderValue == 0) |
|
349 return NSLocalizedString(@"Nvr", @"Short for 'Never'"); |
|
350 else if ([keyString isEqualToString:@"Mines Time"] && sliderValue == -1) |
|
351 return NSLocalizedString(@"Rnd", @"Short for 'Random'"); |
|
352 else |
|
353 return [NSString stringWithFormat:@"%ld", (long)sliderValue]; |
|
354 } |
|
355 |
351 #pragma mark - |
356 #pragma mark - |
352 #pragma mark Memory management |
357 #pragma mark Memory management |
353 -(void) didReceiveMemoryWarning { |
358 -(void) didReceiveMemoryWarning { |
354 [super didReceiveMemoryWarning]; |
359 [super didReceiveMemoryWarning]; |
355 self.basicSettingList = nil; |
360 self.basicSettingList = nil; |