internal GlobalDamageInfoBlockBase(BinaryReader binaryReader) { this.flags = (Flags)binaryReader.ReadInt32(); this.globalIndirectMaterialName = binaryReader.ReadStringID(); this.indirectDamageSection = binaryReader.ReadShortBlockIndex2(); this.invalidName_ = binaryReader.ReadBytes(2); this.invalidName_0 = binaryReader.ReadBytes(4); this.collisionDamageReportingType = (CollisionDamageReportingType)binaryReader.ReadByte(); this.responseDamageReportingType = (ResponseDamageReportingType)binaryReader.ReadByte(); this.invalidName_1 = binaryReader.ReadBytes(2); this.invalidName_2 = binaryReader.ReadBytes(20); this.maximumVitality = binaryReader.ReadSingle(); this.minimumStunDamage = binaryReader.ReadSingle(); this.stunTimeSeconds = binaryReader.ReadSingle(); this.rechargeTimeSeconds = binaryReader.ReadSingle(); this.rechargeFraction = binaryReader.ReadSingle(); this.invalidName_3 = binaryReader.ReadBytes(64); this.shieldDamagedFirstPersonShader = binaryReader.ReadTagReference(); this.shieldDamagedShader = binaryReader.ReadTagReference(); this.maximumShieldVitality = binaryReader.ReadSingle(); this.globalShieldMaterialName = binaryReader.ReadStringID(); this.minimumStunDamage0 = binaryReader.ReadSingle(); this.stunTimeSeconds0 = binaryReader.ReadSingle(); this.rechargeTimeSeconds0 = binaryReader.ReadSingle(); this.shieldDamagedThreshold = binaryReader.ReadSingle(); this.shieldDamagedEffect = binaryReader.ReadTagReference(); this.shieldDepletedEffect = binaryReader.ReadTagReference(); this.shieldRechargingEffect = binaryReader.ReadTagReference(); this.damageSections = ReadGlobalDamageSectionBlockArray(binaryReader); this.nodes = ReadGlobalDamageNodesBlockArray(binaryReader); this.invalidName_4 = binaryReader.ReadBytes(2); this.invalidName_5 = binaryReader.ReadBytes(2); this.invalidName_6 = binaryReader.ReadBytes(4); this.invalidName_7 = binaryReader.ReadBytes(4); this.damageSeats = ReadDamageSeatInfoBlockArray(binaryReader); this.damageConstraints = ReadDamageConstraintInfoBlockArray(binaryReader); this.overshieldFirstPersonShader = binaryReader.ReadTagReference(); this.overshieldShader = binaryReader.ReadTagReference(); }
public GlobalDamageInfoBlock(BinaryReader binaryReader) { this.flags = (Flags)binaryReader.ReadInt32(); this.globalIndirectMaterialNameAbsorbesAOEOrChildDamage = binaryReader.ReadStringID(); this.indirectDamageSectionAbsorbesAOEOrChildDamage = binaryReader.ReadShortBlockIndex2(); this.padding = binaryReader.ReadBytes(2); this.padding0 = binaryReader.ReadBytes(4); this.collisionDamageReportingType = (CollisionDamageReportingType)binaryReader.ReadByte(); this.responseDamageReportingType = (ResponseDamageReportingType)binaryReader.ReadByte(); this.padding1 = binaryReader.ReadBytes(2); this.padding2 = binaryReader.ReadBytes(20); this.maximumVitality = binaryReader.ReadSingle(); this.minimumStunDamageTheMinimumDamageRequiredToStunThisObjectsHealth = binaryReader.ReadSingle(); this.stunTimeSecondsTheLengthOfTimeTheHealthStayStunnedDoNotRechargeAfterTakingDamage = binaryReader.ReadSingle(); this.rechargeTimeSecondsTheLengthOfTimeItWouldTakeForTheShieldsToFullyRechargeAfterBeingCompletelyDepleted = binaryReader.ReadSingle(); this.rechargeFraction0DefaultsTo1ToWhatMaximumLevelTheBodyHealthWillBeAllowedToRecharge = binaryReader.ReadSingle(); this.padding3 = binaryReader.ReadBytes(64); this.shieldDamagedFirstPersonShader = binaryReader.ReadTagReference(); this.shieldDamagedShader = binaryReader.ReadTagReference(); this.maximumShieldVitalityTheDefaultInitialAndMaximumShieldVitalityOfThisObject = binaryReader.ReadSingle(); this.globalShieldMaterialName = binaryReader.ReadStringID(); this.minimumStunDamageTheMinimumDamageRequiredToStunThisObjectsShields = binaryReader.ReadSingle(); this.stunTimeSecondsTheLengthOfTimeTheShieldsStayStunnedDoNotRechargeAfterTakingDamage = binaryReader.ReadSingle(); this.rechargeTimeSecondsTheLengthOfTimeItWouldTakeForTheShieldsToFullyRechargeAfterBeingCompletelyDepleted0 = binaryReader.ReadSingle(); this.shieldDamagedThreshold = binaryReader.ReadSingle(); this.shieldDamagedEffect = binaryReader.ReadTagReference(); this.shieldDepletedEffect = binaryReader.ReadTagReference(); this.shieldRechargingEffect = binaryReader.ReadTagReference(); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(GlobalDamageSectionBlock)); this.damageSections = new GlobalDamageSectionBlock[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.damageSections[i] = new GlobalDamageSectionBlock(binaryReader); } } } { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(GlobalDamageNodesBlock)); this.nodes = new GlobalDamageNodesBlock[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.nodes[i] = new GlobalDamageNodesBlock(binaryReader); } } } this.padding4 = binaryReader.ReadBytes(2); this.padding5 = binaryReader.ReadBytes(2); this.padding6 = binaryReader.ReadBytes(4); this.padding7 = binaryReader.ReadBytes(4); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(DamageSeatInfoBlock)); this.damageSeats = new DamageSeatInfoBlock[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.damageSeats[i] = new DamageSeatInfoBlock(binaryReader); } } } { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(DamageConstraintInfoBlock)); this.damageConstraints = new DamageConstraintInfoBlock[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.damageConstraints[i] = new DamageConstraintInfoBlock(binaryReader); } } } this.overshieldFirstPersonShader = binaryReader.ReadTagReference(); this.overshieldShader = binaryReader.ReadTagReference(); }