public override void Write(BinaryWriter file) { base.Write(file); if (Type != null) { switch (Type.Value) { case Enums.scnAnimNameType.direct: case Enums.scnAnimNameType.dynamic: Unk1.Write(file); break; case Enums.scnAnimNameType.reference: case Enums.scnAnimNameType.container: Unk2.Write(file); break; default: throw new NotImplementedException("scnAnimName.Read"); } } else { Unk1.Write(file); } }
public void Deserialize(Stream stream) { using (var r = stream.ToBinaryReader(true)) { Translation = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); Rotation = new Quaternion(r.ReadSingle(), r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); Scale = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); uint count = r.ReadUInt32(); for (int n = 0; n < count; n++) { Unk1.Add(Tuple.Create(r.ReadInt32(), new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()))); } count = r.ReadUInt32(); for (int n = 0; n < count; n++) { Unk2.Add(Tuple.Create(r.ReadInt32(), new Quaternion(r.ReadSingle(), r.ReadSingle(), r.ReadSingle(), r.ReadSingle()))); } count = r.ReadUInt32(); for (int n = 0; n < count; n++) { Unk3.Add(Tuple.Create(r.ReadInt32(), new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()))); } } }
public override void Read(BinaryReader file, uint size) { var startPos = file.BaseStream.Position; base.Read(file, size); var bytesRead = file.BaseStream.Position - startPos; if (Type != null) { switch (Type.Value) { case Enums.scnAnimNameType.direct: case Enums.scnAnimNameType.dynamic: var count = (int)(size - bytesRead) / 2; Unk1.Read(file, 2, count); break; case Enums.scnAnimNameType.reference: case Enums.scnAnimNameType.container: // TODO: what does it reference? Unk2.Read(file, 4); break; default: throw new NotImplementedException("scnAnimName.Read"); } } else { Unk1.Read(file, 2, 1); } }
public override void WriteResourceEntry(XmlWriter writer) { writer.WriteElementString("File", GetFileName()); writer.WriteElementString("XMLTag", XMLTag); writer.WriteElementString("Unk1", Unk1.ToString()); writer.WriteElementString("Unk3", Unk3.ToString()); writer.WriteElementString("Version", GetEntryVersionString()); }
public override void Open(HSDReader Reader) { base.Open(Reader); if (Unk1 != 0) { Console.WriteLine("Collision bubble unknown " + Unk1.ToString("X")); } }
public override void Write(BinaryWriter Writer) { base.Write(Writer); Writer.Write(Unk0); Unk1.WriteToFile(Writer); Unk2.WriteToFile(Writer); Unk3.WriteToFile(Writer); Writer.Write(Unk4); }
public override void Read(BinaryReader file, uint size) { var startpos = file.BaseStream.Position; Unk1.Read(file, 4); Collisiontypes.Read(file, 0); var endpos = file.BaseStream.Position; Data.Read(file, (uint)(size - (endpos - startpos))); }
public override int GetHashCode() { unchecked { var hashCode = Global.GetHashCode(); hashCode = (hashCode * 397) ^ Unk1.GetHashCode(); hashCode = (hashCode * 397) ^ (int)Trigger; hashCode = (hashCode * 397) ^ (Node != null ? Node.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Chain.GetHashCode(); return(hashCode); } }
public void WriteXml(StringBuilder sb, int indent) { CacheDatXml.StringTag(sb, indent, "name", CacheDatXml.HashString(Name)); CacheDatXml.StringTag(sb, indent, "parent", CacheDatXml.HashString(ParentName)); CacheDatXml.ValueTag(sb, indent, "contentFlags", ContentFlags.ToString()); CacheDatXml.SelfClosingTag(sb, indent, "streamingExtentsMin " + FloatUtil.GetVector3XmlString(streamingExtentsMin)); CacheDatXml.SelfClosingTag(sb, indent, "streamingExtentsMax " + FloatUtil.GetVector3XmlString(streamingExtentsMax)); CacheDatXml.SelfClosingTag(sb, indent, "entitiesExtentsMin " + FloatUtil.GetVector3XmlString(entitiesExtentsMin)); CacheDatXml.SelfClosingTag(sb, indent, "entitiesExtentsMax " + FloatUtil.GetVector3XmlString(entitiesExtentsMax)); CacheDatXml.ValueTag(sb, indent, "unk1", Unk1.ToString()); CacheDatXml.ValueTag(sb, indent, "unk2", Unk2.ToString()); CacheDatXml.ValueTag(sb, indent, "unk3", Unk3.ToString()); CacheDatXml.ValueTag(sb, indent, "unk4", Unk4.ToString()); }
public override int GetHashCode() { int hash = 1; if (Unk1 != 0UL) { hash ^= Unk1.GetHashCode(); } if (Unk2 != 0UL) { hash ^= Unk2.GetHashCode(); } if (Name.Length != 0) { hash ^= Name.GetHashCode(); } if (Desc.Length != 0) { hash ^= Desc.GetHashCode(); } if (Icon.Length != 0) { hash ^= Icon.GetHashCode(); } if (Position.Length != 0) { hash ^= Position.GetHashCode(); } if (Button.Length != 0) { hash ^= Button.GetHashCode(); } if (Effect.Length != 0) { hash ^= Effect.GetHashCode(); } if (Lbdat.Length != 0) { hash ^= Lbdat.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public override void Write(BinaryWriter file) { Unk1.Write(file); Collisiontypes.Write(file); Data.Write(file); }
public void LoadFile(string targetFile) { using var reader = new BinaryReader(File.OpenRead(targetFile)); reader.BaseStream.Seek(6, SeekOrigin.Begin); { var count = reader.ReadUInt32(); var arr = new DateTime[count]; for (var i = 0; i < count; i++) { var timeT = reader.ReadInt64(); arr[i] = new DateTime(1970, 1, 1).AddSeconds(timeT); } times = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new Weapon[count]; for (var i = 0; i < count; i++) { arr[i] = new Weapon { Index = (ulong)i, unlockTime = times[reader.ReadByte()], weaponCategory = (WeaponType)reader.ReadByte(), weaponId = reader.ReadUInt32() }; } weapons = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new Armor[count]; for (var i = 0; i < count; i++) { arr[i] = new Armor { Index = (ulong)i, unlockTime = times[reader.ReadByte()], armorType = (ArmorType)reader.ReadByte(), armorId = reader.ReadUInt32() }; } armors = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new Unk1[count]; for (var i = 0; i < count; i++) { arr[i] = new Unk1 { Index = (ulong)i, unlockTime = times[reader.ReadByte()], unk1 = reader.ReadUInt32() }; } unk1 = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new Unk2[count]; for (var i = 0; i < count; i++) { arr[i] = new Unk2 { Index = (ulong)i, unlockTime = times[reader.ReadByte()], unk1 = reader.ReadByte(), unk2 = reader.ReadUInt32() }; } unk2 = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new Pendant[count]; for (var i = 0; i < count; i++) { arr[i] = new Pendant { Index = (ulong)i, unlockTime = times[reader.ReadByte()], pendantId = reader.ReadUInt32() }; } pendants = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new ItemTg[count]; for (var i = 0; i < count; i++) { arr[i] = new ItemTg { Index = (ulong)i, unlockTime = times[reader.ReadByte()], itemId = reader.ReadUInt32() }; } items = arr.ToList(); } reader.BaseStream.Seek(1, SeekOrigin.Current); { var count = reader.ReadUInt32(); var arr = new Unk3[count]; for (var i = 0; i < count; i++) { arr[i] = new Unk3 { Index = (ulong)i, unlockTime = times[reader.ReadByte()], unk1 = reader.ReadByte(), unk2 = reader.ReadUInt32() }; } unk3 = arr.ToList(); } }
public override string ToString() { return(Unk1.ToString() + ", " + Unk6.ToString() + ": " + Samples.ToString() + " samples, " + SamplesPerSecond.ToString() + " samples/sec"); }