예제 #1
0
        private void btnResyncDistortionEngine_Click(object sender, EventArgs e)
        {
            RTC_DistortionEngine.CurrentAge = 0;
            RTC_DistortionEngine.AllDistortionBytes.Clear();

            RTC_Restore.SaveRestore();
        }
예제 #2
0
        public void ApplyCurrentStashkey()
        {
            if (rbCorrupt.Checked)
            {
                IsCorruptionApplied = RTC_Core.currentStashkey.Run();
            }
            else if (rbInject.Checked)
            {
                IsCorruptionApplied = RTC_Core.currentStashkey.Inject();
            }
            else if (rbOriginal.Checked)
            {
                RTC_Core.currentStashkey.RunOriginal();
                IsCorruptionApplied = false;
            }
            else
            {
                RTC_Core.currentStashkey.Run();
                IsCorruptionApplied = true;
            }

            if (cbRenderAtLoad.Checked)
            {
                StartRender();
            }

            RTC_Restore.SaveRestore();
        }
예제 #3
0
        private void btnStockpileMoveSelectedUp_Click(object sender, EventArgs e)
        {
            if (lbStockpile.Items.Count < 2)
            {
                return;
            }

            object o     = lbStockpile.SelectedItem;
            int    pos   = lbStockpile.SelectedIndex;
            int    count = lbStockpile.Items.Count;

            lbStockpile.Items.RemoveAt(pos);

            DontLoadSelectedStockpile = true;


            if (pos == 0)
            {
                lbStockpile.Items.Add(o);
                lbStockpile.SelectedIndex = count - 1;
            }
            else
            {
                lbStockpile.Items.Insert(pos - 1, o);
                lbStockpile.SelectedIndex = pos - 1;
            }

            RTC_Restore.SaveRestore();
        }
예제 #4
0
        public void btnBlastToggle_Click(object sender, EventArgs e)
        {
            if (Global.Emulator is NullEmulator)
            {
                return;
            }

            if (RTC_Core.currentStashkey == null || RTC_Core.currentStashkey.blastlayer.Layer.Count == 0)
            {
                IsCorruptionApplied = false;
                return;
            }

            if (!IsCorruptionApplied)
            {
                IsCorruptionApplied = true;
                RTC_Core.currentStashkey.blastlayer.Apply();
            }
            else
            {
                IsCorruptionApplied = false;

                RTC_HellgenieEngine.ClearCheats();

                if (RTC_Core.lastBlastLayerBackup != null)
                {
                    RTC_Core.lastBlastLayerBackup.Apply();
                }
            }


            RTC_Restore.SaveRestore();
        }
예제 #5
0
        private void btnImportStockpile_Click(object sender, EventArgs e)
        {
            GlobalWin.Sound.StopSound();
            Stockpile.Import();
            GlobalWin.Sound.StartSound();

            RTC_Restore.SaveRestore();
        }
예제 #6
0
 private void RTC_GH_Form_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (e.CloseReason != CloseReason.FormOwnerClosing)
     {
         e.Cancel = true;
         this.Hide();
         RTC_Restore.SaveRestore();
     }
 }
예제 #7
0
        private void rbOriginal_CheckedChanged(object sender, EventArgs e)
        {
            if (rbOriginal.Checked)
            {
                isStockpileSelectMultiple = false;
                btnCorrupt.Text           = "Original";

                RTC_Restore.SaveRestore();
            }
        }
예제 #8
0
        private void nmMaxFreezes_ValueChanged(object sender, EventArgs e)
        {
            RTC_FreezeEngine.MaxFreezes = Convert.ToInt32(nmMaxFreezes.Value);

            if (RTC_Core.tfForm != null && RTC_Core.tfForm.Visible)
            {
                RTC_Core.tfForm.RecalculateCorruptFactor();
            }

            RTC_Restore.SaveRestore();
        }
예제 #9
0
 public void RemoveSelected(bool force = false)
 {
     if (lbStockpile.SelectedIndex != -1)
     {
         if (force || MessageBox.Show($"Are you sure you want to remove item \"{lbStockpile.SelectedItem.ToString()}\" from Stockpile?", "Remove Item", MessageBoxButtons.YesNo) == DialogResult.Yes)
         {
             lbStockpile.Items.RemoveAt(lbStockpile.SelectedIndex);
             RTC_Restore.SaveRestore();
         }
     }
 }
예제 #10
0
        private void cbExternalSelectedPlugin_SelectedIndexChanged(object sender, EventArgs e)
        {
            RTC_ExternalRomPlugin.SelectedPlugin = (sender as ComboBox).SelectedItem.ToString();

            if (RTC_Core.tfForm != null && RTC_Core.tfForm.Visible)
            {
                RTC_Core.tfForm.RecalculateCorruptFactor();
            }

            RTC_Restore.SaveRestore();
        }
