using LibXom.Data; using LibXom.Streams; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LibW4M.Data.X { public class VectorResourceDetail : ResourceDetail { public VectorResourceDetail(W4SaveFile fileBelongs, XomContainer mainContainer, bool load = true) : base(fileBelongs, mainContainer, load) { } public override void Load() { using (XomStreamReader reader = new XomStreamReader(new MemoryStream(this.mainContainer.GetData()))) { reader.Skip(3); this.Value = new XomVector(reader.ReadFloat(), reader.ReadFloat(), reader.ReadFloat()); this.Name = this.fileBelongs.LookupStringFromId(reader.ReadCompressedInt()); this.Flags = reader.ReadInt32(); } } internal override void loadDefaults() { base.loadDefaults(); this.Value = new XomVector(0.0f, 0.0f, 0.0f); } public override void Save() { using (MemoryStream ms = new MemoryStream()) { using (XomStreamWriter writer = new XomStreamWriter(ms)) { writer.Skip(3); writer.WriteFloat(this.Value.X); writer.WriteFloat(this.Value.Y); writer.WriteFloat(this.Value.Z); writer.WriteCompressedInt(this.Name.Id); writer.WriteInt32(this.Flags); ms.Seek(0x00, SeekOrigin.Begin); mainContainer.SetData(ms.ToArray()); } } } } }