internal ScenarioFunctionBlockBase(BinaryReader binaryReader)
 {
     this.flags                  = (Flags)binaryReader.ReadInt32();
     this.name                   = binaryReader.ReadString32();
     this.periodSeconds          = binaryReader.ReadSingle();
     this.scalePeriodBy          = binaryReader.ReadShortBlockIndex1();
     this.function               = (Function)binaryReader.ReadInt16();
     this.scaleFunctionBy        = binaryReader.ReadShortBlockIndex1();
     this.wobbleFunction         = (WobbleFunctionCurveUsedForWobble)binaryReader.ReadInt16();
     this.wobblePeriodSeconds    = binaryReader.ReadSingle();
     this.wobbleMagnitudePercent = binaryReader.ReadSingle();
     this.squareWaveThreshold    = binaryReader.ReadSingle();
     this.stepCount              = binaryReader.ReadInt16();
     this.mapTo                  = (MapTo)binaryReader.ReadInt16();
     this.sawtoothCount          = binaryReader.ReadInt16();
     this.invalidName_           = binaryReader.ReadBytes(2);
     this.scaleResultBy          = binaryReader.ReadShortBlockIndex1();
     this.boundsMode             = (BoundsModeControlsHowBoundsBelowAreUsed)binaryReader.ReadInt16();
     this.bounds                 = binaryReader.ReadVector2();
     this.invalidName_0          = binaryReader.ReadBytes(4);
     this.invalidName_1          = binaryReader.ReadBytes(2);
     this.turnOffWith            = binaryReader.ReadShortBlockIndex1();
     this.invalidName_2          = binaryReader.ReadBytes(16);
     this.invalidName_3          = binaryReader.ReadBytes(16);
 }
 public ScenarioFunctionBlock(BinaryReader binaryReader)
 {
     this.flags = (Flags)binaryReader.ReadInt32();
     this.name = binaryReader.ReadString32();
     this.periodSecondsPeriodForAboveFunctionLowerValuesMakeFunctionOscillateQuicklyHigherValuesMakeItOscillateSlowly = binaryReader.ReadSingle();
     this.scalePeriodByMultiplyThisFunctionByAbovePeriod = binaryReader.ReadShortBlockIndex1();
     this.function = (Function)binaryReader.ReadInt16();
     this.scaleFunctionByMultiplyThisFunctionByResultOfAboveFunction = binaryReader.ReadShortBlockIndex1();
     this.wobbleFunctionCurveUsedForWobble = (WobbleFunctionCurveUsedForWobble)binaryReader.ReadInt16();
     this.wobblePeriodSecondsTimeItTakesForMagnitudeOfThisFunctionToCompleteAWobble = binaryReader.ReadSingle();
     this.wobbleMagnitudePercentAmountOfRandomWobbleInTheMagnitude = binaryReader.ReadSingle();
     this.squareWaveThresholdIfNonZeroAllValuesAboveSquareWaveThresholdAreSnappedTo10AndAllValuesBelowItAreSnappedTo00ToCreateASquareWave = binaryReader.ReadSingle();
     this.stepCountNumberOfDiscreteValuesToSnapToEGStepCountOf5SnapsFunctionTo000025050075Or100 = binaryReader.ReadInt16();
     this.mapTo = (MapTo)binaryReader.ReadInt16();
     this.sawtoothCountNumberOfTimesThisFunctionShouldRepeatEGSawtoothCountOf5GivesFunctionValueOf10AtEachOf025050And075AsWellAsAt10 = binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     this.scaleResultByMultiplyThisFunctionEGFromAWeaponVehicleFinalResultOfAllOfTheAboveMath = binaryReader.ReadShortBlockIndex1();
     this.boundsModeControlsHowBoundsBelowAreUsed = (BoundsModeControlsHowBoundsBelowAreUsed)binaryReader.ReadInt16();
     this.bounds = binaryReader.ReadSingle();
     this.padding0 = binaryReader.ReadBytes(4);
     this.padding1 = binaryReader.ReadBytes(2);
     this.turnOffWithIfSpecifiedFunctionIsOffSoIsThisFunction = binaryReader.ReadShortBlockIndex1();
     this.padding2 = binaryReader.ReadBytes(16);
     this.padding3 = binaryReader.ReadBytes(16);
 }