diff --git a/Source/Framework/Constants/CliDBConst.cs b/Source/Framework/Constants/CliDBConst.cs index e00e302a0..300c7a2ee 100644 --- a/Source/Framework/Constants/CliDBConst.cs +++ b/Source/Framework/Constants/CliDBConst.cs @@ -1617,9 +1617,16 @@ namespace Framework.Constants public enum PhaseEntryFlags : ushort { - Normal = 0x08, - Cosmetic = 0x10, - Personal = 0x20 + ReadOnly = 0x001, + InternalPhase = 0x002, + Normal = 0x008, + Cosmetic = 0x010, + Personal = 0x020, + Expensive = 0x040, + EventsAreObservable = 0x080, + UsesPreloadConditions = 0x100, + UnshareablePersonal = 0x200, + ObjectsAreVisible = 0x400, } // PhaseUseFlags fields in different db2s diff --git a/Source/Game/Phasing/PhaseShift.cs b/Source/Game/Phasing/PhaseShift.cs index 17d797351..9668f3da4 100644 --- a/Source/Game/Phasing/PhaseShift.cs +++ b/Source/Game/Phasing/PhaseShift.cs @@ -166,8 +166,8 @@ namespace Game var checkInversePhaseShift = new Func((phaseShift, excludedPhaseShift) => { - if (phaseShift.Flags.HasFlag(PhaseShiftFlags.Unphased) && !excludedPhaseShift.Flags.HasFlag(PhaseShiftFlags.InverseUnphased)) - return true; + if (phaseShift.Flags.HasFlag(PhaseShiftFlags.Unphased) && excludedPhaseShift.Flags.HasFlag(PhaseShiftFlags.InverseUnphased)) + return false; foreach (var pair in phaseShift.Phases) { @@ -175,11 +175,11 @@ namespace Game continue; var ExcludedPhaseRef = excludedPhaseShift.Phases.LookupByKey(pair.Key); - if (ExcludedPhaseRef == null || ExcludedPhaseRef.Flags.HasAnyFlag(excludePhasesWithFlag)) - return true; + if (ExcludedPhaseRef != null || !ExcludedPhaseRef.Flags.HasAnyFlag(excludePhasesWithFlag)) + return false; } - return false; + return true; }); if (other.Flags.HasFlag(PhaseShiftFlags.Inverse))