early-access version 3777
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| yuzu emulator early access | ||||
| ============= | ||||
|  | ||||
| This is the source code for early-access 3776. | ||||
| This is the source code for early-access 3777. | ||||
|  | ||||
| ## Legal Notice | ||||
|  | ||||
|   | ||||
| @@ -46,17 +46,18 @@ constexpr u8 SpecializationTypeMask = 0xf; | ||||
| constexpr u8 SpecializationAttributeMask = 0xf0; | ||||
| constexpr u8 SpecializationAttributeOffset = 4; | ||||
|  | ||||
| // Scalar and countable could have better names | ||||
| enum Specialization : u8 { | ||||
|     Default = 0, | ||||
|     Time = 1, | ||||
|     Hex = 2, | ||||
|     List = 3, | ||||
|     RuntimeList = 4, | ||||
|     Scalar = 5, | ||||
|     Countable = 6, | ||||
|     Paired = 7, | ||||
|     Time = 1,        // Duration or specific moment in time | ||||
|     Hex = 2,         // Hexadecimal number | ||||
|     List = 3,        // Setting has specific members | ||||
|     RuntimeList = 4, // Members of the list are determined during runtime | ||||
|     Scalar = 5,      // Values are continuous | ||||
|     Countable = 6,   // Can be stepped through | ||||
|     Paired = 7,      // Another setting is associated with this setting | ||||
|  | ||||
|     Percentage = (1 << SpecializationAttributeOffset), | ||||
|     Percentage = (1 << SpecializationAttributeOffset), // Should be represented as a percentage | ||||
| }; | ||||
|  | ||||
| class BasicSetting; | ||||
|   | ||||
| @@ -390,25 +390,6 @@ void Widget::SetupComponent(const QString& label, std::function<void()>& load_fu | ||||
|  | ||||
|     QWidget* data_component{nullptr}; | ||||
|  | ||||
|     if (!Settings::IsConfiguringGlobal() && managed) { | ||||
|         restore_button = CreateRestoreGlobalButton(setting.UsingGlobal(), this); | ||||
|  | ||||
|         touch = [this]() { | ||||
|             LOG_DEBUG(Frontend, "Enabling custom setting for \"{}\"", setting.GetLabel()); | ||||
|             restore_button->setEnabled(true); | ||||
|             restore_button->setVisible(true); | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     if (require_checkbox) { | ||||
|         QWidget* lhs = | ||||
|             CreateCheckBox(other_setting, label, checkbox_serializer, checkbox_restore_func, touch); | ||||
|         layout->addWidget(lhs); | ||||
|     } else if (setting.TypeId() != typeid(bool)) { | ||||
|         QLabel* qt_label = CreateLabel(label); | ||||
|         layout->addWidget(qt_label); | ||||
|     } | ||||
|  | ||||
|     request = [&]() { | ||||
|         if (request != RequestType::Default) { | ||||
|             return request; | ||||
| @@ -435,6 +416,25 @@ void Widget::SetupComponent(const QString& label, std::function<void()>& load_fu | ||||
|         return request; | ||||
|     }(); | ||||
|  | ||||
|     if (!Settings::IsConfiguringGlobal() && managed) { | ||||
|         restore_button = CreateRestoreGlobalButton(setting.UsingGlobal(), this); | ||||
|  | ||||
|         touch = [this]() { | ||||
|             LOG_DEBUG(Frontend, "Enabling custom setting for \"{}\"", setting.GetLabel()); | ||||
|             restore_button->setEnabled(true); | ||||
|             restore_button->setVisible(true); | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     if (require_checkbox) { | ||||
|         QWidget* lhs = | ||||
|             CreateCheckBox(other_setting, label, checkbox_serializer, checkbox_restore_func, touch); | ||||
|         layout->addWidget(lhs); | ||||
|     } else if (setting.TypeId() != typeid(bool)) { | ||||
|         QLabel* qt_label = CreateLabel(label); | ||||
|         layout->addWidget(qt_label); | ||||
|     } | ||||
|  | ||||
|     if (setting.TypeId() == typeid(bool)) { | ||||
|         data_component = CreateCheckBox(&setting, label, serializer, restore_func, touch); | ||||
|     } else if (setting.IsEnum()) { | ||||
| @@ -505,6 +505,9 @@ void Widget::SetupComponent(const QString& label, std::function<void()>& load_fu | ||||
|  | ||||
|         QObject::connect(restore_button, &QAbstractButton::clicked, | ||||
|                          [this, restore_func, checkbox_restore_func](bool) { | ||||
|                              LOG_DEBUG(Frontend, "Restore global state for \"{}\"", | ||||
|                                        setting.GetLabel()); | ||||
|  | ||||
|                              restore_button->setEnabled(false); | ||||
|                              restore_button->setVisible(false); | ||||
|  | ||||
|   | ||||
| @@ -265,7 +265,11 @@ void GameListWorker::AddTitlesToGameList(GameListDir* parent_dir) { | ||||
|         std::vector<u8> icon; | ||||
|         std::string name; | ||||
|         u64 program_id = 0; | ||||
|         loader->ReadProgramId(program_id); | ||||
|         const auto result = loader->ReadProgramId(program_id); | ||||
|  | ||||
|         if (result != Loader::ResultStatus::Success) { | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         const PatchManager patch{program_id, system.GetFileSystemController(), | ||||
|                                  system.GetContentProvider()}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user