27 lines
2.0 KiB
C#
27 lines
2.0 KiB
C#
using System.Collections.Frozen;
|
|
|
|
namespace ICRebuild.Core;
|
|
|
|
// These are Status row IDs from the supplied IC sources, not action/timeline/opcode IDs.
|
|
// Kept named by purpose to prevent accidental reuse across different ID spaces.
|
|
public static class StatusCatalog
|
|
{
|
|
public static readonly FrozenSet<uint> SlowCandidates = new uint[]
|
|
{14,67,181,240,436,484,502,623,674,709,1073,1107,1114,1141,1147,1259,1344,1394,1595,1790,1796,1935,2099,2158,2391,2551,2662,2731,3167,3284,3472,3473,3548,3943,3948,4334,4341}.ToFrozenSet();
|
|
public static readonly FrozenSet<uint> LegacySlipperyCandidates = new uint[] {142,149,604,905,911,1579,1580}.ToFrozenSet();
|
|
public static readonly FrozenSet<uint> ForcedMarch = new uint[] {1257,1681,3629,3719,3737}.ToFrozenSet();
|
|
public static readonly FrozenSet<uint> LegacyDirectionCandidates = new uint[]
|
|
{1293,1294,1295,1296,1958,1959,1960,1961,2161,2162,2163,2164,2381,2382,2383,2384,2538,2539,2540,2541,3698,3699,3700,3701,3715,3716,3717,3718}.ToFrozenSet();
|
|
public static readonly FrozenSet<uint> Confusion = new uint[] {1422,2936,3694,3909}.ToFrozenSet();
|
|
public static readonly FrozenSet<uint> RejectedLegacyBlockIds = new uint[] {142,149,2538,2539,2540,2541}.ToFrozenSet();
|
|
// Status sheet names and descriptions checked against the user's 2026.09.15 data.
|
|
public static readonly FrozenSet<uint> AuditedSlow = SlowCandidates.Concat(new uint[] {5044,5175,5356}).ToFrozenSet();
|
|
public static readonly FrozenSet<uint> AuditedBlockCandidates = LegacySlipperyCandidates.Concat(ForcedMarch)
|
|
.Concat(LegacyDirectionCandidates).Concat(Confusion).Except(RejectedLegacyBlockIds).ToFrozenSet();
|
|
public static IEnumerable<(string Group,uint Id)> Entries()
|
|
{
|
|
foreach(var (name,set) in new[] {("Slow",SlowCandidates),("Slippery",LegacySlipperyCandidates),("ForcedMarch",ForcedMarch),("DirectionCommands",LegacyDirectionCandidates),("Confusion",Confusion)})
|
|
foreach(var id in set.Order()) yield return (name,id);
|
|
}
|
|
}
|