public ScenarioTriggerVolumeBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadStringID();
     this.objectName = binaryReader.ReadShortBlockIndex1();
     this.skip = binaryReader.ReadBytes(2);
     this.nodeName = binaryReader.ReadStringID();
     this.eMPTYSTRING = new EMPTYSTRING[6];
     for (int i = 0; i < 6; ++i)
     {
         this.eMPTYSTRING[i] = new EMPTYSTRING(binaryReader);
     }
     this.position = binaryReader.ReadVector3();
     this.extents = binaryReader.ReadVector3();
     this.padding0 = binaryReader.ReadBytes(4);
     this.killTriggerVolume = binaryReader.ReadShortBlockIndex1();
     this.padding1 = binaryReader.ReadBytes(2);
 }
 public DecoratorGroupBlock(BinaryReader binaryReader)
 {
     this.decoratorSet = binaryReader.ReadByteBlockIndex1();
     this.decoratorType = (DecoratorType)binaryReader.ReadByte();
     this.shaderIndex = binaryReader.ReadByte();
     this.compressedRadius = binaryReader.ReadByte();
     this.cluster = binaryReader.ReadInt16();
     this.cacheBlock = binaryReader.ReadShortBlockIndex1();
     this.decoratorStartIndex = binaryReader.ReadInt16();
     this.decoratorCount = binaryReader.ReadInt16();
     this.vertexStartOffset = binaryReader.ReadInt16();
     this.vertexCount = binaryReader.ReadInt16();
     this.indexStartOffset = binaryReader.ReadInt16();
     this.indexCount = binaryReader.ReadInt16();
     this.compressedBoundingCenter = binaryReader.ReadInt32();
 }
 public ScenarioCreatureBlock(BinaryReader binaryReader)
 {
     this.type = binaryReader.ReadShortBlockIndex1();
     this.name = binaryReader.ReadShortBlockIndex1();
     this.objectData = new ScenarioObjectDatumStruct(binaryReader);
 }
 public ScenarioClusterSoundEnvironmentsBlock(BinaryReader binaryReader)
 {
     this.type = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
 }
 public ScenarioCrateBlock(BinaryReader binaryReader)
 {
     this.type = binaryReader.ReadShortBlockIndex1();
     this.name = binaryReader.ReadShortBlockIndex1();
     this.objectData = new ScenarioObjectDatumStruct(binaryReader);
     this.paddingindexer = binaryReader.ReadBytes(4);
     this.permutationData = new ScenarioObjectPermutationStruct(binaryReader);
 }
 public OrderEndingBlock(BinaryReader binaryReader)
 {
     this.nextOrder = binaryReader.ReadShortBlockIndex1();
     this.combinationRule = (CombinationRule)binaryReader.ReadInt16();
     this.delayTime = binaryReader.ReadSingle();
     this.dialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType = (DialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType)binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(TriggerReferences));
         this.triggers = new TriggerReferences[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.triggers[i] = new TriggerReferences(binaryReader);
             }
         }
     }
 }
 public OrderCompletionCondition(BinaryReader binaryReader)
 {
     this.ruleType = (RuleType)binaryReader.ReadInt16();
     this.squad = binaryReader.ReadShortBlockIndex1();
     this.squadGroup = binaryReader.ReadShortBlockIndex1();
     this.a = binaryReader.ReadInt16();
     this.x = binaryReader.ReadSingle();
     this.triggerVolume = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
     this.exitConditionScript = binaryReader.ReadString32();
     this.invalidName_0 = binaryReader.ReadInt16();
     this.padding1 = binaryReader.ReadBytes(2);
     this.flags = (Flags)binaryReader.ReadInt32();
 }
 public FiringPositionsBlock(BinaryReader binaryReader)
 {
     this.positionLocal = binaryReader.ReadVector3();
     this.referenceFrame = binaryReader.ReadInt16();
     this.flags = (Flags)binaryReader.ReadInt16();
     this.area = binaryReader.ReadShortBlockIndex1();
     this.clusterIndex = binaryReader.ReadInt16();
     this.skip = binaryReader.ReadBytes(4);
     this.normal = binaryReader.ReadVector2();
 }
 public ZoneBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadString32();
     this.flags = (Flags)binaryReader.ReadInt32();
     this.manualBsp = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(FiringPositionsBlock));
         this.firingPositions = new FiringPositionsBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.firingPositions[i] = new FiringPositionsBlock(binaryReader);
             }
         }
     }
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(AreasBlock));
         this.areas = new AreasBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.areas[i] = new AreasBlock(binaryReader);
             }
         }
     }
 }
