project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m
branchios-revival
changeset 11291 6b6d96077395
parent 11279 c0d6f6ffa798
child 11292 83738cdd750d
equal deleted inserted replaced
11290:6ff1bb4a29e4 11291:6b6d96077395
    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;