using System; using System.Collections.Generic; using UnityEngine; namespace AxibugEmuOnline.Client.ClientCore { public class RomDB : ScriptableObject { [SerializeField] private List romInfos = new List(); private Dictionary crc_Info_mapper; public void AddInfo(RomInfo romInfo) { romInfos.Add(romInfo); } public void Clear() { romInfos.Clear(); } public bool GetMapperNo(uint crc, out int mapperNo) { if (crc_Info_mapper == null) { crc_Info_mapper = new Dictionary(); foreach (var info in romInfos) { crc_Info_mapper[info.CRC] = info; } } if (crc_Info_mapper.TryGetValue(crc, out var romInfo)) { mapperNo = romInfo.Mapper; return true; } else { mapperNo = -1; return false; } } [Serializable] public class RomInfo { public uint CRC; public int Mapper; } } }