mirror of
https://github.com/Retropex/dolphin.git
synced 2025-05-12 19:30:44 +02:00
why was I ever passing direct pointers to cvars to UI?
This commit is contained in:
parent
f643c7a802
commit
2c5634a7e7
@ -193,9 +193,9 @@ void ElfModLoader::update_bat_regs() {
|
||||
}
|
||||
}
|
||||
|
||||
void ElfModLoader::get_cvarlist(std::vector<CVar*>& vars_out) {
|
||||
void ElfModLoader::get_cvarlist(std::vector<CVar>& vars_out) {
|
||||
for (auto& entry : cvar_map) {
|
||||
vars_out.push_back(&entry.second);
|
||||
vars_out.push_back(entry.second);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
void on_state_change(ModState old_state) override {}
|
||||
void on_reset() override { clear_active_mod(); }
|
||||
|
||||
void get_cvarlist(std::vector<CVar*>& vars_out);
|
||||
void get_cvarlist(std::vector<CVar>& vars_out);
|
||||
bool write_cvar(std::string const& name, void* data);
|
||||
bool get_cvar_val(std::string const& name, void* data_out, size_t out_sz);
|
||||
CVar* get_cvar(std::string const& name);
|
||||
|
@ -30,30 +30,30 @@ void CVarListModel::get_column_widths(QFont const& font, std::array<int, CVarLis
|
||||
|
||||
void CVarListModel::update_memread() {
|
||||
cached_vals.clear();
|
||||
const auto get_value = [](prime::CVar* var) -> QVariant {
|
||||
switch (var->type) {
|
||||
const auto get_value = [](prime::CVar const& var) -> QVariant {
|
||||
switch (var.type) {
|
||||
case prime::CVarType::INT8:
|
||||
return prime::read8(var->addr);
|
||||
return prime::read8(var.addr);
|
||||
case prime::CVarType::INT16:
|
||||
return prime::read16(var->addr);
|
||||
return prime::read16(var.addr);
|
||||
case prime::CVarType::INT32:
|
||||
return prime::read32(var->addr);
|
||||
return prime::read32(var.addr);
|
||||
case prime::CVarType::INT64:
|
||||
return prime::read64(var->addr);
|
||||
return prime::read64(var.addr);
|
||||
case prime::CVarType::FLOAT32:
|
||||
return prime::readf32(var->addr);
|
||||
return prime::readf32(var.addr);
|
||||
case prime::CVarType::FLOAT64: {
|
||||
u64 tmp = prime::read64(var->addr);
|
||||
u64 tmp = prime::read64(var.addr);
|
||||
return *reinterpret_cast<double*>(&tmp);
|
||||
}
|
||||
case prime::CVarType::BOOLEAN:
|
||||
return static_cast<bool>(prime::read8(var->addr));
|
||||
return static_cast<bool>(prime::read8(var.addr));
|
||||
default:
|
||||
return 0u;
|
||||
}
|
||||
};
|
||||
|
||||
for (auto* var : cvar_list) {
|
||||
for (auto const& var : cvar_list) {
|
||||
cached_vals.push_back(get_value(var));
|
||||
}
|
||||
}
|
||||
@ -66,8 +66,8 @@ QVariant CVarListModel::data(const QModelIndex& index, int role) const {
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
const auto get_typename = [](prime::CVar* var) -> QVariant {
|
||||
switch (var->type) {
|
||||
const auto get_typename = [](prime::CVar const& var) -> QVariant {
|
||||
switch (var.type) {
|
||||
case prime::CVarType::INT8:
|
||||
return QString::fromStdString("int8");
|
||||
case prime::CVarType::INT16:
|
||||
@ -89,7 +89,7 @@ QVariant CVarListModel::data(const QModelIndex& index, int role) const {
|
||||
|
||||
switch (index.column()) {
|
||||
case COL_NAME:
|
||||
return QString::fromStdString(cvar_list[index.row()]->name);
|
||||
return QString::fromStdString(cvar_list[index.row()].name);
|
||||
case COL_VALUE:
|
||||
if (index.row() < cached_vals.size()) {
|
||||
return cached_vals[index.row()];
|
||||
@ -195,30 +195,30 @@ void CVarsWindow::save_presets() {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto const* var : list_model.get_var_list()) {
|
||||
for (auto const& var : list_model.get_var_list()) {
|
||||
std::ostringstream line;
|
||||
line << var->name << "=";
|
||||
switch (var->type) {
|
||||
line << var.name << "=";
|
||||
switch (var.type) {
|
||||
case prime::CVarType::BOOLEAN:
|
||||
line << (prime::read8(var->addr) ? "true" : "false");
|
||||
line << (prime::read8(var.addr) ? "true" : "false");
|
||||
break;
|
||||
case prime::CVarType::INT8:
|
||||
line << prime::read8(var->addr);
|
||||
line << prime::read8(var.addr);
|
||||
break;
|
||||
case prime::CVarType::INT16:
|
||||
line << prime::read16(var->addr);
|
||||
line << prime::read16(var.addr);
|
||||
break;
|
||||
case prime::CVarType::INT32:
|
||||
line << prime::read32(var->addr);
|
||||
line << prime::read32(var.addr);
|
||||
break;
|
||||
case prime::CVarType::INT64:
|
||||
line << prime::read64(var->addr);
|
||||
line << prime::read64(var.addr);
|
||||
break;
|
||||
case prime::CVarType::FLOAT32:
|
||||
line << prime::readf32(var->addr);
|
||||
line << prime::readf32(var.addr);
|
||||
break;
|
||||
case prime::CVarType::FLOAT64: {
|
||||
u64 tmp = prime::read64(var->addr);
|
||||
u64 tmp = prime::read64(var.addr);
|
||||
line << *reinterpret_cast<double*>(&tmp);
|
||||
}
|
||||
break;
|
||||
|
@ -35,13 +35,13 @@ public:
|
||||
int cvar_count() { return static_cast<int>(cvar_list.size()); }
|
||||
void get_column_widths(QFont const& font, std::array<int, NUM_COLS>& width_out);
|
||||
prime::CVar* get_var(int row) {
|
||||
return cvar_list[row];
|
||||
return &cvar_list[row];
|
||||
}
|
||||
std::vector<prime::CVar*> const& get_var_list() { return cvar_list; }
|
||||
std::vector<prime::CVar> const& get_var_list() { return cvar_list; }
|
||||
void update_memread();
|
||||
|
||||
private:
|
||||
std::vector<prime::CVar*> cvar_list;
|
||||
std::vector<prime::CVar> cvar_list;
|
||||
std::vector<QVariant> cached_vals;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user