# HG changeset patch # User nemo # Date 1289172921 18000 # Node ID caa9b08990eba0ba6a313ac3034f752365f7acd5 # Parent f133a26e05dd765e1c7420a99eca32e162f24788 revert 4200:dd54999c2822 - it was breaking schemes. koda. just leave this alone until next release diff -r f133a26e05dd -r caa9b08990eb QTfrontend/gamecfgwidget.cpp --- a/QTfrontend/gamecfgwidget.cpp Sun Nov 07 17:48:21 2010 -0500 +++ b/QTfrontend/gamecfgwidget.cpp Sun Nov 07 18:35:21 2010 -0500 @@ -157,8 +157,8 @@ sl.append("eseed " + pMapContainer->getCurrentSeed()); sl.append(QString("e$gmflags %1").arg(getGameFlags())); sl.append(QString("e$damagepct %1").arg(schemeData(22).toInt())); - sl.append(QString("e$turntime %1").arg(schemeData(23).toInt())); - sl.append(QString("e$minestime %1").arg(schemeData(27).toInt())); + sl.append(QString("e$turntime %1").arg(schemeData(23).toInt() * 1000)); + sl.append(QString("e$minestime %1").arg(schemeData(27).toInt() * 1000)); sl.append(QString("e$minesnum %1").arg(schemeData(28).toInt())); sl.append(QString("e$sd_turns %1").arg(schemeData(25).toInt())); sl.append(QString("e$casefreq %1").arg(schemeData(26).toInt())); diff -r f133a26e05dd -r caa9b08990eb hedgewars/CCHandlers.inc --- a/hedgewars/CCHandlers.inc Sun Nov 07 17:48:21 2010 -0500 +++ b/hedgewars/CCHandlers.inc Sun Nov 07 18:35:21 2010 -0500 @@ -145,13 +145,6 @@ ScriptLoad(s) end; -procedure chTurnTime(var s: shortstring); -var temp: Longint; -begin -val(s, temp); -cHedgehogTurnTime:= temp * 1000; -end; - procedure chAddHH(var id: shortstring); var s: shortstring; Gear: PGear; diff -r f133a26e05dd -r caa9b08990eb hedgewars/uAI.pas --- a/hedgewars/uAI.pas Sun Nov 07 17:48:21 2010 -0500 +++ b/hedgewars/uAI.pas Sun Nov 07 18:35:21 2010 -0500 @@ -333,7 +333,7 @@ with CurrentHedgehog^ do if (Gear <> nil) and ((Gear^.State and gstHHDriven) <> 0) - and (TurnTimeLeft + 50 > cHedgehogTurnTime ) then + and (TurnTimeLeft < cHedgehogTurnTime - 50) then if ((Gear^.State and gstHHThinking) = 0) then if (BestActions.Pos >= BestActions.Count) and (TurnTimeLeft > cStopThinkTime) then diff -r f133a26e05dd -r caa9b08990eb hedgewars/uConsole.pas --- a/hedgewars/uConsole.pas Sun Nov 07 17:48:21 2010 -0500 +++ b/hedgewars/uConsole.pas Sun Nov 07 18:35:21 2010 -0500 @@ -245,7 +245,7 @@ RegisterVariable('explosives',vtLongInt,@cExplosives , false); RegisterVariable('gmflags' , vtLongInt, @GameFlags , false); RegisterVariable('trflags' , vtLongInt, @TrainingFlags , false); - RegisterVariable('turntime', vtCommand, @chTurnTime , false); + RegisterVariable('turntime', vtLongInt, @cHedgehogTurnTime, false); RegisterVariable('minestime',vtLongInt, @cMinesTime , false); RegisterVariable('fort' , vtCommand, @chFort , false); RegisterVariable('voicepack',vtCommand, @chVoicepack , false); diff -r f133a26e05dd -r caa9b08990eb hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sun Nov 07 17:48:21 2010 -0500 +++ b/hedgewars/uGears.pas Sun Nov 07 18:35:21 2010 -0500 @@ -365,9 +365,9 @@ gear^.Elasticity:= _0_55; gear^.Friction:= _0_995; if cMinesTime < 0 then - gear^.Timer:= getrandom(51)*100 + gear^.Timer:= getrandom(6)*1000 else - gear^.Timer:= cMinesTime*1000; + gear^.Timer:= cMinesTime*1; end; gtSMine: begin gear^.Health:= 10; diff -r f133a26e05dd -r caa9b08990eb hedgewars/uMisc.pas --- a/hedgewars/uMisc.pas Sun Nov 07 17:48:21 2010 -0500 +++ b/hedgewars/uMisc.pas Sun Nov 07 18:35:21 2010 -0500 @@ -758,7 +758,7 @@ cMapGen := 0; // MAPGEN_REGULAR cMazeSize := 0; cHedgehogTurnTime := 45000; - cMinesTime := 3; + cMinesTime := 3000; cMaxAIThinkTime := 9000; cCloudsNumber := 9; cHealthCaseProb := 35; diff -r f133a26e05dd -r caa9b08990eb hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Sun Nov 07 17:48:21 2010 -0500 +++ b/hedgewars/uWorld.pas Sun Nov 07 18:35:21 2010 -0500 @@ -149,14 +149,14 @@ ScreenFadeSpeed:= 1; // modified mine timers? -if cMinesTime <> 3 then +if cMinesTime <> 3000 then begin if cMinesTime = 0 then g:= AddGoal(g, gfAny, gidNoMineTimer) else if cMinesTime < 0 then g:= AddGoal(g, gfAny, gidRandomMineTimer) else - g:= AddGoal(g, gfAny, gidMineTimer, cMinesTime); + g:= AddGoal(g, gfAny, gidMineTimer, cMinesTime div 1000); end; // if the string has been set, show it for (default timeframe) seconds diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Classes/CommodityFunctions.m --- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Sun Nov 07 18:35:21 2010 -0500 @@ -138,12 +138,10 @@ } NSMutableArray *basicArray = [[NSMutableArray alloc] initWithObjects: - [NSNumber numberWithInt:100], //initialhealth [NSNumber numberWithInt:100], //damagemodifier [NSNumber numberWithInt:45], //turntime + [NSNumber numberWithInt:100], //initialhealth [NSNumber numberWithInt:15], //suddendeathtimeout - [NSNumber numberWithInt:47], //waterrise - [NSNumber numberWithInt:5], //healthdecrease [NSNumber numberWithInt:5], //cratedrops [NSNumber numberWithInt:35], //healthprob [NSNumber numberWithInt:25], //healthamount diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Classes/EditableCellView.m --- a/project_files/HedgewarsMobile/Classes/EditableCellView.m Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Classes/EditableCellView.m Sun Nov 07 18:35:21 2010 -0500 @@ -31,6 +31,7 @@ textField = [[UITextField alloc] initWithFrame:CGRectZero]; textField.backgroundColor = [UIColor clearColor]; + textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]]; textField.delegate = self; textField.clearButtonMode = UITextFieldViewModeWhileEditing; textField.clearsOnBeginEditing = NO; @@ -76,8 +77,6 @@ skew +=2; } - // sometimes the bold property gets lost - textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]]; textField.frame = CGRectMake(boundsX+offset+10, skew+10, 300, [UIFont labelFontSize] + 4); } diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Classes/GameSetup.m --- a/project_files/HedgewarsMobile/Classes/GameSetup.m Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Sun Nov 07 18:35:21 2010 -0500 @@ -168,6 +168,7 @@ int i = 0; int result = 0; int mask = 0x00000004; + int basicArraySize = [basicArray count] - 1; // pack the gameflags in a single var and send it for (NSNumber *value in gamemodArray) { @@ -179,26 +180,64 @@ [self sendToEngine:flags]; [flags release]; - /* basic game flags */ - NSString *path = [[NSString alloc] initWithFormat:@"%@/basicFlags_en.plist",IFRONTEND_DIRECTORY()]; - NSArray *mods = [[NSArray alloc] initWithContentsOfFile:path]; - [path release]; + NSString *dmgMod = [[NSString alloc] initWithFormat:@"e$damagepct %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:dmgMod]; + [dmgMod release]; + if (i < basicArraySize) i++; - // initial health - result = [[basicArray objectAtIndex:0] intValue]; + // support for endless games + NSInteger tentativeTurntime = [[basicArray objectAtIndex:i] intValue]; + if (tentativeTurntime >= 100) + tentativeTurntime = 9999; + NSString *turnTime = [[NSString alloc] initWithFormat:@"e$turntime %d",tentativeTurntime * 1000]; + [self sendToEngine:turnTime]; + [turnTime release]; + if (i < basicArraySize) i++; + + result = [[basicArray objectAtIndex:i] intValue]; // initial health + if (i < basicArraySize) i++; + + NSString *sdTime = [[NSString alloc] initWithFormat:@"e$sd_turns %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:sdTime]; + [sdTime release]; + if (i < basicArraySize) i++; + + NSString *crateDrops = [[NSString alloc] initWithFormat:@"e$casefreq %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:crateDrops]; + [crateDrops release]; + if (i < basicArraySize) i++; - for (i = 1; i < [basicArray count]; i++) { - NSDictionary *basicDict = [mods objectAtIndex:i]; - NSString *command = [basicDict objectForKey:@"command"]; - NSInteger value = [[basicArray objectAtIndex:i] intValue]; - if ([basicDict objectForKey:@"checkOverMax"] && value >= [[basicDict objectForKey:@"max"] intValue]) - value = 9999; - NSString *strToSend = [[NSString alloc] initWithFormat:@"%@ %d",command,value]; - [self sendToEngine:strToSend]; - [strToSend release]; - } - [mods release]; + NSString *healthProb = [[NSString alloc] initWithFormat:@"e$healthprob %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:healthProb]; + [healthProb release]; + if (i < basicArraySize) i++; + + NSString *healthAmount = [[NSString alloc] initWithFormat:@"e$hcaseamount %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:healthAmount]; + [healthAmount release]; + if (i < basicArraySize) i++; + + NSString *minesTime = [[NSString alloc] initWithFormat:@"e$minestime %d",[[basicArray objectAtIndex:i] intValue] * 1000]; + [self sendToEngine:minesTime]; + [minesTime release]; + if (i < basicArraySize) i++; + NSString *minesNumber = [[NSString alloc] initWithFormat:@"e$minesnum %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:minesNumber]; + [minesNumber release]; + if (i < basicArraySize) i++; + + NSString *dudMines = [[NSString alloc] initWithFormat:@"e$minedudpct %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:dudMines]; + [dudMines release]; + if (i < basicArraySize) i++; + + NSString *explosives = [[NSString alloc] initWithFormat:@"e$explosives %d",[[basicArray objectAtIndex:i] intValue]]; + [self sendToEngine:explosives]; + [explosives release]; + if (i < basicArraySize) i++; + + DLog(@"Sent %d flags and %d modes", [gamemodArray count], i); [schemeDictionary release]; return result; } diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m --- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Sun Nov 07 18:35:21 2010 -0500 @@ -28,21 +28,6 @@ #define SLIDER_TAG 54321 #define SWITCH_TAG 67890 -#define checkValueString(detailString,labelSting,sliderRef); \ - if ([labelSting isEqualToString:@"Turn Time"] && (NSInteger) sliderRef.value == 100) \ - detailString = @"∞"; \ - else if ([labelSting isEqualToString:@"Sudden Death Timeout"] && (NSInteger) sliderRef.value == 100) \ - detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \ - else if ([labelSting isEqualToString:@"Water Rise Amount"] && (NSInteger) sliderRef.value == 100) \ - detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \ - else if ([labelSting isEqualToString:@"Crate Drop Turns"] && (NSInteger) sliderRef.value == 0) \ - detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \ - else if ([labelSting isEqualToString:@"Mines Time"] && (NSInteger) sliderRef.value == -1) \ - detailString = NSLocalizedString(@"Rnd",@"Short for 'Random'"); \ - else \ - detailString = [NSString stringWithFormat:@"%d",(NSInteger) sliderRef.value]; - - @implementation SingleSchemeViewController @synthesize schemeName, schemeDictionary, basicSettingList, gameModifierArray; @@ -176,6 +161,8 @@ offset = 50; UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(offset+260, 12, offset+150, 23)]; + slider.maximumValue = [[detail objectForKey:@"max"] floatValue]; + slider.minimumValue = [[detail objectForKey:@"min"] floatValue]; [slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged]; [cell.contentView addSubview:slider]; [slider release]; @@ -204,14 +191,19 @@ } } cellSlider.tag = SLIDER_TAG + row; - cellSlider.maximumValue = [[detail objectForKey:@"max"] floatValue]; - cellSlider.minimumValue = [[detail objectForKey:@"min"] floatValue]; cellSlider.value = [[[self.schemeDictionary objectForKey:@"basic"] objectAtIndex:row] floatValue]; - NSString *prestring = nil; - checkValueString(prestring,cellLabel.text,cellSlider); + // forced to use this weird format otherwise the label disappears when size of the text is bigger than the original + NSString *prestring = [NSString stringWithFormat:@"%d",(NSInteger) cellSlider.value]; - // forced to use this weird format otherwise the label disappears when size of the text is bigger than the original + // turntime 100 means unlimited time turns (set in GameSetup) + if (row == 1 && (NSInteger) cellSlider.value == 100) + prestring = @"∞"; + else + // mines less than 0 means random + if (row == 5 && (NSInteger) cellSlider.value == -1) + prestring = NSLocalizedString(@"Rnd",@"Short for 'Random'"); + while ([prestring length] <= 4) prestring = [NSString stringWithFormat:@" %@",prestring]; cell.detailTextLabel.text = prestring; @@ -262,13 +254,16 @@ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:theSlider.tag-SLIDER_TAG inSection:1]; // get its cell UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; - // grab the associated labels - UILabel *detailLabel = (UILabel *)cell.detailTextLabel; - UILabel *cellLabel = (UILabel *)[cell.contentView viewWithTag:LABEL_TAG]; + // grab the associated label + UILabel *label = (UILabel *)cell.detailTextLabel; // modify it - - checkValueString(detailLabel.text,cellLabel.text,theSlider); - + if ([indexPath row] == 1 && [indexPath section] == 1 && (NSInteger) theSlider.value == 100) + label.text = @"∞"; + else + if ([indexPath row] == 5 && [indexPath section] == 1 && (NSInteger) theSlider.value == -1) + label.text = NSLocalizedString(@"Rnd",@"Short for 'Random'"); + else + label.text = [NSString stringWithFormat:@"%d",(NSInteger) theSlider.value]; // save changes in the main array NSMutableArray *array = [self.schemeDictionary objectForKey:@"basic"]; [array replaceObjectAtIndex:theSlider.tag-SLIDER_TAG withObject:[NSNumber numberWithInt:(NSInteger) theSlider.value]]; diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Sun Nov 07 18:35:21 2010 -0500 @@ -5,11 +5,9 @@ basic 100 + 30 100 - 30 15 - 47 - 5 0 35 25 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Sun Nov 07 18:35:21 2010 -0500 @@ -5,11 +5,9 @@ basic 100 + 45 100 - 45 15 - 47 - 5 5 35 25 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Sun Nov 07 18:35:21 2010 -0500 @@ -4,12 +4,10 @@ basic - 50 150 30 + 50 15 - 47 - 5 0 35 25 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Sun Nov 07 18:35:21 2010 -0500 @@ -5,11 +5,9 @@ basic 100 + 15 100 15 - 15 - 47 - 5 0 35 25 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Sun Nov 07 18:35:21 2010 -0500 @@ -5,11 +5,9 @@ basic 100 + 300 100 - 300 50 - 47 - 5 1 0 35 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Sun Nov 07 18:35:21 2010 -0500 @@ -7,9 +7,7 @@ 100 100 100 - 100 - 47 - 5 + 999 5 35 30 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Sun Nov 07 18:35:21 2010 -0500 @@ -5,11 +5,9 @@ basic 100 + 30 100 - 30 15 - 47 - 5 5 35 25 diff -r f133a26e05dd -r caa9b08990eb project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist --- a/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist Sun Nov 07 17:48:21 2010 -0500 +++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist Sun Nov 07 18:35:21 2010 -0500 @@ -3,26 +3,6 @@ - checkOverMax - - command - - default - 100 - image - Health - max - 200 - min - 50 - title - Initial Health - - - checkOverMax - - command - e$damagepct default 100 image @@ -35,10 +15,6 @@ Damage Modifier - checkOverMax - - command - e$turntime default 45 image @@ -51,58 +27,30 @@ Turn Time - checkOverMax - - command - e$sd_turns + default + 100 + image + Health + max + 200 + min + 50 + title + Initial Health + + default 15 image SuddenDeath max - 100 + 999 min 0 title Sudden Death Timeout - checkOverMax - - command - e$waterrise - default - 47 - image - SuddenDeath - max - 100 - min - 0 - title - Water Rise Amount - - - checkOverMax - - command - e$healthdec - default - 5 - image - SuddenDeath - max - 100 - min - 0 - title - Health Decrease - - - checkOverMax - - command - e$casefreq default 5 image @@ -112,13 +60,9 @@ min 0 title - Crate Drop Turns + Crate Drops - checkOverMax - - command - e$healthprob default 35 image @@ -131,10 +75,6 @@ Health Kit Probability - checkOverMax - - command - e$hcaseamount default 25 image @@ -147,10 +87,6 @@ Health Amount in Kit - checkOverMax - - command - e$minestime default 3 image @@ -163,10 +99,6 @@ Mines Time - checkOverMax - - command - e$minesnum default 4 image @@ -179,10 +111,6 @@ Mines Number - checkOverMax - - command - e$minedudpct default 0 image @@ -195,10 +123,6 @@ Dud Mines Probability - checkOverMax - - command - e$explosives default 2 image