Example #10
0
 public ActorStartingLocationsBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadStringID();
     this.position = binaryReader.ReadVector3();
     this.referenceFrame = binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     this.facingYawPitchDegrees = binaryReader.ReadVector2();
     this.flags = (Flags)binaryReader.ReadInt32();
     this.characterType = binaryReader.ReadShortBlockIndex1();
     this.initialWeapon = binaryReader.ReadShortBlockIndex1();
     this.initialSecondaryWeapon = binaryReader.ReadShortBlockIndex1();
     this.padding0 = binaryReader.ReadBytes(2);
     this.vehicleType = binaryReader.ReadShortBlockIndex1();
     this.seatType = (SeatType)binaryReader.ReadInt16();
     this.grenadeType = (GrenadeType)binaryReader.ReadInt16();
     this.swarmCountNumberOfCreturesInSwarmIfASwarmIsSpawnedAtThisLocation = binaryReader.ReadInt16();
     this.actorVariantName = binaryReader.ReadStringID();
     this.vehicleVariantName = binaryReader.ReadStringID();
     this.initialMovementDistanceBeforeDoingAnythingElseTheActorWillTravelTheGivenDistanceInItsForwardDirection = binaryReader.ReadSingle();
     this.emitterVehicle = binaryReader.ReadShortBlockIndex1();
     this.initialMovementMode = (InitialMovementMode)binaryReader.ReadInt16();
     this.placementScript = binaryReader.ReadString32();
     this.skip1 = binaryReader.ReadBytes(2);
     this.padding2 = binaryReader.ReadBytes(2);
 }
Example #11
0
 public SquadsBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadString32();
     this.flags = (Flags)binaryReader.ReadInt32();
     this.team = (Team)binaryReader.ReadInt16();
     this.parent = binaryReader.ReadShortBlockIndex1();
     this.squadDelayTimeSeconds = binaryReader.ReadSingle();
     this.normalDiffCountInitialNumberOfActorsOnNormalDifficulty = binaryReader.ReadInt16();
     this.insaneDiffCountInitialNumberOfActorsOnInsaneDifficultyHardDifficultyIsMidwayBetweenNormalAndInsane = binaryReader.ReadInt16();
     this.majorUpgrade = (MajorUpgrade)binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     this.vehicleType = binaryReader.ReadShortBlockIndex1();
     this.characterType = binaryReader.ReadShortBlockIndex1();
     this.initialZone = binaryReader.ReadShortBlockIndex1();
     this.padding0 = binaryReader.ReadBytes(2);
     this.initialWeapon = binaryReader.ReadShortBlockIndex1();
     this.initialSecondaryWeapon = binaryReader.ReadShortBlockIndex1();
     this.grenadeType = (GrenadeType)binaryReader.ReadInt16();
     this.initialOrder = binaryReader.ReadShortBlockIndex1();
     this.vehicleVariant = binaryReader.ReadStringID();
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(ActorStartingLocationsBlock));
         this.startingLocations = new ActorStartingLocationsBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.startingLocations[i] = new ActorStartingLocationsBlock(binaryReader);
             }
         }
     }
     this.placementScript = binaryReader.ReadString32();
     this.skip1 = binaryReader.ReadBytes(2);
     this.padding2 = binaryReader.ReadBytes(2);
 }
Example #12
0
 public SquadGroupsBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadString32();
     this.parent = binaryReader.ReadShortBlockIndex1();
     this.initialOrders = binaryReader.ReadShortBlockIndex1();
 }
