Ejemplo n.º 1
0
        public static bool PropertiesMatch(SidedefPropertiesCopySettings flags, Sidedef source, Sidedef target)
        {
            // Built-in properties
            if (flags.OffsetX && source.OffsetX != target.OffsetX)
            {
                return(false);
            }
            if (flags.OffsetY && source.OffsetY != target.OffsetY)
            {
                return(false);
            }
            if (flags.UpperTexture && source.HighTexture != target.HighTexture)
            {
                return(false);
            }
            if (flags.MiddleTexture && source.MiddleTexture != target.MiddleTexture)
            {
                return(false);
            }
            if (flags.LowerTexture && source.LowTexture != target.LowTexture)
            {
                return(false);
            }
            if (!General.Map.UDMF)
            {
                return(true);
            }

            // UDMF-specific properties
            if (flags.Flags && !FlagsMatch(source.GetEnabledFlags(), target.GetEnabledFlags()))
            {
                return(false);
            }

            // UI fields
            if (!UIFieldsMatch(flags, source, target))
            {
                return(false);
            }

            // Custom fields
            return(!flags.Fields || UniFields.CustomFieldsMatch(source.Fields, target.Fields));
        }