public static int GetHash(ReplicaItem item) { StringBuilder sb = new StringBuilder(); sb.Append(item.BaseRecord); sb.Append(item.PrefixRecord); sb.Append(item.SuffixRecord); sb.Append(item.Seed); sb.Append(item.ModifierRecord); sb.Append(item.MateriaRecord); sb.Append(item.RelicCompletionBonusRecord); sb.Append(item.RelicSeed); sb.Append(item.EnchantmentRecord); sb.Append(item.EnchantmentSeed); sb.Append(item.TransmuteRecord); return(sb.ToString().GetHashCode()); // WARN: This will fail with .Net 5, as it becomes unique-per-run }
/// <summary> /// Create a ReplicaItem hash from a BuddyItem instance /// </summary> /// <param name="pi"></param> /// <returns></returns> public static int GetHash(BuddyItem pi) { ReplicaItem replica = new ReplicaItem { BaseRecord = pi.BaseRecord, EnchantmentRecord = pi.EnchantmentRecord, EnchantmentSeed = (uint)pi.EnchantmentSeed, MateriaRecord = pi.MateriaRecord, ModifierRecord = pi.ModifierRecord, PrefixRecord = pi.PrefixRecord, RelicCompletionBonusRecord = string.Empty, RelicSeed = (uint)pi.RelicSeed, Seed = (uint)pi.Seed, SuffixRecord = pi.SuffixRecord, TransmuteRecord = pi.TransmuteRecord, }; return(ItemReplicaProcessor.GetHash(replica)); }