mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	cheats: Use global cheat engine (#7291)
* cheats: Use global cheat engine * cheats: Prevent wasted double-load of cheat file. * android: Fix for cheat engine updates. --------- Co-authored-by: GPUCode <geoster3d@gmail.com>
This commit is contained in:
		
							parent
							
								
									5a7f615da1
								
							
						
					
					
						commit
						7dd9174d31
					
				
					 14 changed files with 120 additions and 125 deletions
				
			
		|  | @ -11,8 +11,10 @@ | |||
| #include "core/cheats/gateway_cheat.h" | ||||
| #include "ui_configure_cheats.h" | ||||
| 
 | ||||
| ConfigureCheats::ConfigureCheats(Core::System& system, u64 title_id_, QWidget* parent) | ||||
|     : QWidget(parent), ui(std::make_unique<Ui::ConfigureCheats>()), title_id{title_id_} { | ||||
| ConfigureCheats::ConfigureCheats(Cheats::CheatEngine& cheat_engine_, u64 title_id_, QWidget* parent) | ||||
|     : QWidget(parent), | ||||
|       ui(std::make_unique<Ui::ConfigureCheats>()), cheat_engine{cheat_engine_}, title_id{ | ||||
|                                                                                     title_id_} { | ||||
|     // Setup gui control settings
 | ||||
|     ui->setupUi(this); | ||||
|     ui->tableCheats->setColumnWidth(0, 30); | ||||
|  | @ -34,15 +36,14 @@ ConfigureCheats::ConfigureCheats(Core::System& system, u64 title_id_, QWidget* p | |||
|             [this] { SaveCheat(ui->tableCheats->currentRow()); }); | ||||
|     connect(ui->buttonDelete, &QPushButton::clicked, this, &ConfigureCheats::OnDeleteCheat); | ||||
| 
 | ||||
|     cheat_engine = std::make_unique<Cheats::CheatEngine>(title_id, system); | ||||
| 
 | ||||
|     cheat_engine.LoadCheatFile(title_id); | ||||
|     LoadCheats(); | ||||
| } | ||||
| 
 | ||||
| ConfigureCheats::~ConfigureCheats() = default; | ||||
| 
 | ||||
| void ConfigureCheats::LoadCheats() { | ||||
|     cheats = cheat_engine->GetCheats(); | ||||
|     cheats = cheat_engine.GetCheats(); | ||||
|     const int cheats_count = static_cast<int>(cheats.size()); | ||||
| 
 | ||||
|     ui->tableCheats->setRowCount(cheats_count); | ||||
|  | @ -106,12 +107,12 @@ bool ConfigureCheats::SaveCheat(int row) { | |||
|                                                         ui->textNotes->toPlainText().toStdString()); | ||||
| 
 | ||||
|     if (newly_created) { | ||||
|         cheat_engine->AddCheat(cheat); | ||||
|         cheat_engine.AddCheat(std::move(cheat)); | ||||
|         newly_created = false; | ||||
|     } else { | ||||
|         cheat_engine->UpdateCheat(row, cheat); | ||||
|         cheat_engine.UpdateCheat(row, std::move(cheat)); | ||||
|     } | ||||
|     cheat_engine->SaveCheatFile(); | ||||
|     cheat_engine.SaveCheatFile(title_id); | ||||
| 
 | ||||
|     int previous_row = ui->tableCheats->currentRow(); | ||||
|     int previous_col = ui->tableCheats->currentColumn(); | ||||
|  | @ -161,7 +162,7 @@ void ConfigureCheats::OnCheckChanged(int state) { | |||
|     const QCheckBox* checkbox = qobject_cast<QCheckBox*>(sender()); | ||||
|     int row = static_cast<int>(checkbox->property("row").toInt()); | ||||
|     cheats[row]->SetEnabled(state); | ||||
|     cheat_engine->SaveCheatFile(); | ||||
|     cheat_engine.SaveCheatFile(title_id); | ||||
| } | ||||
| 
 | ||||
| void ConfigureCheats::OnTextEdited() { | ||||
|  | @ -173,8 +174,8 @@ void ConfigureCheats::OnDeleteCheat() { | |||
|     if (newly_created) { | ||||
|         newly_created = false; | ||||
|     } else { | ||||
|         cheat_engine->RemoveCheat(ui->tableCheats->currentRow()); | ||||
|         cheat_engine->SaveCheatFile(); | ||||
|         cheat_engine.RemoveCheat(ui->tableCheats->currentRow()); | ||||
|         cheat_engine.SaveCheatFile(title_id); | ||||
|     } | ||||
| 
 | ||||
|     LoadCheats(); | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <memory> | ||||
| #include <span> | ||||
| #include <QWidget> | ||||
| #include "common/common_types.h" | ||||
| 
 | ||||
|  | @ -25,7 +26,8 @@ class ConfigureCheats : public QWidget { | |||
|     Q_OBJECT | ||||
| 
 | ||||
| public: | ||||
|     explicit ConfigureCheats(Core::System& system, u64 title_id, QWidget* parent = nullptr); | ||||
|     explicit ConfigureCheats(Cheats::CheatEngine& cheat_engine, u64 title_id_, | ||||
|                              QWidget* parent = nullptr); | ||||
|     ~ConfigureCheats(); | ||||
|     bool ApplyConfiguration(); | ||||
| 
 | ||||
|  | @ -58,9 +60,9 @@ private slots: | |||
| 
 | ||||
| private: | ||||
|     std::unique_ptr<Ui::ConfigureCheats> ui; | ||||
|     std::vector<std::shared_ptr<Cheats::CheatBase>> cheats; | ||||
|     Cheats::CheatEngine& cheat_engine; | ||||
|     std::span<const std::shared_ptr<Cheats::CheatBase>> cheats; | ||||
|     bool edited = false, newly_created = false; | ||||
|     int last_row = -1, last_col = -1; | ||||
|     u64 title_id; | ||||
|     std::unique_ptr<Cheats::CheatEngine> cheat_engine; | ||||
| }; | ||||
|  |  | |||
|  | @ -38,7 +38,7 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const QString | |||
|     graphics_tab = std::make_unique<ConfigureGraphics>(physical_devices, is_powered_on, this); | ||||
|     system_tab = std::make_unique<ConfigureSystem>(system, this); | ||||
|     debug_tab = std::make_unique<ConfigureDebug>(is_powered_on, this); | ||||
|     cheat_tab = std::make_unique<ConfigureCheats>(system, title_id, this); | ||||
|     cheat_tab = std::make_unique<ConfigureCheats>(system.CheatEngine(), title_id, this); | ||||
| 
 | ||||
|     ui->setupUi(this); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue