public void UpdateUnphasedFlag() { PhaseShiftFlags unphasedFlag = !Flags.HasAnyFlag(PhaseShiftFlags.Inverse) ? PhaseShiftFlags.Unphased : PhaseShiftFlags.InverseUnphased; Flags &= ~(!Flags.HasFlag(PhaseShiftFlags.Inverse) ? PhaseShiftFlags.InverseUnphased : PhaseShiftFlags.Unphased); if (NonCosmeticReferences != 0 && DefaultReferences == 0) { Flags &= ~unphasedFlag; } else { Flags |= unphasedFlag; } }
public static void InitDbPhaseShift(PhaseShift phaseShift, PhaseUseFlagsValues phaseUseFlags, uint phaseId, uint phaseGroupId) { phaseShift.ClearPhases(); phaseShift.IsDbPhaseShift = true; PhaseShiftFlags flags = PhaseShiftFlags.None; if (phaseUseFlags.HasAnyFlag(PhaseUseFlagsValues.AlwaysVisible)) { flags = flags | PhaseShiftFlags.AlwaysVisible | PhaseShiftFlags.Unphased; } if (phaseUseFlags.HasAnyFlag(PhaseUseFlagsValues.Inverse)) { flags |= PhaseShiftFlags.Inverse; } if (phaseId != 0) { phaseShift.AddPhase(phaseId, GetPhaseFlags(phaseId), null); } else { var phasesInGroup = Global.DB2Mgr.GetPhasesForGroup(phaseGroupId); foreach (uint phaseInGroup in phasesInGroup) { phaseShift.AddPhase(phaseInGroup, GetPhaseFlags(phaseInGroup), null); } } if (phaseShift.Phases.Empty() || phaseShift.HasPhase(169)) { if (flags.HasFlag(PhaseShiftFlags.Inverse)) { flags |= PhaseShiftFlags.InverseUnphased; } else { flags |= PhaseShiftFlags.Unphased; } } phaseShift.Flags = flags; }