예제 #11
0
        private void btnSelectAll_Click(object sender, EventArgs e)
        {
            RTC_MemoryZones.RefreshDomains();

            for (int i = 0; i < lbMemoryZones.Items.Count; i++)
            {
                lbMemoryZones.SetSelected(i, true);
            }

            RTC_Restore.SaveRestore();
        }
예제 #12
0
        public void UpdateTimeStackDelay()
        {
            RTC_TimeStack.TimeStackDelay = Convert.ToInt32(nmTimeStackDelay.Value);
            if (cbUseTimeStack.Checked)
            {
                RTC_TimeStack.Stop();
                RTC_TimeStack.Start();
            }

            RTC_Restore.SaveRestore();
        }
예제 #13
0
        private void nmDistortionDelay_ValueChanged(object sender, EventArgs e)
        {
            RTC_DistortionEngine.MaxAge = Convert.ToInt32(nmDistortionDelay.Value);
            btnResyncDistortionEngine_Click(sender, e);

            if (RTC_Core.tfForm != null && RTC_Core.tfForm.Visible)
            {
                RTC_Core.tfForm.RecalculateCorruptFactor();
            }

            RTC_Restore.SaveRestore();
        }
예제 #14
0
 private void btnDashboard_Click(object sender, EventArgs e)
 {
     if (!RTC_TimeFlow.Running)
     {
         RTC_TimeFlow.Start();
         RTC_Restore.SaveRestore();
     }
     else
     {
         RTC_Core.tfForm.Focus();
     }
 }
예제 #15
0
        private void cbUseTimeStack_CheckedChanged(object sender, EventArgs e)
        {
            if (cbUseTimeStack.Checked)
            {
                RTC_TimeStack.Start();
            }
            else
            {
                RTC_TimeStack.Stop();
            }

            RTC_Restore.SaveRestore();
        }
예제 #16
0
        public void SaveState()
        {
            string Key = RTC_Core.GetRandomKey();

            RTC_Core.SaveSave(Key + ".timejump");

            btnParentKeys[Convert.ToInt32(currentSelectedState)]  = Key;
            btnAttachedRom[Convert.ToInt32(currentSelectedState)] = GlobalWin.MainForm.CurrentlyOpenRom;

            btnSaveLoad.Text      = "LOAD";
            btnSaveLoad.ForeColor = Color.FromArgb(192, 255, 192);

            RTC_Restore.SaveRestore();
        }
예제 #17
0
        private void btnToggleSaveLoad_Click(object sender, EventArgs e)
        {
            if (btnSaveLoad.Text == "LOAD")
            {
                btnSaveLoad.Text      = "SAVE";
                btnSaveLoad.ForeColor = Color.OrangeRed;
            }
            else
            {
                btnSaveLoad.Text      = "LOAD";
                btnSaveLoad.ForeColor = Color.FromArgb(192, 255, 192);
            }

            RTC_Restore.SaveRestore();
        }
예제 #18
0
        private void lbStashHistory_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DontLoadSelectedStash || lbStashHistory.SelectedIndex == -1)
            {
                DontLoadSelectedStash = false;
                return;
            }

            lbStockpile.ClearSelected();

            if (!cbLoadOnSelect.Checked)
            {
                return;
            }

            if (!rbCorrupt.Checked && !rbInject.Checked && !rbOriginal.Checked)
            {
                rbCorrupt.Checked         = true;
                isStockpileSelectMultiple = false;
            }


            if (cbAutoLoadState.Checked && rbInject.Checked)
            {
                if (btnParentKeys[Convert.ToInt32(currentSelectedState)] != null)
                {
                    LoadState();
                }
                else
                {
                    GlobalWin.Sound.StopSound();
                    MessageBox.Show("There is no SaveState in the selected box,\nPress 'Switch: Save/Load State' then Press 'SAVE'");
                    GlobalWin.Sound.StartSound();
                    return;
                }
            }

            RTC_Core.currentStashkey = (lbStashHistory.SelectedItem as StashKey);

            ApplyCurrentStashkey();

            if (cbRenderAtLoad.Checked)
            {
                StartRender();
            }

            RTC_Restore.SaveRestore();
        }
예제 #19
0
        public void btnSaveLoad_Click(object sender, EventArgs e)
        {
            if (btnSaveLoad.Text == "LOAD")
            {
                LoadState();
            }
            else
            {
                SaveState();

                btnSaveLoad.Text      = "LOAD";
                btnSaveLoad.ForeColor = Color.FromArgb(192, 255, 192);
            }

            RTC_Restore.SaveRestore();
        }
