public ushort LicenseeNonCriticalBuildVersion; // ME3/UDK protected override void Serialize(SerializingContainer2 sc) { base.Serialize(sc); sc.Serialize(ref SourceStaticMesh); sc.Serialize(ref Fragments, SCExt.Serialize); sc.Serialize(ref CoreFragmentIndex); if (sc.Game >= MEGame.ME3) { sc.Serialize(ref InteriorElementIndex); sc.Serialize(ref CoreMeshScale3D); sc.Serialize(ref CoreMeshOffset); sc.Serialize(ref CoreMeshRotation); sc.Serialize(ref PlaneBias); sc.Serialize(ref NonCriticalBuildVersion); sc.Serialize(ref LicenseeNonCriticalBuildVersion); } else if (sc.IsLoading) { InteriorElementIndex = -1; CoreMeshScale3D = new Vector3(1, 1, 1); PlaneBias = new Vector3(1, 1, 1); NonCriticalBuildVersion = 1; LicenseeNonCriticalBuildVersion = 1; } }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref CollisionVertices, SCExt.Serialize); sc.Serialize(ref BVTree, SCExt.Serialize); sc.Serialize(ref PatchBounds, SCExt.Serialize); sc.Serialize(ref LightMap); }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref SM3StaticPermutationResource); sc.Serialize(ref SM3StaticParameterSet); sc.Serialize(ref SM2StaticPermutationResource); sc.Serialize(ref SM2StaticParameterSet); }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref Model); sc.Serialize(ref ZoneIndex); sc.Serialize(ref Elements, SCExt.Serialize); sc.Serialize(ref ComponentIndex); sc.Serialize(ref Nodes, SCExt.Serialize); }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref SM3MaterialResource); if (sc.Game != MEGame.UDK) { sc.Serialize(ref SM2MaterialResource); } }
public OrderedMultiValueDictionary <NameReference, PropertyCollection> CameraList; //PropertyCollection is struct of type BioStageCamera, which contains nothing that needs relinking protected override void Serialize(SerializingContainer2 sc) { if (sc.Game != MEGame.ME3) { if (sc.IsLoading) { CameraList = new OrderedMultiValueDictionary <NameReference, PropertyCollection>(); } return; } long startPos = sc.ms.Position; sc.Serialize(ref length); if (length == 0 && (sc.IsLoading || CameraList.Count == 0)) { if (sc.IsLoading) { CameraList = new OrderedMultiValueDictionary <NameReference, PropertyCollection>(); } return; } NameReference arrayName = "m_aCameraList"; sc.Serialize(ref arrayName); int dummy = 0; sc.Serialize(ref dummy); if (sc.IsLoading) { int count = sc.ms.ReadInt32(); sc.ms.SkipInt32(); CameraList = new OrderedMultiValueDictionary <NameReference, PropertyCollection>(count); for (int i = 0; i < count; i++) { CameraList.Add(sc.ms.ReadNameReference(sc.Pcc), PropertyCollection.ReadProps(Export, sc.ms, "BioStageCamera", true, entry: Export)); } } else { sc.ms.WriteInt32(CameraList.Count); sc.ms.WriteInt32(0); foreach ((NameReference name, PropertyCollection props) in CameraList) { sc.ms.WriteNameReference(name, sc.Pcc); props.WriteTo(sc.ms, sc.Pcc); } } if (sc.IsSaving) { long endPos = sc.ms.Position; sc.ms.JumpTo(startPos); sc.ms.WriteInt32((int)(endPos - startPos - 4)); sc.ms.JumpTo(endPos); } }
public static void Serialize(SerializingContainer2 sc, ref MorphTarget.BoneOffset boff) { if (sc.IsLoading) { boff = new MorphTarget.BoneOffset(); } sc.Serialize(ref boff.Offset); sc.Serialize(ref boff.Bone); }
public static void Serialize(SerializingContainer2 sc, ref MorphTarget.MorphLODModel lod) { if (sc.IsLoading) { lod = new MorphTarget.MorphLODModel(); } sc.Serialize(ref lod.Vertices, Serialize); sc.Serialize(ref lod.NumBaseMeshVerts); }
public static void Serialize(SerializingContainer2 sc, ref MorphTarget.MorphVertex vert) { if (sc.IsLoading) { vert = new MorphTarget.MorphVertex(); } sc.Serialize(ref vert.PositionDelta); sc.Serialize(ref vert.TangentZDelta); sc.Serialize(ref vert.SourceIdx); }
public static void Serialize(this SerializingContainer2 sc, ref LevelViewportInfo info) { if (sc.IsLoading) { info = new LevelViewportInfo(); } sc.Serialize(ref info.CamPosition); sc.Serialize(ref info.CamRotation); sc.Serialize(ref info.CamOrthoZoom); }
public static void Serialize(this SerializingContainer2 sc, ref PSA.PSAAnimKeys k) { if (sc.IsLoading) { k = new PSA.PSAAnimKeys(); } sc.Serialize(ref k.Position); sc.Serialize(ref k.Rotation); sc.Serialize(ref k.Time); }
protected override void Serialize(SerializingContainer2 sc) { int i = 0; sc.Serialize(ref DefaultSettingsNames, (SerializingContainer2 sc2, ref string name) => { sc.Serialize(ref name); sc.Serialize(ref i); ++i; }); }
protected override void Serialize(SerializingContainer2 sc) { base.Serialize(sc); sc.Serialize(ref ArraySize); sc.Serialize(ref PropertyFlags); sc.Serialize(ref Category); sc.Serialize(ref ArraySizeEnum); if (PropertyFlags.HasFlag(UnrealFlags.EPropertyFlags.Net)) { sc.Serialize(ref ReplicationOffset); } }
public static void Serialize(this SerializingContainer2 sc, ref PSA.ChunkHeader h) { if (sc.IsLoading) { h = new PSA.ChunkHeader(); } sc.SerializeFixedSizeString(ref h.ChunkID, 20); sc.Serialize(ref h.Version); sc.Serialize(ref h.DataSize); sc.Serialize(ref h.DataCount); }
protected override void Serialize(SerializingContainer2 sc) { base.Serialize(sc); if (sc.Game <= MEGame.ME2) { int dummy = 0; sc.Serialize(ref dummy); } sc.Serialize(ref Children); if (sc.Game <= MEGame.ME2) { int dummy = 0; sc.Serialize(ref dummy); sc.Serialize(ref Line); sc.Serialize(ref TextPos); } if (sc.Game >= MEGame.ME3) { sc.Serialize(ref ScriptBytecodeSize); } if (sc.IsSaving) { ScriptStorageSize = ScriptBytes.Length; } sc.Serialize(ref ScriptStorageSize); sc.Serialize(ref ScriptBytes, ScriptStorageSize); }
protected override void Serialize(SerializingContainer2 sc) { if (sc.Game >= MEGame.ME3) { sc.Serialize(ref LightMap); } }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref PersistentLevel); if (sc.Game == MEGame.ME3) { sc.Serialize(ref PersistentFaceFXAnimSet); } else if (sc.IsLoading) { PersistentFaceFXAnimSet = new UIndex(0); } for (int i = 0; i < 4; i++) { sc.Serialize(ref EditorViews[i]); } if (sc.Game == MEGame.UDK) { sc.Serialize(ref unkFloat); } int dummy = 0; sc.Serialize(ref dummy); if (sc.Game == MEGame.ME1) { sc.Serialize(ref DecalManager); } else if (sc.IsLoading) { DecalManager = new UIndex(0); } sc.Serialize(ref ExtraReferencedObjects, SCExt.Serialize); }
public NameReference FriendlyName; //ME1/2 protected override void Serialize(SerializingContainer2 sc) { base.Serialize(sc); sc.Serialize(ref NativeIndex); if (sc.Game <= MEGame.ME2) { sc.Serialize(ref OperatorPrecedence); } sc.Serialize(ref FunctionFlags); if (sc.Game <= MEGame.ME2 && FunctionFlags.HasFlag(FunctionFlags.Net)) { sc.Serialize(ref ReplicationOffset); } if (sc.Game <= MEGame.ME2) { sc.Serialize(ref FriendlyName); } }
public static void Serialize(this SerializingContainer2 sc, ref PSA.PSAAnimInfo a) { if (sc.IsLoading) { a = new PSA.PSAAnimInfo(); } sc.SerializeFixedSizeString(ref a.Name, 64); sc.SerializeFixedSizeString(ref a.Group, 64); sc.Serialize(ref a.TotalBones); sc.Serialize(ref a.RootInclude); sc.Serialize(ref a.KeyCompressionStyle); sc.Serialize(ref a.KeyQuotum); sc.Serialize(ref a.KeyReduction); sc.Serialize(ref a.TrackTime); sc.Serialize(ref a.AnimRate); sc.Serialize(ref a.StartBone); sc.Serialize(ref a.FirstRawFrame); sc.Serialize(ref a.NumRawFrames); }
protected override void Serialize(SerializingContainer2 sc) { byte platform = 0; sc.Serialize(ref platform); sc.Serialize(ref ShaderTypeCRCMap, SCExt.Serialize, SCExt.Serialize); if (sc.Game == MEGame.ME3 && sc.IsLoading) { int nameMapCount = sc.ms.ReadInt32(); sc.ms.Skip(nameMapCount * 12); } else if (sc.Game == MEGame.ME3 && sc.IsSaving) { sc.ms.WriteInt32(0); } if (sc.Game == MEGame.ME1) { sc.Serialize(ref VertexFactoryTypeCRCMap, SCExt.Serialize, SCExt.Serialize); } if (sc.IsLoading) { int shaderCount = sc.ms.ReadInt32(); Shaders = new OrderedMultiValueDictionary <Guid, Shader>(shaderCount); for (int i = 0; i < shaderCount; i++) { Shader shader = null; sc.Serialize(ref shader); Shaders.Add(shader.Guid, shader); } } else { sc.ms.WriteInt32(Shaders.Count); foreach ((_, Shader shader) in Shaders) { var temp = shader; sc.Serialize(ref temp); } } if (sc.Game != MEGame.ME1) { sc.Serialize(ref VertexFactoryTypeCRCMap, SCExt.Serialize, SCExt.Serialize); } sc.Serialize(ref MaterialShaderMaps, SCExt.Serialize, SCExt.Serialize); int dummy = 0; sc.Serialize(ref dummy); }
public float MaxCollisionDisplacement; //not ME1 protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref Heights, SCExt.Serialize); sc.Serialize(ref InfoData, SCExt.Serialize); sc.Serialize(ref AlphaMaps, SCExt.Serialize); sc.Serialize(ref WeightedTextureMaps, SCExt.Serialize); sc.Serialize(ref CachedTerrainMaterials, SCExt.Serialize); if (sc.Game > MEGame.ME1) { sc.Serialize(ref CachedTerrainMaterials2, SCExt.Serialize); sc.Serialize(ref CachedDisplacements, SCExt.Serialize); sc.Serialize(ref MaxCollisionDisplacement); } }
public PropertyCollection Defaults; //I'm assuming any ObjectProperties in here are set to 0, so relinking will be unnecesary protected override void Serialize(SerializingContainer2 sc) { base.Serialize(sc); sc.Serialize(ref StructFlags); if (sc.IsLoading) { Defaults = PropertyCollection.ReadProps(Export, sc.ms, Export.ObjectName, includeNoneProperty: true, entry: Export); } else { Defaults.WriteTo(sc.ms, sc.Pcc, true); } }
protected override void Serialize(SerializingContainer2 sc) { base.Serialize(sc); sc.Serialize(ref stateUnk1); sc.Serialize(ref stateUnk2); sc.Serialize(ref stateUnk3); sc.Serialize(ref stateUnk4); sc.Serialize(ref stateUnk5); sc.Serialize(ref StateFlags); sc.Serialize(ref LocalFunctionMap, SCExt.Serialize, SCExt.Serialize); }
public static void Serialize(this SerializingContainer2 sc, ref PSA.PSABone b) { if (sc.IsLoading) { b = new PSA.PSABone(); } sc.SerializeFixedSizeString(ref b.Name, 64); sc.Serialize(ref b.Flags); sc.Serialize(ref b.NumChildren); sc.Serialize(ref b.ParentIndex); sc.Serialize(ref b.Rotation); sc.Serialize(ref b.Position); sc.Serialize(ref b.Length); sc.Serialize(ref b.Size); }
protected void Serialize(SerializingContainer2 sc) { var mainHeader = new ChunkHeader { ChunkID = "ANIMHEAD", Version = version }; sc.Serialize(ref mainHeader); var boneHeader = new ChunkHeader { ChunkID = "BONENAMES", Version = version, DataSize = 0x78, DataCount = Bones?.Count ?? 0 }; sc.Serialize(ref boneHeader); sc.Serialize(ref Bones, boneHeader.DataCount, SCExt.Serialize); var infoHeader = new ChunkHeader { ChunkID = "ANIMINFO", Version = version, DataSize = 0xa8, DataCount = Infos?.Count ?? 0 }; sc.Serialize(ref infoHeader); sc.Serialize(ref Infos, infoHeader.DataCount, SCExt.Serialize); var keyHeader = new ChunkHeader { ChunkID = "ANIMKEYS", Version = version, DataSize = 0x20, DataCount = Keys?.Count ?? 0 }; sc.Serialize(ref keyHeader); sc.Serialize(ref Keys, keyHeader.DataCount, SCExt.Serialize); }
protected override void Serialize(SerializingContainer2 sc) { var components = Export.GetProperty <ArrayProperty <ObjectProperty> >("LightComponents"); if (components == null || components.Count == 0) { return; } if (sc.IsLoading) { LocalToWorldTransforms = new List <Matrix>(components.Count); } for (int i = 0; i < components.Count; i++) { Matrix m = i < LocalToWorldTransforms.Count ? LocalToWorldTransforms[i] : Matrix.Identity; sc.Serialize(ref m); if (sc.IsLoading) { LocalToWorldTransforms.Add(m); } } }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref LODData, SCExt.Serialize); }
public LightmassPrimitiveSettings[] LightmassSettings; //ME3 protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref Bounds); sc.BulkSerialize(ref Vectors, SCExt.Serialize, 12); sc.BulkSerialize(ref Points, SCExt.Serialize, 12); sc.BulkSerialize(ref Nodes, SCExt.Serialize, 64); sc.Serialize(ref Self); sc.Serialize(ref Surfs, SCExt.Serialize); sc.BulkSerialize(ref Verts, SCExt.Serialize, sc.Game == MEGame.ME3 ? 16 : 24); sc.Serialize(ref NumSharedSides); sc.Serialize(ref Zones, SCExt.Serialize); sc.Serialize(ref Polys); sc.BulkSerialize(ref LeafHulls, SCExt.Serialize, 4); sc.BulkSerialize(ref Leaves, SCExt.Serialize, 4); sc.Serialize(ref RootOutside); sc.Serialize(ref Linked); sc.BulkSerialize(ref PortalNodes, SCExt.Serialize, 4); sc.BulkSerialize(ref ShadowVolume, SCExt.Serialize, 16); sc.Serialize(ref NumVertices); sc.BulkSerialize(ref VertexBuffer, SCExt.Serialize, 36); if (sc.Game == MEGame.ME3) { sc.Serialize(ref LightingGuid); sc.Serialize(ref LightmassSettings, SCExt.Serialize); } else if (sc.IsLoading) { LightmassSettings = new[] { new LightmassPrimitiveSettings { FullyOccludedSamplesFraction = 1, EmissiveLightFalloffExponent = 2, EmissiveBoost = 1, DiffuseBoost = 1, SpecularBoost = 1 } }; } }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref StaticRecievers, SCExt.Serialize); }
protected override void Serialize(SerializingContainer2 sc) { sc.Serialize(ref SM3MaterialResource); sc.Serialize(ref SM2MaterialResource); }