コード例 #1
0
 public TriggerIDList(TriggerIDList other)
 {
     if (other == null)
     {
         return;
     }
     for (uint i = 0; i < 32; ++i)
     {
         Triggers[i] = other.Triggers[i];
     }
 }
コード例 #2
0
        public PlusPropertyList(PlusPropertyList?other) : this()
        {
            ColorRemappings = new byte[Mainframe.RecolorableSpriteNames.Length][];
            TileImages      = new byte[4096][];
            TileMasks       = new byte[4096][];

            if (other.HasValue)
            {
                this = other.Value;

                startOffTriggers = new TriggerIDList(other.Value.startOffTriggers);

                if (other.Value.Palette == null)
                {
                    Palette = null;
                }
                else
                {
                    Palette = new Palette();
                    Palette.CopyFrom(other.Value.Palette);
                }

                for (int i = 0; i < other.Value.ColorRemappings.Length; ++i)
                {
                    if (other.Value.ColorRemappings[i] != null)
                    {
                        ColorRemappings[i] = other.Value.ColorRemappings[i].Clone() as byte[];
                    }
                }

                for (int i = 0; i < TileImages.Length; ++i)
                {
                    if (other.Value.TileImages[i] == null)
                    {
                        TileImages[i] = null;
                    }
                    else
                    {
                        TileImages[i] = other.Value.TileImages[i].Clone() as byte[];
                    }
                }

                for (int i = 0; i < TileMasks.Length; ++i)
                {
                    if (other.Value.TileMasks[i] == null)
                    {
                        TileMasks[i] = null;
                    }
                    else
                    {
                        TileMasks[i] = other.Value.TileMasks[i].Clone() as byte[];
                    }
                }

                Weapons = other.Value.Weapons.Select(w => w.Clone()).ToArray();
            }
            else
            {
                startOffTriggers    = new TriggerIDList(null);
                DarknessColor       = Color.Black;
                WarpsTransmuteCoins = true;
                WaterChangeSpeed    = 1;
                WaterLayer          = 1;
                WaterLevel          = DefaultWaterLevel;
                WaterGradientStart  = Color.Black;
                WaterGradientStop   = Color.Black;
                Gun7Crate           = Gun7Crate = Gun9Crate = 0;
                Palette             = null;
                Weapons             = WeaponDefaults.Select(w => w.Clone()).ToArray();
            }
        }