Beispiel #1
0
        // This updates all properties
        internal void Update(BuildWall src)
        {
            BeforePropsChange();

            // Apply changes
            this.flags = src.Flags;

            this.offsetx         = src.OffsetX;
            this.offsety         = src.OffsetY;
            this.repeatx         = src.RepeatX;
            this.repeaty         = src.RepeatY;
            this.tileindex       = src.TileIndex;
            this.maskedtileindex = src.MaskedTileIndex;
            this.shade           = src.Shade;
            this.paletteindex    = src.PaletteIndex;

            this.hitag = src.HiTag;
            this.lotag = src.LoTag;
            this.extra = src.Extra;
        }
Beispiel #2
0
 private void ClientModelChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName.Equals("Connected"))
     {
         NotifyPropertyChanged("Connected");
         ConnectCommand.RaiseCanExecuteChanged();
         SendCommand.RaiseCanExecuteChanged();
         China2.RaiseCanExecuteChanged();
         BingBong2.RaiseCanExecuteChanged();
         Wrong2.RaiseCanExecuteChanged();
         GreatWall2.RaiseCanExecuteChanged();
         ReallyRich2.RaiseCanExecuteChanged();
         FakeNews2.RaiseCanExecuteChanged();
         BuildWall.RaiseCanExecuteChanged();
         Fired2.RaiseCanExecuteChanged();
         Havana.RaiseCanExecuteChanged();
         Random.RaiseCanExecuteChanged();
     }
     else if (e.PropertyName.Equals("MessageBoard"))
     {
         NotifyPropertyChanged("MessageBoard");
     }
     else if (e.PropertyName.Equals("China"))
     {
         NotifyPropertyChanged("China");
     }
     else if (e.PropertyName.Equals("BingBong"))
     {
         NotifyPropertyChanged("BingBong");
     }
     else if (e.PropertyName.Equals("Wrong"))
     {
         NotifyPropertyChanged("Wrong");
     }
     else if (e.PropertyName.Equals("GreatWall"))
     {
         NotifyPropertyChanged("GreatWall");
     }
     else if (e.PropertyName.Equals("ReallyRich"))
     {
         NotifyPropertyChanged("ReallyRich");
     }
     else if (e.PropertyName.Equals("FakeNews"))
     {
         NotifyPropertyChanged("FakeNews");
     }
     else if (e.PropertyName.Equals("Fired"))
     {
         NotifyPropertyChanged("Fired");
     }
     else if (e.PropertyName.Equals("RandomNoise"))
     {
         NotifyPropertyChanged("RandomNoise");
     }
     else if (e.PropertyName.Equals("Havanas"))
     {
         NotifyPropertyChanged("Havanas");
     }
     else if (e.PropertyName.Equals("BuildWalls"))
     {
         NotifyPropertyChanged("BuildWalls");
     }
 }
        public void Setup(List <Sidedef> walls)
        {
            // Use the first wall as a reference
            BuildWall first = new BuildWall(walls[0]);
            Dictionary <string, int> intflags = new Dictionary <string, int>();

            foreach (var group in General.Map.Config.WallFlags)
            {
                intflags[group.Key] = (first.Flags.ContainsKey(group.Key) && first.Flags[group.Key] ? 1 : 0);
            }

            int fw = ((walls[0] == walls[0].Sector.FirstWall) ? 1 : 0);

            // Go for all walls to compare properties
            foreach (Sidedef w in walls)
            {
                // Flags
                foreach (string flagname in General.Map.Config.WallFlags.Keys)
                {
                    int flag = (w.IsFlagSet(flagname) ? 1 : 0);
                    if (flag != intflags[flagname])
                    {
                        intflags[flagname] = VALUE_MISMATCH;
                    }
                }

                // First wall
                if (fw != ((w == w.Sector.FirstWall) ? 1 : 0))
                {
                    fw = VALUE_MISMATCH;
                }

                // Properties
                if (first.TileIndex != w.TileIndex)
                {
                    first.TileIndex = VALUE_MISMATCH;
                }
                if (first.MaskedTileIndex != w.MaskedTileIndex)
                {
                    first.MaskedTileIndex = VALUE_MISMATCH;
                }
                if (first.OffsetX != w.OffsetX)
                {
                    first.OffsetX = VALUE_MISMATCH;
                }
                if (first.OffsetY != w.OffsetY)
                {
                    first.OffsetY = VALUE_MISMATCH;
                }
                if (first.RepeatX != w.RepeatX)
                {
                    first.RepeatX = VALUE_MISMATCH;
                }
                if (first.RepeatY != w.RepeatY)
                {
                    first.RepeatY = VALUE_MISMATCH;
                }
                if (first.Shade != w.Shade)
                {
                    first.Shade = VALUE_MISMATCH;
                }
                if (first.PaletteIndex != w.PaletteIndex)
                {
                    first.PaletteIndex = VALUE_MISMATCH;
                }

                // Identification
                if (first.HiTag != w.HiTag)
                {
                    first.HiTag = VALUE_MISMATCH;
                }
                if (first.LoTag != w.LoTag)
                {
                    first.LoTag = VALUE_MISMATCH;
                }
                if (first.Extra != w.Extra)
                {
                    first.Extra = VALUE_MISMATCH;
                }
            }

            // Update interface
            this.SuspendLayout();

            // Flags
            foreach (CheckBox c in flags.Checkboxes)
            {
                switch (intflags[c.Tag.ToString()])
                {
                case 1:
                    c.Checked = true;
                    break;

                case VALUE_MISMATCH:
                    c.ThreeState = true;
                    c.CheckState = CheckState.Indeterminate;
                    break;
                }
            }

            // First wall
            switch (fw)
            {
            case 1:
                firstwall.Checked = true;
                break;

            case VALUE_MISMATCH:
                firstwall.ThreeState = true;
                firstwall.CheckState = CheckState.Indeterminate;
                break;
            }

            // Properties
            tex.TextureName       = (first.TileIndex != VALUE_MISMATCH ? first.TileIndex.ToString() : "");
            maskedtex.TextureName = (first.MaskedTileIndex != VALUE_MISMATCH ? first.MaskedTileIndex.ToString() : "");
            if (first.OffsetX != VALUE_MISMATCH)
            {
                offsetx.Text = first.OffsetX.ToString();
            }
            if (first.OffsetY != VALUE_MISMATCH)
            {
                offsety.Text = first.OffsetY.ToString();
            }
            if (first.RepeatX != VALUE_MISMATCH)
            {
                repeatx.Text = first.RepeatX.ToString();
            }
            if (first.RepeatY != VALUE_MISMATCH)
            {
                repeaty.Text = first.RepeatY.ToString();
            }
            if (first.Shade != VALUE_MISMATCH)
            {
                shade.Text = first.Shade.ToString();
            }
            if (first.PaletteIndex != VALUE_MISMATCH)
            {
                palette.Text = first.PaletteIndex.ToString();
            }

            // Identification
            //TODO: handlers?
            if (first.HiTag != VALUE_MISMATCH)
            {
                hitag.Text = first.HiTag.ToString();
            }
            if (first.LoTag != VALUE_MISMATCH)
            {
                lotag.Text = first.LoTag.ToString();
            }
            if (first.Extra != VALUE_MISMATCH)
            {
                extra.Text = first.Extra.ToString();
            }

            this.ResumeLayout();
        }
 public LineProperties(Linedef l)
 {
     front = (l.Front != null ? new BuildWall(l.Front) : null);
     back  = (l.Back != null ? new BuildWall(l.Back) : null);
 }