예제 #20
0
        private void btnLoadStockpile_Click(object sender, EventArgs e)
        {
            try
            {
                GlobalWin.Sound.StopSound();
                RTC_RPC.SendToKillSwitch("FREEZE");
                Stockpile.Load();
            }
            finally
            {
                RTC_RPC.SendToKillSwitch("UNFREEZE");
                GlobalWin.Sound.StartSound();
            }

            RTC_Restore.SaveRestore();
        }
예제 #21
0
        public static void MAINFORM_CLOSING()
        {
            RTC_Core.lastOpenRom = null;

            RTC_Core.AutoCorrupt = false;
            RTC_Core.coreForm.cbUseTimeStack.Checked = false;
            RTC_TimeFlow.Stop();

            RTC_Restore.SaveRestore();
            RTC_RPC.SendToKillSwitch("CLOSE");

            ForceCloseTimer          = new Timer();
            ForceCloseTimer.Interval = 5000;
            ForceCloseTimer.Tick    += new EventHandler(ForceCloseTimer_Tick);
            ForceCloseTimer.Start();
        }
예제 #22
0
        private void pnPanel_DoubleClick(object sender, EventArgs e)
        {
            if (pnTopPanel.BackColor == Color.MidnightBlue)
            {
                pnTopPanel.BackColor = Color.Black;
                this.BackColor       = Color.Black;
                pnLogo.BackColor     = Color.Black;
            }
            else
            {
                pnTopPanel.BackColor = Color.MidnightBlue;
                this.BackColor       = Color.MidnightBlue;
                pnLogo.BackColor     = Color.MidnightBlue;
            }

            RTC_Restore.SaveRestore();
        }
예제 #23
0
        private void RTC_Form_Load(object sender, EventArgs e)
        {
            //As of 0.71+ HexEditor must be loaded to hook memory domains
            //thx bizhawk devs for increasing complexity
            GlobalWin.Tools.Load <HexEditor>();


            cbBlastRadius.SelectedIndex            = 0;
            cbBlastType.SelectedIndex              = 0;
            cbExternalSelectedPlugin.SelectedIndex = 0;

            gbNightmareEngine.Location    = new Point(gbSelectedEngine.Location.X + gbGeneralSettings.Location.X, gbSelectedEngine.Location.Y + gbGeneralSettings.Location.Y);
            gbHellgenieEngine.Location    = new Point(gbSelectedEngine.Location.X + gbGeneralSettings.Location.X, gbSelectedEngine.Location.Y + gbGeneralSettings.Location.Y);
            gbDistortionEngine.Location   = new Point(gbSelectedEngine.Location.X + gbGeneralSettings.Location.X, gbSelectedEngine.Location.Y + gbGeneralSettings.Location.Y);
            gbFreezeEngine.Location       = new Point(gbSelectedEngine.Location.X + gbGeneralSettings.Location.X, gbSelectedEngine.Location.Y + gbGeneralSettings.Location.Y);
            gbExternalRomPlugin.Location  = new Point(gbSelectedEngine.Location.X + gbGeneralSettings.Location.X, gbSelectedEngine.Location.Y + gbGeneralSettings.Location.Y);
            gbFreezeEngineActive.Location = gbMemoryZonesManagement.Location;

            cbSelectedEngine.SelectedIndex = 0;

            foreach (string item in Directory.GetDirectories(RTC_Core.rtcDir + "\\PLUGINS"))
            {
                cbExternalSelectedPlugin.Items.Add(item.Substring(item.LastIndexOf("\\") + 1));
            }

            //if (RTC_Core.args.Length != 0 && RTC_Core.args[0].ToUpper().Contains("RESTORE"))
            if (File.Exists(RTC_Core.rtcDir + "\\SESSION\\Restore.dat"))
            {
                RTC_Restore.LoadRestore();
            }
            else
            {
                RTC_Core.LoadDefaultRom();
            }

            if (File.Exists(RTC_Core.rtcDir + "\\SESSION\\WindowRestore.dat"))
            {
                RTC_Restore.LoadWindowRestore();
            }

            RTC_Restore.IsEnabled = true;

            this.BringToFront();
            this.Focus();
            GlobalWin.MainForm.Focus();
        }
