static void ProcessSidc(string sidcString) { // base code SymbolIdCode sidc = new SymbolIdCode(sidcString); if (!sidc.IsValid) { Console.WriteLine("Could not create symbol from SIDC: " + sidcString); return; } if (TypeUtilities.IsWeather(sidc.SymbolSet)) { // create a one version & then return, the rest don't apply PrintCommentLine("Weather Symbol Set: " + sidc.SymbolSet); PrintCodeLine(sidc, "Weather - only one version of symbol"); return; } bool hasFrame = TypeUtilities.HasFrame(sidc.SymbolSet); PrintCommentLine("Affiliation/Planning Combinations"); List <Enum> enums = TypeUtilities.EnumHelper.getEnumValues(typeof(StandardIdentityAffiliationType)); foreach (Enum en in enums) { sidc.Affiliation = (StandardIdentityAffiliationType)en; string tag = TypeUtilities.EnumHelper.getStringFromEnum(en); if ((tag != "NotSet") && (tag != "Dont Display Frame")) { PrintCodeLine(sidc, tag); // create a planning version sidc.Status = StatusType.Planned_Anticipated_Suspect; PrintCodeLine(sidc, "Planning"); sidc.Status = StatusType.Present; // Reset // if it has a frame also do the Real/Exercise/Sim combos if ((hasFrame) && ((sidc.Affiliation == StandardIdentityAffiliationType.Friend) || (sidc.Affiliation == StandardIdentityAffiliationType.Hostile) || (sidc.Affiliation == StandardIdentityAffiliationType.Suspect_Joker) || (sidc.Affiliation == StandardIdentityAffiliationType.Neutral) || (sidc.Affiliation == StandardIdentityAffiliationType.Unknown))) { PrintCommentLine("StandardIdentity Combinations for affiliation: " + en); List <Enum> enums2 = TypeUtilities.EnumHelper.getEnumValues(typeof(StandardIdentityRealExerciseSimType)); foreach (Enum en2 in enums2) { sidc.StandardIdentity = (StandardIdentityRealExerciseSimType)en2; string tag2 = TypeUtilities.EnumHelper.getStringFromEnum(en2); if (tag2 != "NotSet") { PrintCodeLine(sidc, tag2); } } // Reset sidc.StandardIdentity = StandardIdentityRealExerciseSimType.Reality; } } } // Reset sidc.Affiliation = StandardIdentityAffiliationType.Friend; // Does it have a frame? If not don't need to do the rest if (!hasFrame) { PrintCommentLine("Non-framed Symbol Set: " + sidc.SymbolSet + " - done"); return; } if (TypeUtilities.HasFrameModifiers(sidc.SymbolSet)) { PrintCommentLine("Headquarters/Task Force/Feint/Dummy Combinations"); enums = TypeUtilities.EnumHelper.getEnumValues(typeof(HeadquartersTaskForceDummyType)); foreach (Enum en in enums) { sidc.HeadquartersTaskForceDummy = (HeadquartersTaskForceDummyType)en; string tag = TypeUtilities.EnumHelper.getStringFromEnum(en); PrintCodeLine(sidc, tag); } // Reset sidc.HeadquartersTaskForceDummy = HeadquartersTaskForceDummyType.NoHQTFDummyModifier; PrintCommentLine("Echelon/Mobility Combinations"); enums = TypeUtilities.EnumHelper.getEnumValues(typeof(EchelonMobilityType)); foreach (Enum en in enums) { sidc.EchelonMobility = (EchelonMobilityType)en; string tag = TypeUtilities.EnumHelper.getStringFromEnum(en); PrintCodeLine(sidc, tag); } // Reset sidc.EchelonMobility = EchelonMobilityType.NoEchelonMobility; } SymbolLookup sl = Utilities.GetSymbolLookup(); CentralIconType iconType = sl.GetEntityIconTypeFromCode(sidc.SymbolSet, sidc.EntityCode); if (iconType == CentralIconType.FULL_OCTAGON) { // Then we are done, no need for modifiers return; } if (iconType != CentralIconType.MAIN_1) // can't have modifier 1 { PrintCommentLine("Modifier 1 Code Combinations"); // Add all the modifiers List <string> modifierCode1s = sl.GetModifierCodesForSymbolSet(sidc.SymbolSet, 1); foreach (string mod1 in modifierCode1s) { sidc.ModifierOne = mod1; string tag = sl.GetModifierNameFromCode(sidc.SymbolSet, 1, mod1); PrintCodeLine(sidc, tag); } } // Reset sidc.ModifierOne = "00"; if (iconType != CentralIconType.MAIN_2) // can't have modifier 1 { PrintCommentLine("Modifier 2 Code Combinations"); List <string> modifierCode2s = sl.GetModifierCodesForSymbolSet(sidc.SymbolSet, 2); foreach (string mod2 in modifierCode2s) { sidc.ModifierTwo = mod2; string tag = sl.GetModifierNameFromCode(sidc.SymbolSet, 2, mod2); PrintCodeLine(sidc, tag); } } // Reset sidc.ModifierTwo = "00"; // Add those "Special Land Unit Entity Subtype combos in Land Unit if (sidc.SymbolSet == SymbolSetType.Land_Unit) { List <string> specialSubTypes = new List <string>() { "95", "96", "97", "98" }; foreach (string subType in specialSubTypes) { sidc.EntitySubTypeField = subType; PrintCodeLine(sidc, subType); } } }