using LibW4M.Data.WeaponFactory; using LibXom.Data; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LibW4M.Data.InputMapping { public class InputMappingCollective : SaveDataCollective { public InputMappingCollective(W4SaveFile fileBelongs, XomContainer mainContainer) : base(fileBelongs, mainContainer) { } public override void Create() { InputEventMappingData eventMapping = new InputEventMappingData(this.fileBelongs, this.fileBelongs.CreateContainer("InputEventMappingContainer"), false); this.collectiveEntries.Add(eventMapping); } public override void Load() { int[] collective = mainContainer.Decompress(); for (int i = 0; i < collective[0]; i++) { InputEventMappingData eventMappingData = new InputEventMappingData(this.fileBelongs, this.fileBelongs.LookupContainerById(collective[i + 1])); base.collectiveEntries.Add(eventMappingData); } } public override void Save() { int len = this.Length; int[] collective = new int[len + 1]; collective[0] = len; for (int i = 0; i < len; i++) { InputEventMappingData eventMappingData = collectiveEntries[i] as InputEventMappingData; if (eventMappingData is null) continue; eventMappingData.Save(); collective[i + 1] = eventMappingData.mainContainer.Id; } mainContainer.CompressAndUpdate(collective); } private string GetDebuggerDisplay() { return ToString(); } } }