예제 #24
0
        public void ClearStockpile(bool force = false)
        {
            if (force || MessageBox.Show("Are you sure you want to clear the stockpile?", "Clearing stockpile", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                lbStockpile.Items.Clear();

                if (RTC_Core.currentStockpile != null)
                {
                    RTC_Core.currentStockpile.Filename      = null;
                    RTC_Core.currentStockpile.ShortFilename = null;
                }

                RTC_Core.ghForm.btnSaveStockpile.Enabled   = false;
                RTC_Core.ghForm.btnSaveStockpile.BackColor = Color.Gray;

                RTC_Restore.SaveRestore();
            }
        }
예제 #25
0
        private void cbClearFreezesOnRewind_CheckedChanged(object sender, EventArgs e)
        {
            if (cbClearFreezesOnRewind.Checked != cbClearCheatsOnRewind.Checked)
            {
                cbClearCheatsOnRewind.Checked = cbClearFreezesOnRewind.Checked;
            }

            if (cbClearFreezesOnRewind.Checked)
            {
                RTC_Core.ClearCheatsOnRewind = true;
            }
            else
            {
                RTC_Core.ClearCheatsOnRewind = false;
            }

            RTC_Restore.SaveRestore();
        }
예제 #26
0
        public void AddStashToStockpile()
        {
            if (lbStashHistory.Items.Count == 0 || lbStashHistory.SelectedIndex == -1)
            {
                MessageBox.Show("Can't add the Stash to the Stockpile because none is selected in the Stash History");
                return;
            }


            string Name  = "";
            string value = "";

            GlobalWin.Sound.StopSound();
            if (this.InputBox("Harvester", "Enter the new Stash name:", ref value) == DialogResult.OK)
            {
                Name = value.Trim();
                GlobalWin.Sound.StartSound();
            }
            else
            {
                GlobalWin.Sound.StartSound();
                return;
            }


            if (Name != "")
            {
                RTC_Core.currentStashkey.Alias = Name;
            }
            else
            {
                RTC_Core.currentStashkey.Alias = RTC_Core.currentStashkey.Key;
            }

            lbStockpile.Items.Add(RTC_Core.currentStashkey);
            lbStashHistory.Items.RemoveAt(lbStashHistory.SelectedIndex);

            DontLoadSelectedStockpile = true;
            lbStockpile.SelectedIndex = lbStockpile.Items.Count - 1;



            RTC_Restore.SaveRestore();
        }
예제 #27
0
        private void btnSaveStockpileAs_Click(object sender, EventArgs e)
        {
            if (lbStockpile.Items.Count == 0)
            {
                GlobalWin.Sound.StopSound();
                MessageBox.Show("You cannot save the Stockpile because it is empty");
                GlobalWin.Sound.StartSound();
                return;
            }

            GlobalWin.Sound.StopSound();
            RTC_RPC.SendToKillSwitch("FREEZE");
            Stockpile sks = new Stockpile(lbStockpile);

            Stockpile.Save(sks);
            RTC_RPC.SendToKillSwitch("UNFREEZE");
            GlobalWin.Sound.StartSound();

            RTC_Restore.SaveRestore();
        }
예제 #28
0
        public void btnAutoCorrupt_Click(object sender, EventArgs e)
        {
            if (btnAutoCorrupt.ForeColor == Color.Silver)
            {
                return;
            }

            if (!RTC_Core.AutoCorrupt)
            {
                RTC_Core.AutoCorrupt = true;
            }
            else
            {
                RTC_Core.AutoCorrupt = false;
            }

            if (RTC_Core.tfForm != null && RTC_Core.tfForm.Visible)
            {
                RTC_Core.tfForm.RecalculateCorruptFactor();
            }

            RTC_Restore.SaveRestore();
        }
예제 #29
0
        public void btnSavestate_Click(object sender, EventArgs e)
        {
            btnSavestate01.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate02.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate03.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate04.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate05.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate06.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate07.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate08.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate09.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate10.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate11.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate12.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate13.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate14.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate15.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate16.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate17.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate18.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate19.ForeColor = Color.FromArgb(192, 255, 192);
            btnSavestate20.ForeColor = Color.FromArgb(192, 255, 192);

            Button clickedButton = (sender as Button);

            clickedButton.ForeColor = Color.OrangeRed;
            clickedButton.BringToFront();

            currentSelectedState = clickedButton.Text;

            if (cbSavestateLoadOnClick.Checked)
            {
                LoadState();
            }

            RTC_Restore.SaveRestore();
        }
예제 #30
0
        private void cbBlastType_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cbBlastType.SelectedItem.ToString())
            {
            case "RANDOM":
                RTC_NightmareEngine.Algo = BlastByteAlgo.RANDOM;
                break;

            case "RANDOMTILT":
                RTC_NightmareEngine.Algo = BlastByteAlgo.RANDOMTILT;
                break;

            case "TILT":
                RTC_NightmareEngine.Algo = BlastByteAlgo.TILT;
                break;
            }

            if (RTC_Core.tfForm != null && RTC_Core.tfForm.Visible)
            {
                RTC_Core.tfForm.RecalculateCorruptFactor();
            }

            RTC_Restore.SaveRestore();
        }