Пример #1
0
        public void Update(int number, VClip clip, PIGFile piggyFile, Palette palette)
        {
            isLocked                    = true;
            vclipID                     = number;
            this.clip                   = clip;
            this.piggyFile              = piggyFile;
            this.palette                = palette;
            FrameTimeTextBox.Text       = clip.FrameTime.ToString();
            TotalTimeTextBox.Text       = clip.PlayTime.ToString();
            LightValueTextBox.Text      = clip.LightValue.ToString();
            SoundComboBox.SelectedIndex = clip.SoundNum + 1;
            FrameCountTextBox.Text      = clip.NumFrames.ToString();
            VClipRodFlag.Checked        = clip.DrawAsRod;

            if (!transactionManager.TransactionInProgress)
            {
                FrameSpinner.Value = 0;
                UpdateAnimationFrame(0);
            }
            else
            {
                UpdateAnimationFrame((int)FrameSpinner.Value);
            }
            isLocked = false;
        }
Пример #2
0
        public void UpdateVClipPanel(int num)
        {
            vclipPanel.Stop();
            VClip clip = datafile.VClips[num];

            vclipPanel.Update(num, clip, datafile.piggyFile, palette);
            txtElemName.Text = datafile.VClipNames[num];
        }
Пример #3
0
        public VClipRemapTransaction(string label, int page, int tab, VClip clip, PIGFile piggyFile, int clipFirstFrame) : base(label, clip, "", page, tab)
        {
            this.clip      = clip;
            this.piggyFile = piggyFile;
            this.frame     = clipFirstFrame;

            framebackup = new ushort[clip.Frames.Length];
        }
Пример #4
0
        public override void Revert()
        {
            property.SetValue(target, oldValue);
            VClip clip = (VClip)target;

            if (clip.NumFrames <= 0)
            {
                clip.FrameTime = 0;
            }
            else
            {
                clip.FrameTime = clip.PlayTime / clip.NumFrames;
            }
        }
Пример #5
0
        public void UpdateVClipPanel(int num)
        {
            vclipPanel.Stop();

            if (datafile.VClips.Count == 0)
            {
                statusBar1.Text    = "No VClips present.";
                vclipPanel.Enabled = false;
            }
            else
            {
                statusBar1.Text = "";
                VClip clip = datafile.VClips[num];
                vclipPanel.Enabled = true;
                vclipPanel.Update(num, clip, datafile.piggyFile, palette);
                txtElemName.Text = clip.Name;
            }
        }
Пример #6
0
        public override bool Apply()
        {
            //Preserve the old value for undo purposes
            oldValue = property.GetValue(target);
            //Set the new value
            property.SetValue(target, newValue);
            VClip clip = (VClip)target;

            if (clip.NumFrames <= 0)
            {
                clip.FrameTime = 0;
            }
            else
            {
                clip.FrameTime = clip.PlayTime / clip.NumFrames;
            }

            return(oldValue != newValue); //this is a little bad, but the results should not matter. Not that this is very ACID anyways...
        }
        public override bool Apply()
        {
            lastValue = datafile.VClips[deleteNum];
            datafile.VClips.RemoveAt(deleteNum);

            //Resolve references
            references.Clear();
            if (datafile.VClips.Count > 0)
            {
                //Resolve eclip break clips
                for (int i = 0; i < datafile.EClips.Count; i++)
                {
                    if (datafile.EClips[i].ExplosionVClip == deleteNum)
                    {
                        references.Add(new ChangedHAMReference(datafile.EClips[i].Clone(), datafile.EClips, i));
                        datafile.EClips[i].ExplosionVClip = -1;
                    }
                    else if (datafile.EClips[i].ExplosionVClip > deleteNum)
                    {
                        references.Add(new ChangedHAMReference(datafile.EClips[i].Clone(), datafile.EClips, i));
                        datafile.EClips[i].ExplosionVClip--;
                    }
                }

                //Resolve robot vclips
                for (int i = 0; i < datafile.Robots.Count; i++)
                {
                    bool  change   = false;
                    Robot oldRobot = datafile.Robots[i].Clone();

                    if (datafile.Robots[i].HitVClipNum == deleteNum)
                    {
                        change = true;
                        datafile.Robots[i].HitVClipNum = -1;
                    }
                    else if (datafile.Robots[i].HitVClipNum > deleteNum)
                    {
                        change = true;
                        datafile.Robots[i].HitVClipNum--;
                    }

                    if (datafile.Robots[i].DeathVClipNum == deleteNum)
                    {
                        change = true;
                        datafile.Robots[i].DeathVClipNum = -1;
                    }
                    else if (datafile.Robots[i].DeathVClipNum > deleteNum)
                    {
                        change = true;
                        datafile.Robots[i].DeathVClipNum--;
                    }

                    if (change)
                    {
                        references.Add(new ChangedHAMReference(oldRobot, datafile.Robots, i));
                    }
                }

                //Resolve weapon vclips
                for (int i = 0; i < datafile.Weapons.Count; i++)
                {
                    bool   change    = false;
                    Weapon oldWeapon = datafile.Weapons[i].Clone();

                    if (datafile.Weapons[i].RobotHitVClip >= deleteNum)
                    {
                        change = true;
                        datafile.Weapons[i].RobotHitVClip--;
                    }
                    if (datafile.Weapons[i].WallHitVClip >= deleteNum)
                    {
                        change = true;
                        datafile.Weapons[i].WallHitVClip--;
                    }
                    if (datafile.Weapons[i].MuzzleFlashVClip >= deleteNum)
                    {
                        change = true;
                        datafile.Weapons[i].MuzzleFlashVClip--;
                    }
                    if (datafile.Weapons[i].WeaponVClip >= deleteNum)
                    {
                        change = true;
                        datafile.Weapons[i].WeaponVClip--;
                    }

                    if (change)
                    {
                        references.Add(new ChangedHAMReference(oldWeapon, datafile.Weapons, i));
                    }
                }

                //Resolve powerup vclips
                for (int i = 0; i < datafile.Powerups.Count; i++)
                {
                    if (datafile.Powerups[i].VClipNum >= deleteNum)
                    {
                        references.Add(new ChangedHAMReference(datafile.Powerups[i].Clone(), datafile.Powerups, i));
                        datafile.Powerups[i].VClipNum = Math.Max(0, datafile.Powerups[i].VClipNum - 1);
                    }
                }
            }
            return(true);
        }