Example #13
0
 public ScenarioDecalsBlock(BinaryReader binaryReader)
 {
     this.decalType = binaryReader.ReadShortBlockIndex1();
     this.yaw127127 = binaryReader.ReadByte();
     this.pitch127127 = binaryReader.ReadByte();
     this.position = binaryReader.ReadVector3();
 }
Example #14
0
 public ScenarioBspSwitchTriggerVolumeBlock(BinaryReader binaryReader)
 {
     this.triggerVolume = binaryReader.ReadShortBlockIndex1();
     this.source = binaryReader.ReadInt16();
     this.destination = binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     this.padding0 = binaryReader.ReadBytes(2);
     this.padding1 = binaryReader.ReadBytes(2);
     this.padding2 = binaryReader.ReadBytes(2);
 }
Example #15
0
 public ScenarioKillTriggerVolumesBlock(BinaryReader binaryReader)
 {
     this.triggerVolume = binaryReader.ReadShortBlockIndex1();
 }
Example #16
0
 public TriggerReferences(BinaryReader binaryReader)
 {
     this.triggerFlags = (TriggerFlags)binaryReader.ReadInt32();
     this.trigger = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
 }
Example #17
0
 public SecondaryZoneSetBlock(BinaryReader binaryReader)
 {
     this.areaType = (AreaType)binaryReader.ReadInt16();
     this.padding = binaryReader.ReadBytes(2);
     this.zone = binaryReader.ReadShortBlockIndex1();
     this.area = binaryReader.ReadShortBlockIndex2();
 }
Example #18
0
 public UserHintJumpBlock(BinaryReader binaryReader)
 {
     this.flags = (Flags)binaryReader.ReadInt16();
     this.geometryIndex = binaryReader.ReadShortBlockIndex1();
     this.forceJumpHeight = (ForceJumpHeight)binaryReader.ReadInt16();
     this.controlFlags = (ControlFlags)binaryReader.ReadInt16();
 }
Example #19
0
 public OrdersBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadString32();
     this.style = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
     this.flags = (Flags)binaryReader.ReadInt32();
     this.forceCombatStatus = (ForceCombatStatus)binaryReader.ReadInt16();
     this.padding0 = binaryReader.ReadBytes(2);
     this.entryScript = binaryReader.ReadString32();
     this.skip1 = binaryReader.ReadBytes(2);
     this.followSquad = binaryReader.ReadShortBlockIndex1();
     this.followRadius = binaryReader.ReadSingle();
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(ZoneSetBlock));
         this.primaryAreaSet = new ZoneSetBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.primaryAreaSet[i] = new ZoneSetBlock(binaryReader);
             }
         }
     }
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(SecondaryZoneSetBlock));
         this.secondaryAreaSet = new SecondaryZoneSetBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.secondaryAreaSet[i] = new SecondaryZoneSetBlock(binaryReader);
             }
         }
     }
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(SecondarySetTriggerBlock));
         this.secondarySetTrigger = new SecondarySetTriggerBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.secondarySetTrigger[i] = new SecondarySetTriggerBlock(binaryReader);
             }
         }
     }
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(SpecialMovementBlock));
         this.specialMovement = new SpecialMovementBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.specialMovement[i] = new SpecialMovementBlock(binaryReader);
             }
         }
     }
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(OrderEndingBlock));
         this.orderEndings = new OrderEndingBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.orderEndings[i] = new OrderEndingBlock(binaryReader);
             }
         }
     }
 }
Example #20
0
 public UserHintClimbBlock(BinaryReader binaryReader)
 {
     this.flags = (Flags)binaryReader.ReadInt16();
     this.geometryIndex = binaryReader.ReadShortBlockIndex1();
 }
Example #21
0
 public ScenarioClusterBackgroundSoundsBlock(BinaryReader binaryReader)
 {
     this.type = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
 }
