// September 2015 // Levee Patroller / Dijk Patrouille // This source file is (c) by Deltares. This source file is open source but only available to select users. Do not redistribute without written permission of Stichting Deltares, Delft, The Netherlands. // This header has been automatically generated. // ************************************************************************************************ // This menu is separated so it can be used as ingame Settings Menu as well as in the Main Menu // // 2008-02-12 wsl Corrected English texts // ************************************************************************************************ class MenuLevelOptions extends GUIPage config(LevelOptions); #exec OBJ LOAD FILE=GUIContent.utx var automated GUILabel Lab_GameRules, Lab_Diagnosis, Lab_Measure, Lab_Weathertype, Lab_FailureChoice, Lab_NSerious, Lab_Serious, Lab_VSerious, Lab_0, Lab_1, Lab_2, Lab_3, Lab_4, Lab_5, Lab_6, Lab_7, Lab_8, Lab_9; var automated GUIButton BackGround, But_Back, But_Play, But_Diag_Yes, But_Diag_No, But_Meas_Yes, But_Meas_No, But_Weath_Rain, But_Weath_Clear, But_Fail_Rand, But_Fail_Choice; var automated GUITitleBar Bar_Title, Bar_Hint; var automated GUIImage Img_Preview, Img_InputBackground; var automated GUIScrollTextBox Scroll_LevelDescription; var automated moNumericEdit NE_0, NE_1, NE_2, NE_3, NE_4, NE_5, NE_6, NE_7, NE_8, NE_9, NE_10, NE_11, NE_12, NE_13, NE_14, NE_15, NE_16, NE_17, NE_18, NE_19, NE_20, NE_21, NE_22, NE_23, NE_24, NE_25, NE_26, NE_27, NE_28, NE_29; var array FailuresLabels; var array Numerics; var localized string EN_Title, NL_Title, EN_Resume, NL_Resume, EN_ResumeHint, NL_ResumeHint, EN_Play, NL_Play, EN_PlayHint, NL_PlayHint, NL_GameRules,EN_GameRules, NL_Diagnoses,EN_Diagnoses, NL_Yes,EN_Yes, NL_HintDiag_Yes,EN_HintDiag_Yes, NL_No,EN_No, NL_HintDiag_No,EN_HintDiag_No, NL_Measures,EN_Measures, NL_HintMeas_Yes,EN_HintMeas_Yes, NL_HintMeas_No,EN_HintMeas_No, NL_FailureChoice,EN_FailureChoice, NL_Fail_Rand,EN_Fail_Rand, NL_HintFail_Rand,EN_HintFail_Rand, NL_Fail_Choice,EN_Fail_Choice, NL_HintFail_Choice,EN_HintFail_Choice, NL_Weathertype,EN_Weathertype, NL_Weath_Clear,EN_Weath_Clear, NL_HintWeath_Clear,EN_HintWeath_Clear, NL_Weath_Rain,EN_Weath_Rain, NL_HintWeath_Rain,EN_HintWeath_Rain, NL_EroOut,EN_EroOut, NL_EroInn,EN_EroInn, NL_Macro,EN_Macro, NL_Micro,EN_Micro, NL_Piping,EN_Piping, NL_NonRep,EN_NonRep, NL_Critical,EN_Critical, NL_Relevant,EN_Relevant, NL_Reportable,EN_Reportable, NL_Droogte1, NL_Droogte2, NL_Droogte3, NL_Quality, EN_Droogte1, EN_Droogte2, EN_Droogte3, EN_Quality; var bool Dutch, bIgnoreEsc, bRain, //Let there be rain in the level bCustom, //bCustom Failures bTakeDiagnosis, bTakeMeasures, initcomponentdone; var GeoPlayerController GeoPC; var float ButtonWidth, ButtonHeight, ButtonHGap, ButtonVGapSmall, ButtonVGapLarge, BarHeight, BarVPos, SButtonSize, SButtonVGap, SButtonHGap, TitleLeftGap, TabWidth, TabHeight, TabLeft, TabTop; // begin to be set by the extending object var material MapPicture; var string NL_DescriptionDG, EN_DescriptionDG, MapUrl; var int ScenarioNumber; /// 2007-10-15 Jln Maximum number of failures that can be selected in TOTAL in this map. var int MaxFailures, MaxFailuresRegional, MaxFailuresPrimary; var array FailuresToActivate; // end to be set by the extending object //============================================================================= // Date Id Modification // 2007-08-20 Zmr Created this header //============================================================================= function InitComponent(GUIController MyController, GUIComponent MyOwner) { local int i,j; local array onPrimary,onSecundary, onSecundaryWithoutRoad; local LeveeTile temptile; initcomponentdone = false; Super.InitComponent(MyController, MyOwner); temptile = new class'GeoSimulator.LeveeTile'; /// Get lists of available failures on each type of leveetile. onPrimary = temptile.GetFailuresOnPrimary(); onSecundary = temptile.GetFailuresOnRegional(); onSecundaryWithoutRoad = temptile.GetFailuresOnRegionalWithoutRoad(); Numerics[0] = NE_0; Numerics[1] = NE_1; Numerics[2] = NE_2; Numerics[3] = NE_3; Numerics[4] = NE_4; Numerics[5] = NE_5; Numerics[6] = NE_6; Numerics[7] = NE_7; Numerics[8] = NE_8; Numerics[9] = NE_9; Numerics[10] = NE_10; Numerics[11] = NE_11; Numerics[12] = NE_12; Numerics[13] = NE_13; Numerics[14] = NE_14; Numerics[15] = NE_15; Numerics[16] = NE_16; Numerics[17] = NE_17; Numerics[18] = NE_18; Numerics[19] = NE_19; Numerics[20] = NE_20; Numerics[21] = NE_21; Numerics[22] = NE_22; Numerics[23] = NE_23; Numerics[24] = NE_24; Numerics[25] = NE_25; Numerics[26] = NE_26; Numerics[27] = NE_27; Numerics[28] = NE_28; Numerics[29] = NE_29; FailuresLabels[0] =Lab_0; FailuresLabels[1] =Lab_1; FailuresLabels[2] =Lab_2; FailuresLabels[3] =Lab_3; FailuresLabels[4] =Lab_4; FailuresLabels[5] =Lab_5; FailuresLabels[6] =Lab_6; FailuresLabels[7] =Lab_7; FailuresLabels[8] =Lab_8; FailuresLabels[9] =Lab_9; for (i = 0; i sortedFailures; if(initcomponentdone) { /*To do: ** sort FailuresToActivate--> sorted failures: *** First only primairy failures *** Second only secundairy failures *** Last both praimairy and secundary failures ** ** which numeric edit is the instigator ** ** foreach sorted failures *** check whether each failure has not more failures than MaxCount *** if not it is probably the instigator. lower instigator to as much as possible. *** add total amount of failure to tempCountFailuresRegional or tempCountFailuresPrimary ** **if(tempCountFailuresRegional MaxFailures ) { instigator.SetValue(instigator.GetValue() + MaxFailures - (tempCountPrimAndSec+tempCountPrimary+tempCountSecundary)); HowMuchFailuresInBins(sortedFailures, tempCountPrimAndSec, tempCountPrimary, tempCountSecundary, instigator ); } // are there too many SecundaryFailures selected if(tempCountSecundary>MaxFailuresRegional ) { instigator.SetValue(instigator.GetValue() + MaxFailuresRegional - tempCountSecundary); HowMuchFailuresInBins(sortedFailures, tempCountPrimAndSec, tempCountPrimary, tempCountSecundary, instigator ); //todo: Check whether it is not too much if too much lower instigator recalculate } // are there too many Primary failures selected if(tempCountPrimary>MaxFailuresPrimary ) { instigator.SetValue(instigator.GetValue() + MaxFailuresPrimary - tempCountPrimary); HowMuchFailuresInBins(sortedFailures, tempCountPrimAndSec, tempCountPrimary, tempCountSecundary, instigator ); } // are there too many failures in tempCountPrimAndSec if((tempCountPrimAndSec+tempCountPrimary+tempCountSecundary) > (MaxFailuresPrimary+MaxFailuresRegional) ) { instigator.SetValue(instigator.GetValue() + (MaxFailuresPrimary+MaxFailuresRegional) - (tempCountPrimAndSec+tempCountPrimary+tempCountSecundary)); HowMuchFailuresInBins(sortedFailures, tempCountPrimAndSec, tempCountPrimary, tempCountSecundary, instigator ); } SolveLevelSpecificProblems(sortedFailures, instigator); setMorePossible(FailuresToActivate, tempCountPrimAndSec, tempCountPrimary, tempCountSecundary); for(i = 0; i< FailuresToActivate.length; i++) { FailuresToActivate[i].NEVerySerious.MyNumericEdit.MyPlus.bVisible = true; FailuresToActivate[i].NESerious.MyNumericEdit.MyPlus.bVisible = true; FailuresToActivate[i].NENotSerious.MyNumericEdit.MyPlus.bVisible = true; FailuresToActivate[i].NEVerySerious.MyNumericEdit.MyMinus.bVisible = true; FailuresToActivate[i].NESerious.MyNumericEdit.MyMinus.bVisible = true; FailuresToActivate[i].NENotSerious.MyNumericEdit.MyMinus.bVisible = true; Log("More possible " $ i $ " = " $ FailuresToActivate[i].MorePossible); if(!FailuresToActivate[i].MorePossible) { FailuresToActivate[i].NEVerySerious.MyNumericEdit.MyPlus.bVisible = false; FailuresToActivate[i].NESerious.MyNumericEdit.MyPlus.bVisible = false; FailuresToActivate[i].NENotSerious.MyNumericEdit.MyPlus.bVisible = false; } if(FailuresToActivate[i].NEVerySerious.GetValue() == 0) { FailuresToActivate[i].NEVerySerious.MyNumericEdit.MyMinus.bVisible = false; } if(FailuresToActivate[i].NESerious.GetValue() == 0) { FailuresToActivate[i].NESerious.MyNumericEdit.MyMinus.bVisible = false; } if(FailuresToActivate[i].NENotSerious.GetValue() == 0) { FailuresToActivate[i].NENotSerious.MyNumericEdit.MyMinus.bVisible = false; } } SetButtons(); Controls[1].SetFocus(none); } } function HowMuchFailuresInBins(array sortedFailures, out int tempCountPrimAndSec, out int tempCountPrimary, out int tempCountSecundary, moNumericEdit instigator ) { local int i; local int tempint; tempCountPrimAndSec = 0; tempCountPrimary = 0; tempCountSecundary = 0; //log("HowMuchFailuresInBins1"); //count how much failures there are. for(i = 0; i < sortedFailures.length;i++) { tempint = sortedFailures[i].NENotSerious.GetValue() + sortedFailures[i].NESerious.GetValue() + sortedFailures[i].NEVerySerious.GetValue(); if(tempint > sortedFailures[i].MaxCount) { //this must be the same failure type as instigator, because otherwise it would have been checked before. instigator.SetValue(instigator.GetValue() + sortedFailures[i].MaxCount - tempint); tempint = sortedFailures[i].MaxCount; } if(sortedFailures[i].InPrimaryLevee && ! sortedFailures[i].InSecundaryLevee) { tempCountPrimary += tempint; } if(!sortedFailures[i].InPrimaryLevee && sortedFailures[i].InSecundaryLevee) { tempCountSecundary += tempint; } if(sortedFailures[i].InPrimaryLevee && sortedFailures[i].InSecundaryLevee) { tempCountPrimAndSec += tempint; } } } function SolveLevelSpecificProblems(array sortedFailures, moNumericEdit instigator) { } function SetMorePossible(out array failures,int tempCountPrimAndSec, int tempCountPrimary, int tempCountSecundary) { local int i, tempint; local bool primPossible, secPossible; primPossible = false; secPossible = false; /* var int MaxFailures, MaxFailuresRegional, MaxFailuresPrimary; */ //log("tempCountPrimAndSec: " @tempCountPrimAndSec); //log("tempCountPrimary: " @tempCountPrimary); //log("tempCountSecundary: " @tempCountSecundary); /* jln - 16-03-2010 N O T I C E WHEN ADDING FAILURES DO NOT FORGET TO ADD THESE TO THE LEVEETILE "GetFailuresOnRegionalWithoutRoad" AND RELATED FUNCTIONS AS WELL!!! */ tempint = tempCountPrimAndSec + tempCountPrimary - MaxFailuresPrimary; Log( "setmorepossible: " @ tempCountPrimAndSec @ tempCountPrimary @ MaxFailuresPrimary); if(tempint< 1) { tempint =0; } if((tempint + tempCountSecundary) < MaxFailuresRegional) { secPossible = true; } tempint = tempCountPrimAndSec + tempCountSecundary - MaxFailuresRegional; Log( "setmorepossible: " @ tempCountPrimAndSec @ tempCountSecundary @ MaxFailuresRegional); if(tempint< 1) { tempint =0; } if((tempint + tempCountPrimary) < MaxFailuresPrimary) { primPossible = true; } if((tempCountPrimAndSec + tempCountSecundary + tempCountPrimary )>=MaxFailures) { primPossible = false; secPossible = false; } Log( "prim: " @ primPossible @ "sec" @ secPossible); //log("primPossible "@primPossible); //log("secPossible "@secPossible); for(i = 0; i< failures.Length;i++) { tempint = failures[i].NENotSerious.GetValue() + failures[i].NESerious.GetValue() + failures[i].NEVerySerious.GetValue(); if(failures[i].InPrimaryLevee) { failures[i].MorePossible = primPossible; } if(failures[i].InSecundaryLevee &&!failures[i].MorePossible) { failures[i].MorePossible = secPossible; } if(tempint >= failures[i].maxCount) { failures[i].MorePossible = false; } } } //============================================================================= // Date Id Modification // 2007-08-20 Zmr Created this header //============================================================================= function SetButtons() { if(bRain) { But_Weath_Clear.MenuState=MSAT_Blurry; But_Weath_Rain.MenuState=MSAT_Disabled; } else { But_Weath_Clear.MenuState=MSAT_Disabled; But_Weath_Rain.MenuState=MSAT_Blurry; } if(bTakeDiagnosis) { But_Diag_Yes.MenuState=MSAT_Disabled; But_Diag_No.MenuState=MSAT_Blurry; But_Meas_Yes.bVisible = true; But_Meas_No.bVisible = true; if(bTakeMeasures) { But_Meas_No.MenuState=MSAT_Blurry; But_Meas_Yes.MenuState=MSAT_Disabled; } else { But_Meas_Yes.MenuState=MSAT_Blurry; But_Meas_No.MenuState=MSAT_Disabled; } } else { But_Diag_Yes.MenuState=MSAT_Blurry; But_Diag_No.MenuState=MSAT_Disabled; But_Meas_Yes.bVisible = false; But_Meas_No.bVisible = false; } if(bCustom) { But_Fail_Rand.MenuState=MSAT_Blurry; But_Fail_Choice.MenuState=MSAT_Disabled; SetFailureVisibility(true); } else { But_Fail_Choice.MenuState=MSAT_Blurry; But_Fail_Rand.MenuState=MSAT_Disabled; SetFailureVisibility(false); } } event ChangeHint(string NewHint) { Bar_Hint.Caption = NewHint; } function SetFailureVisibility(bool visible) { local int i; for (i= 0 ;i< FailuresToActivate.length; i++) { if(FailuresToActivate[i].Mechanism != FM_ErosionOuterRipRap && FailuresToActivate[i].Mechanism != FM_WaterQuality) { FailuresToActivate[i].NENotSerious.bVisible = visible; }else { FailuresToActivate[i].NENotSerious.bVisible = false; FailuresToActivate[i].NENotSerious.WinTop = -2; } FailuresToActivate[i].NEVerySerious.bVisible = visible; FailuresToActivate[i].NESerious.bVisible = visible; FailuresLabels[i].bVisible = visible; } Lab_NSerious.bVisible = visible; Lab_Serious.bVisible = visible; Lab_VSerious.bVisible = visible; } //============================================================================= // Date Id Modification // 2007-08-20 Zmr Created this header //============================================================================= function InternalOnClose(optional Bool bCanceled) { Super.OnClose(bCanceled); } //============================================================================= // Date Id Modification // 2007-08-20 Zmr Created this header //============================================================================= // Set Language() // Returns true if dutch or false if english // See directly in GeoPlayerController //============================================================================= function bool SetLanguage() { if(PlayerOwner().IsA('GeoPlayerController')) { return GeoPlayerController(PlayerOwner()).Dutch; } else { warn("THIS PLAYER CONTROLLER DOESN'T SUPPORT LANGUAGE"); return true; } } //============================================================================= // Date Id Modification // 2007-08-27 Zmr Created this header //============================================================================= // SetFailures() // Function to be extended by the specific level options //============================================================================= function SetFailures() { local int i,j; Log("Failures: " $ MaxFailuresRegional $ " - " $ MaxFailuresPrimary); if(maxFailures == 0) { MaxFailures = MaxFailuresRegional + MaxFailuresPrimary ; } j = 0; for(i = 0; i< FailuresToActivate.Length;i++) { FailuresToActivate[i].NEVerySerious = Numerics[j]; FailuresToActivate[i].NESerious = Numerics[j+1]; FailuresToActivate[i].NENotSerious = Numerics[j+2]; FailuresToActivate[i].NEVerySerious.MyNumericEdit.MyPlus.bCaptureMouse = false; FailuresToActivate[i].NESerious.MyNumericEdit.MyPlus.bCaptureMouse = false; FailuresToActivate[i].NENotSerious.MyNumericEdit.MyPlus.bCaptureMouse = false; FailuresToActivate[i].NEVerySerious.MyNumericEdit.MyMinus.bCaptureMouse = false; FailuresToActivate[i].NESerious.MyNumericEdit.MyMinus.bCaptureMouse = false; FailuresToActivate[i].NENotSerious.MyNumericEdit.MyMinus.bCaptureMouse = false; j = j + 3; } } //============================================================================= // Date Id Modification // 2007-08-31 Zmr Created this header //============================================================================= // Function which is called when the map needs to load en which saves all // the data. // // Original by Rui //============================================================================= function bool LoadMap() { local GeoCompleteExercise GCE; //log("LevelOptions LoadMap"); GCE = new class'GeoCompleteExercise'; GCE.IsCompleteExercise=false; GCE.SaveConfig(); SaveLevelInfo(); //if() //{ SaveConfig(); Console(Controller.Master.Console).ConsoleCommand("start"@MapURL); Controller.CloseAll(false); // } return true; } function bool SaveLevelInfo() { local GeoLevelDetails GLD; local int i, NrRandomFailures, Seriousness, AmountOfFailures, FailureNumber, tempCountPrimAndSec, tempCountPrimary, tempCountSecundary, nrOfIteration; // ******************************** //IF RANDOM PUT RANDOM SELECTIONS // ******************************** //log("SaveLevelInfo0"); GLD.ResetLevelDetails(); GLD.SaveConfig(); if(!bCustom) { Log("No custom"); NrRandomFailures = Rand(4)+3; //Returns a random amount of failures between 3 and 6 if(NrRandomFailures > MaxFailures) { NrRandomFailures = MaxFailures; } //Set in a random matter which failure will eventually be activated AmountOfFailures = 0; nrOfIteration = 100; while(AmountOfFailures< NrRandomFailures&& nrOfIteration>0) { nrOfIteration--; //Which type of failure will be activated FailureNumber = rand(FailuresToActivate.Length); HowMuchFailuresInBins(FailuresToActivate,tempCountPrimAndSec,tempCountPrimary, tempCountSecundary,Numerics[0] ); SetMorePossible(FailuresToActivate,tempCountPrimAndSec, tempCountPrimary, tempCountSecundary); //When it is still possible to add failures of that type /// 2007-10-11 Jln -Is this failure already activated? if(FailuresToActivate[FailureNumber].MorePossible) { //Add a failure by random Seriousness Seriousness = rand(4); switch(Seriousness) { Case 0: FailuresToActivate[FailureNumber].NENotSerious.SetValue(FailuresToActivate[FailureNumber].NENotSerious.GetValue()+1); break; Case 1: FailuresToActivate[FailureNumber].NESerious.SetValue(FailuresToActivate[FailureNumber].NESerious.GetValue()+1); break; Case 2: Case 3: //Extra FailuresToActivate[FailureNumber].NEVerySerious.SetValue(FailuresToActivate[FailureNumber].NEVerySerious.GetValue()+1); break; } //there is one failure added so go to the next iteration with one failure less to add. AmountOfFailures++; //log("SaveLevelInfo02"); }else { //log("SaveLevelInfo03"); } //log("SaveLevelInfo0"); } } log("SaveLevelInfo1"); // ******************************** // Put selected failures in level // ******************************** GLD = new class'GeoLevelDetails'; GLD.ResetLevelDetails(); for(i = 0;i < FailuresToActivate.length;i++) { log("FailureType: " @ FailuresToActivate[i].Mechanism); log("NEVerySerious: " @ FailuresToActivate[i].NEVerySerious.GetValue()); // the amount of failures set VS in the level log("NESerious: " @ FailuresToActivate[i].NESerious.GetValue()); // the amount of failures set S in the level log("NENotSerious: " @ FailuresToActivate[i].NENotSerious.GetValue()); } /// Store array in GLD variable which will be stored to a file. for (i = 0; i < FailuresToActivate.length ; i++ ) { GLD.LeveeTilesToActivate.Insert(0,1); GLD.LeveeTilesToActivate[0].MaxCount = FailuresToActivate[i].NEVerySerious.GetValue() + FailuresToActivate[i].NESerious.GetValue() + FailuresToActivate[i].NENotSerious.GetValue(); // FailuresToActivate[i].MaxCount; GLD.LeveeTilesToActivate[0].Mechanism = FailuresToActivate[i].Mechanism; GLD.LeveeTilesToActivate[0].VerySerious = FailuresToActivate[i].NEVerySerious.GetValue(); GLD.LeveeTilesToActivate[0].Serious = FailuresToActivate[i].NESerious.GetValue(); GLD.LeveeTilesToActivate[0].NotSerious = FailuresToActivate[i].NENotSerious.GetValue(); GLD.LeveeTilesToActivate[0].FailureNames.Length = 0; // = FailuresToActivate[i].FailureNames; } log("FailuresToActivate count:" @ GLD.LeveeTilesToActivate.Length); GLD.IsRaining = bRain; GLD.MakeDiagnoses = bTakeDiagnosis; GLD.TakeMeasures = bTakeMeasures && GLD.MakeDiagnoses; GLD.CurrentLevelScenarioNumber = GLD.CurrentLevelScenarioNumber; //ScenarioNumber; GLD.CurrentLevelImage = MapPicture; Log("Scenario number at MenuLevelOptions: " @ ScenarioNumber); GLD.IsCompleteExercise = false; GLD.SaveConfig(); return true; } function array GetSortedFailureArray(array unsorted) { local array sorted; local int i,j; i = 0; sorted.insert(0,unsorted.length); for(j = 0; j< unsorted.length;j++) { if(unsorted[j].InPrimaryLevee && ! unsorted[j].InSecundaryLevee) { sorted[i] = unsorted[j]; i++; } } for(j = 0 ;j< unsorted.length;j++) { if(!unsorted[j].InPrimaryLevee && unsorted[j].InSecundaryLevee) { sorted[i] = unsorted[j]; i++; } } for(j = 0 ;j< unsorted.length;j++) { if(unsorted[j].InPrimaryLevee && unsorted[j].InSecundaryLevee) { sorted[i] = unsorted[j]; i++; } } return sorted; } //============================================================================= // Date Id Modification // 2007-08-20 Zmr Created this header //============================================================================= defaultproperties { NL_Title="Menu Level Options" EN_Title="Menu Level Options" Begin Object Class=GUIButton name=Background1 bAcceptsInput=false bNeverFocus=true StyleName="GeoCallBar" End Object BackGround=GUIButton'Background1' Begin Object class=GUITitleBar name=SettingHeader Caption="Levee Patroller Options" StyleName="Header" Justification=TXTA_Center End Object Bar_Title=GUITitleBar'SettingHeader' Begin Object class=GUITitleBar name=SettingFooter bUseTextHeight=false StyleName="Footer" Justification=TXTA_Center End Object Bar_Hint=GUITitleBar'SettingFooter' Begin Object Class=GUIButton Name=Button OnClick=InternalOnClick StyleName="SquareMenuButton" End Object But_Back=GUIButton'Button' But_Play=GUIButton'Button' Begin Object Class=GUIButton Name=ButtonSettings OnClick=InternalOnClick StyleName="MidGameButton_Orange_SG" End Object But_Diag_Yes=GUIButton'ButtonSettings' But_Diag_No=GUIButton'ButtonSettings' But_Meas_Yes=GUIButton'ButtonSettings' But_Meas_No=GUIButton'ButtonSettings' But_Fail_Rand=GUIButton'ButtonSettings' But_Fail_Choice=GUIButton'ButtonSettings' But_Weath_Rain=GUIButton'ButtonSettings' But_Weath_Clear=GUIButton'ButtonSettings' Begin Object Class=GUIImage Name=cImage_PreviewImage ImageStyle=ISTY_Scaled ImageRenderStyle=MSTY_Normal ImageColor=(R=255,G=255,B=255,A=255); End Object Img_Preview=cImage_PreviewImage Begin Object Class=GUIScrollTextBox Name=cScroll_LevelDescription CharDelay=0.0021 EOLDelay=0.001 bNeverFocus=true bVisibleWhenEmpty=True End Object Scroll_LevelDescription=cScroll_LevelDescription Begin Object class=GUIImage Name=InputBK1 Image=Material'GUIContent.BorderBoxD' ImageColor=(R=255,G=255,B=255,A=160); ImageRenderStyle=MSTY_Alpha ImageStyle=ISTY_Stretched End Object Img_InputBackground = GUIImage'InputBK1' Begin Object class=GUILabel Name=LabelTitle Caption= "Macro instabiliteit" TextColor=(R=255,G=120,B=0,A=255) TextFont="MidGameFont" End Object Begin Object class=GUILabel Name=Label Caption= "Macro instabiliteit" TextColor=(R=255,G=255,B=255,A=255) TextFont="MidGameFont" End Object Lab_GameRules=GUILabel'LabelTitle' Lab_Diagnosis=GUILabel'Label' Lab_Measure=GUILabel'Label' Lab_FailureChoice=GUILabel'Label' Lab_Weathertype=GUILabel'Label' Begin Object class=moNumericEdit Name=cNumeric Caption="" CaptionWidth=0.001 WinLeft=2 MinValue=0 MaxValue=100 INIOption="@INTERNAL" INIDefault="0" OnChange = InternalOnNumericChange ComponentJustification=TXTA_Left bHeightFromComponent=false End Object NE_0=moNumericEdit'cNumeric' NE_1=moNumericEdit'cNumeric' NE_2=moNumericEdit'cNumeric' NE_3=moNumericEdit'cNumeric' NE_4=moNumericEdit'cNumeric' NE_5=moNumericEdit'cNumeric' NE_6=moNumericEdit'cNumeric' NE_7=moNumericEdit'cNumeric' NE_8=moNumericEdit'cNumeric' NE_9=moNumericEdit'cNumeric' NE_10=moNumericEdit'cNumeric' NE_11=moNumericEdit'cNumeric' NE_12=moNumericEdit'cNumeric' NE_13=moNumericEdit'cNumeric' NE_14=moNumericEdit'cNumeric' NE_15=moNumericEdit'cNumeric' NE_16=moNumericEdit'cNumeric' NE_17=moNumericEdit'cNumeric' NE_18=moNumericEdit'cNumeric' NE_19=moNumericEdit'cNumeric' NE_20=moNumericEdit'cNumeric' NE_21=moNumericEdit'cNumeric' NE_22=moNumericEdit'cNumeric' NE_23=moNumericEdit'cNumeric' NE_24=moNumericEdit'cNumeric' NE_25=moNumericEdit'cNumeric' NE_26=moNumericEdit'cNumeric' NE_27=moNumericEdit'cNumeric' NE_28=moNumericEdit'cNumeric' NE_29=moNumericEdit'cNumeric' Lab_0=GUILabel'Label' Lab_1=GUILabel'Label' Lab_2=GUILabel'Label' Lab_3=GUILabel'Label' Lab_4=GUILabel'Label' Lab_5=GUILabel'Label' Lab_6=GUILabel'Label' Lab_7=GUILabel'Label' Lab_8=GUILabel'Label' Lab_9=GUILabel'Label' Begin Object class=GUILabel Name=FailureLabel Caption= "#Very Serious" TextColor=(R=255,G=255,B=255,A=255) TextFont="SmallFont" TextAlign=TXTA_Center End Object Lab_NSerious=GUILabel'FailureLabel' Lab_Serious=GUILabel'FailureLabel' Lab_VSerious=GUILabel'FailureLabel' //standard variables ButtonWidth=0.12 ButtonHeight=0.055 ButtonHGap=0.01 ButtonVGapLarge=0.03 ButtonVGapSmall=0.02 BarHeight=0.21 BarVPos=0.5 SButtonSize=0.06 SButtonHGap=0.02 SButtonVGap=0.02 TitleLeftGap=0.05 bIgnoreEsc = true; // *********************************** // Language Settings // *********************************** EN_Resume="Back" NL_Resume="Terug" EN_ResumeHint="Go back to Main Menu" NL_ResumeHint="Terug naar het hoofdmenu" EN_Play ="Begin" NL_Play ="Start" EN_PlayHint ="Play the scenario" NL_PlayHint ="Start het scenario" NL_GameRules="SPELEIGENSCHAPPEN" EN_GameRules="GAMEPLAY OPTIONS" NL_Diagnoses="Diagnosticeren" EN_Diagnoses="Make Diagnoses" NL_Yes = "Ja" EN_Yes = "Yes" NL_HintDiag_Yes="Maak het mogelijk om het faalmechanisme achter een schadebeeld vast te stellen" EN_HintDiag_Yes="Enables the task of determining the failure mechanism behind signals" NL_No = "Nee" EN_No = "No" NL_HintDiag_No="Laat het Actiecentrum het faalmechanimse achter een schadebeeld vaststellen" EN_HintDiag_No="Let the Action Center determine which failure mechanism is associated with the signals" NL_Measures="Maatregelen nemen" EN_Measures="Take measures" NL_HintMeas_Yes="Maak het mogelijk om zelf de beschermende maatregelen te kiezen" EN_HintMeas_Yes="Enables the task of determining the right measure to prevent further damage" NL_HintMeas_No="Laat het Actiecentrum de juiste beschermende maatregel voor je kiezen" EN_HintMeas_No="Let the Action Center determine what the best measure is to prevent further damage" NL_FailureChoice="Faalmechanismen" EN_FailureChoice="Failure Mechanisms" NL_Fail_Rand="Willekeurig" EN_Fail_Rand="Random" NL_HintFail_Rand="Plaats een willekeurig aantal faalmechanismen in het landschap" EN_HintFail_Rand="Choose this to randomly place the failure mechanisms in the region" NL_Fail_Choice="Kiezen" EN_Fail_Choice="Custom" NL_HintFail_Choice="Selecteer zelf het aantal en de soort faalmechanismen" EN_HintFail_Choice="Choose this to customize the number and type of failure mechanisms" NL_Weathertype="Weerkeuze" EN_Weathertype="Weather options" NL_Weath_Clear="Helder" EN_Weath_Clear="Clear" NL_HintWeath_Clear="Inspecteer tijdens helder weer (beter zicht)" EN_HintWeath_Clear="Inspect during clear weather (high visibility)" NL_Weath_Rain="Regen" EN_Weath_Rain="Rain" NL_HintWeath_Rain="Inspecteer tijdens regenachtig weer (slecht zicht)" EN_HintWeath_Rain="Inspect during rainy weather (low visibility)" NL_EroOut="Erosie buitentalud" EN_EroOut="Erosion outer slope" NL_EroInn="Erosie binnentalud" EN_EroInn="Erosion inner slope" NL_Macro="Macro-instabiliteit" EN_Macro="Macro-instability" NL_Micro="Micro-instabiliteit" EN_Micro="Micro-instability" NL_Piping="Piping" EN_Piping="Piping" NL_Droogte1="Droogte Macro" NL_Droogte2="Droogte Micro" NL_Droogte3="Droogte Erosie" NL_Quality="Waterkwaliteit" EN_Droogte1="Drought Macro" EN_Droogte2="Drought Micro" EN_Droogte3="Drought Erosie" EN_Quality="Water quality" NL_NonRep="Niet Rapporteerbaar" EN_NonRep="Non-reportable" NL_Critical="Zeer Ernstig" EN_Critical="Very Serious" NL_Relevant="Ernstig" EN_Relevant="Serious" NL_Reportable="Niet Ernstig" EN_Reportable="Not Serious" // *********************************** // To set by the extending page // *********************************** MapPicture = Material'GeoDelft.MapPreview.Level4screenshot'; NL_DescriptionDG = "De nederlandsche beschrijving van dit mooie level" // the story below by Maarten van Zomeren... -Wsl EN_DescriptionDG = "Er was eens een meisje, dat heette Barbara. Barbara had een groentenwinkel en verkocht rabarber. Daarom noemden alle mensen dat meisje: Rabarberbarbara. Later begon Barbara een cafe met een bar. Op het raam stond: Rabarberbarbarabar. Daar kwamen wilde mannen op bezoek, echte barbaren: de Rabarberbarbarabarbarbaren. O, wat hadden die mannen lange baarden! Die baarden noemden ze: Rabarberbarbarabarbarbarenbaarden. En de barbier die die lange baarden moest knippen was de: Rabarberbarbarabarbarbarenbaardenbarbier! " MapUrl="Scenario1DG" }