public void Read(AssetReader reader) { if (IsPrimeFirst(reader.Version)) { m_boolValues = reader.ReadBooleanArray(); reader.AlignStream(AlignType.Align4); m_intValues = reader.ReadInt32Array(); m_floatValues = reader.ReadSingleArray(); } if (IsReadVectorValues(reader.Version)) { m_vectorValues = reader.ReadArray <Vector4f>(); } else { if (IsVector4(reader.Version)) { m_position4Values = reader.ReadArray <Vector4f>(); } else { m_position3Values = reader.ReadArray <Vector3f>(); } m_quaternionValues = reader.ReadArray <Quaternionf>(); if (IsVector4(reader.Version)) { m_scale4Values = reader.ReadArray <Vector4f>(); } else { m_scale3Values = reader.ReadArray <Vector3f>(); } } if (!IsPrimeFirst(reader.Version)) { m_floatValues = reader.ReadSingleArray(); m_intValues = reader.ReadInt32Array(); m_boolValues = reader.ReadBooleanArray(); reader.AlignStream(AlignType.Align4); } }
public void Read(AssetReader reader) { if (IsPrimeFirst(reader.Version)) { BoolValues = reader.ReadBooleanArray(); reader.AlignStream(); IntValues = reader.ReadInt32Array(); FloatValues = reader.ReadSingleArray(); } if (HasVectorValues(reader.Version)) { VectorValues = reader.ReadAssetArray <Vector4f>(); } else { if (IsVector4(reader.Version)) { Position4Values = reader.ReadAssetArray <Vector4f>(); } else { Position3Values = reader.ReadAssetArray <Vector3f>(); } QuaternionValues = reader.ReadAssetArray <Quaternionf>(); if (IsVector4(reader.Version)) { Scale4Values = reader.ReadAssetArray <Vector4f>(); } else { Scale3Values = reader.ReadAssetArray <Vector3f>(); } } if (!IsPrimeFirst(reader.Version)) { FloatValues = reader.ReadSingleArray(); IntValues = reader.ReadInt32Array(); BoolValues = reader.ReadBooleanArray(); reader.AlignStream(); } }
public void Read(AssetReader reader) { switch (Type.Type) { case PrimitiveType.Bool: if (IsArray) { Value = reader.ReadBooleanArray(); } else { Value = reader.ReadBoolean(); } reader.AlignStream(AlignType.Align4); break; case PrimitiveType.Char: if (IsArray) { Value = reader.ReadCharArray(); } else { Value = reader.ReadChar(); } reader.AlignStream(AlignType.Align4); break; case PrimitiveType.SByte: if (IsArray) { Value = reader.ReadByteArray(); } else { Value = reader.ReadSByte(); } reader.AlignStream(AlignType.Align4); break; case PrimitiveType.Byte: if (IsArray) { Value = reader.ReadByteArray(); } else { Value = reader.ReadByte(); } reader.AlignStream(AlignType.Align4); break; case PrimitiveType.Short: if (IsArray) { Value = reader.ReadInt16Array(); } else { Value = reader.ReadInt16(); } reader.AlignStream(AlignType.Align4); break; case PrimitiveType.UShort: if (IsArray) { Value = reader.ReadUInt16Array(); } else { Value = reader.ReadUInt16(); } reader.AlignStream(AlignType.Align4); break; case PrimitiveType.Int: if (IsArray) { Value = reader.ReadInt32Array(); } else { Value = reader.ReadInt32(); } break; case PrimitiveType.UInt: if (IsArray) { Value = reader.ReadUInt32Array(); } else { Value = reader.ReadUInt32(); } break; case PrimitiveType.Long: if (IsArray) { Value = reader.ReadInt64Array(); } else { Value = reader.ReadInt64(); } break; case PrimitiveType.ULong: if (IsArray) { Value = reader.ReadUInt64Array(); } else { Value = reader.ReadUInt64(); } break; case PrimitiveType.Single: if (IsArray) { Value = reader.ReadSingleArray(); } else { Value = reader.ReadSingle(); } break; case PrimitiveType.Double: if (IsArray) { Value = reader.ReadDoubleArray(); } else { Value = reader.ReadDouble(); } break; case PrimitiveType.String: if (IsArray) { Value = reader.ReadStringArray(); } else { Value = reader.ReadString(); } break; case PrimitiveType.Complex: if (IsArray) { int count = reader.ReadInt32(); IScriptStructure[] structures = new IScriptStructure[count]; for (int i = 0; i < count; i++) { IScriptStructure structure = Type.ComplexType.CreateCopy(); structure.Read(reader); structures[i] = structure; } Value = structures; } else { IScriptStructure structure = Type.ComplexType.CreateCopy(); structure.Read(reader); Value = structure; } break; default: throw new NotImplementedException($"Unknown {nameof(PrimitiveType)} '{Type.Type}'"); } }