Example #22
0
 public AiConversationParticipantBlock(BinaryReader binaryReader)
 {
     this.padding = binaryReader.ReadBytes(8);
     this.useThisObjectIfAUnitWithThisNameExistsWeTryToPickThemToStartTheConversation = binaryReader.ReadShortBlockIndex1();
     this.setNewNameOnceWePickAUnitWeNameItThis = binaryReader.ReadShortBlockIndex1();
     this.padding0 = binaryReader.ReadBytes(12);
     this.padding1 = binaryReader.ReadBytes(12);
     this.encounterName = binaryReader.ReadString32();
     this.padding2 = binaryReader.ReadBytes(4);
     this.padding3 = binaryReader.ReadBytes(12);
 }
Example #23
0
 public ScenarioClusterAtmosphericFogPropertiesBlock(BinaryReader binaryReader)
 {
     this.type = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
 }
Example #24
0
 public AiConversationLineBlock(BinaryReader binaryReader)
 {
     this.flags = (Flags)binaryReader.ReadInt16();
     this.participant = binaryReader.ReadShortBlockIndex1();
     this.addressee = (Addressee)binaryReader.ReadInt16();
     this.addresseeParticipantThisFieldIsOnlyUsedIfTheAddresseeTypeIsParticipant = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(4);
     this.lineDelayTime = binaryReader.ReadSingle();
     this.padding0 = binaryReader.ReadBytes(12);
     this.variant1 = binaryReader.ReadTagReference();
     this.variant2 = binaryReader.ReadTagReference();
     this.variant3 = binaryReader.ReadTagReference();
     this.variant4 = binaryReader.ReadTagReference();
     this.variant5 = binaryReader.ReadTagReference();
     this.variant6 = binaryReader.ReadTagReference();
 }
Example #25
0
 public FlockDefinitionBlock(BinaryReader binaryReader)
 {
     this.bsp = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
     this.boundingVolume = binaryReader.ReadShortBlockIndex1();
     this.flags = (Flags)binaryReader.ReadInt16();
     this.ecologyMarginWusDistanceFromEcologyBoundaryThatCreatureBeginsToBeRepulsed = binaryReader.ReadSingle();
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(FlockSourceBlock));
         this.sources = new FlockSourceBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.sources[i] = new FlockSourceBlock(binaryReader);
             }
         }
     }
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(FlockSinkBlock));
         this.sinks = new FlockSinkBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.sinks[i] = new FlockSinkBlock(binaryReader);
             }
         }
     }
     this.productionFrequencyBoidsSecHowFrequentlyBoidsAreProducedAtOneOfTheSourcesLimitedByTheMaxBoidCount = binaryReader.ReadSingle();
     this.scale = binaryReader.ReadRange();
     this.creature = binaryReader.ReadTagReference();
     this.boidCount = binaryReader.ReadInt32();
     this.neighborhoodRadiusWorldUnitsDistanceWithinWhichOneBoidIsAffectedByAnother = binaryReader.ReadSingle();
     this.avoidanceRadiusWorldUnitsDistanceThatABoidTriesToMaintainFromAnother = binaryReader.ReadSingle();
     this.forwardScale01WeightGivenToBoidsDesireToFlyStraightAhead = binaryReader.ReadSingle();
     this.alignmentScale01WeightGivenToBoidsDesireToAlignItselfWithNeighboringBoids = binaryReader.ReadSingle();
     this.avoidanceScale01WeightGivenToBoidsDesireToAvoidCollisionsWithOtherBoidsWhenWithinTheAvoidanceRadius = binaryReader.ReadSingle();
     this.levelingForceScale01WeightGivenToBoidsDesireToFlyLevel = binaryReader.ReadSingle();
     this.sinkScale01WeightGivenToBoidsDesireToFlyTowardsItsSinks = binaryReader.ReadSingle();
     this.perceptionAngleDegreesAngleFromForwardWithinWhichOneBoidCanPerceiveAndReactToAnother = binaryReader.ReadSingle();
     this.averageThrottle01ThrottleAtWhichBoidsWillNaturallyFly = binaryReader.ReadSingle();
     this.maximumThrottle01MaximumThrottleApplicable = binaryReader.ReadSingle();
     this.positionScale01WeightGivenToBoidsDesireToBeNearFlockCenter = binaryReader.ReadSingle();
     this.positionMinRadiusWusDistanceToFlockCenterBeyondWhichAnAttractingForceIsApplied = binaryReader.ReadSingle();
     this.positionMaxRadiusWusDistanceToFlockCenterAtWhichTheMaximumAttractingForceIsApplied = binaryReader.ReadSingle();
     this.movementWeightThresholdTheThresholdOfAccumulatedWeightOverWhichMovementOccurs = binaryReader.ReadSingle();
     this.dangerRadiusWusDistanceWithinWhichBoidsWillAvoidADangerousObjectEGThePlayer = binaryReader.ReadSingle();
     this.dangerScaleWeightGivenToBoidsDesireToAvoidDanger = binaryReader.ReadSingle();
     this.randomOffsetScale01WeightGivenToBoidsRandomHeadingOffset = binaryReader.ReadSingle();
     this.randomOffsetPeriodSeconds = binaryReader.ReadRange();
     this.flockName = binaryReader.ReadStringID();
 }
Example #26
0
 public CsPointSetBlock(BinaryReader binaryReader)
 {
     this.name = binaryReader.ReadString32();
     {
         var count = binaryReader.ReadInt32();
         var address = binaryReader.ReadInt32();
         var elementSize = Marshal.SizeOf(typeof(CsPointBlock));
         this.points = new CsPointBlock[count];
         using (binaryReader.BaseStream.Pin())
         {
             for (int i = 0; i < count; ++i)
             {
                 binaryReader.BaseStream.Position = address + i * elementSize;
                 this.points[i] = new CsPointBlock(binaryReader);
             }
         }
     }
     this.bspIndex = binaryReader.ReadShortBlockIndex1();
     this.manualReferenceFrame = binaryReader.ReadInt16();
     this.flags = (Flags)binaryReader.ReadInt32();
 }
Example #27
0
 public DecoratorCellCollectionBlock(BinaryReader binaryReader)
 {
     this.childIndices = new ChildIndices[8];
     for (int i = 0; i < 8; ++i)
     {
         this.childIndices[i] = new ChildIndices(binaryReader);
     }
     this.cacheBlockIndex = binaryReader.ReadShortBlockIndex1();
     this.groupCount = binaryReader.ReadInt16();
     this.groupStartIndex = binaryReader.ReadInt32();
 }
Example #28
0
 public ScenarioStructureBspReferenceBlock(BinaryReader binaryReader)
 {
     this.padding = binaryReader.ReadBytes(16);
     this.structureBSP = binaryReader.ReadTagReference();
     this.structureLightmap = binaryReader.ReadTagReference();
     this.padding0 = binaryReader.ReadBytes(4);
     this.uNUSEDRadianceEstSearchDistance = binaryReader.ReadSingle();
     this.padding1 = binaryReader.ReadBytes(4);
     this.uNUSEDLuminelsPerWorldUnit = binaryReader.ReadSingle();
     this.uNUSEDOutputWhiteReference = binaryReader.ReadSingle();
     this.padding2 = binaryReader.ReadBytes(8);
     this.flags = (Flags)binaryReader.ReadInt16();
     this.padding3 = binaryReader.ReadBytes(2);
     this.defaultSky = binaryReader.ReadShortBlockIndex1();
     this.padding4 = binaryReader.ReadBytes(2);
 }
Example #29
0
 public ScenarioBspSwitchTransitionVolumeBlock(BinaryReader binaryReader)
 {
     this.bSPIndexKey = binaryReader.ReadInt32();
     this.triggerVolume = binaryReader.ReadShortBlockIndex1();
     this.padding = binaryReader.ReadBytes(2);
 }
Example #30
0
 public ScenarioLightBlock(BinaryReader binaryReader)
 {
     this.type = binaryReader.ReadShortBlockIndex1();
     this.name = binaryReader.ReadShortBlockIndex1();
     this.objectData = new ScenarioObjectDatumStruct(binaryReader);
     this.deviceData = new ScenarioDeviceStruct(binaryReader);
     this.lightData = new ScenarioLightStruct(binaryReader);
 }