56 lines
1.8 KiB
C#
56 lines
1.8 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|