mirror of
https://github.com/Retropex/dolphin.git
synced 2025-05-28 04:52:35 +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) {
|
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_state_change(ModState old_state) override {}
|
||||||
void on_reset() override { clear_active_mod(); }
|
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 write_cvar(std::string const& name, void* data);
|
||||||
bool get_cvar_val(std::string const& name, void* data_out, size_t out_sz);
|
bool get_cvar_val(std::string const& name, void* data_out, size_t out_sz);
|
||||||
CVar* get_cvar(std::string const& name);
|
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() {
|
void CVarListModel::update_memread() {
|
||||||
cached_vals.clear();
|
cached_vals.clear();
|
||||||
const auto get_value = [](prime::CVar* var) -> QVariant {
|
const auto get_value = [](prime::CVar const& var) -> QVariant {
|
||||||
switch (var->type) {
|
switch (var.type) {
|
||||||
case prime::CVarType::INT8:
|
case prime::CVarType::INT8:
|
||||||
return prime::read8(var->addr);
|
return prime::read8(var.addr);
|
||||||
case prime::CVarType::INT16:
|
case prime::CVarType::INT16:
|
||||||
return prime::read16(var->addr);
|
return prime::read16(var.addr);
|
||||||
case prime::CVarType::INT32:
|
case prime::CVarType::INT32:
|
||||||
return prime::read32(var->addr);
|
return prime::read32(var.addr);
|
||||||
case prime::CVarType::INT64:
|
case prime::CVarType::INT64:
|
||||||
return prime::read64(var->addr);
|
return prime::read64(var.addr);
|
||||||
case prime::CVarType::FLOAT32:
|
case prime::CVarType::FLOAT32:
|
||||||
return prime::readf32(var->addr);
|
return prime::readf32(var.addr);
|
||||||
case prime::CVarType::FLOAT64: {
|
case prime::CVarType::FLOAT64: {
|
||||||
u64 tmp = prime::read64(var->addr);
|
u64 tmp = prime::read64(var.addr);
|
||||||
return *reinterpret_cast<double*>(&tmp);
|
return *reinterpret_cast<double*>(&tmp);
|
||||||
}
|
}
|
||||||
case prime::CVarType::BOOLEAN:
|
case prime::CVarType::BOOLEAN:
|
||||||
return static_cast<bool>(prime::read8(var->addr));
|
return static_cast<bool>(prime::read8(var.addr));
|
||||||
default:
|
default:
|
||||||
return 0u;
|
return 0u;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (auto* var : cvar_list) {
|
for (auto const& var : cvar_list) {
|
||||||
cached_vals.push_back(get_value(var));
|
cached_vals.push_back(get_value(var));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,8 +66,8 @@ QVariant CVarListModel::data(const QModelIndex& index, int role) const {
|
|||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto get_typename = [](prime::CVar* var) -> QVariant {
|
const auto get_typename = [](prime::CVar const& var) -> QVariant {
|
||||||
switch (var->type) {
|
switch (var.type) {
|
||||||
case prime::CVarType::INT8:
|
case prime::CVarType::INT8:
|
||||||
return QString::fromStdString("int8");
|
return QString::fromStdString("int8");
|
||||||
case prime::CVarType::INT16:
|
case prime::CVarType::INT16:
|
||||||
@ -89,7 +89,7 @@ QVariant CVarListModel::data(const QModelIndex& index, int role) const {
|
|||||||
|
|
||||||
switch (index.column()) {
|
switch (index.column()) {
|
||||||
case COL_NAME:
|
case COL_NAME:
|
||||||
return QString::fromStdString(cvar_list[index.row()]->name);
|
return QString::fromStdString(cvar_list[index.row()].name);
|
||||||
case COL_VALUE:
|
case COL_VALUE:
|
||||||
if (index.row() < cached_vals.size()) {
|
if (index.row() < cached_vals.size()) {
|
||||||
return cached_vals[index.row()];
|
return cached_vals[index.row()];
|
||||||
@ -195,30 +195,30 @@ void CVarsWindow::save_presets() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto const* var : list_model.get_var_list()) {
|
for (auto const& var : list_model.get_var_list()) {
|
||||||
std::ostringstream line;
|
std::ostringstream line;
|
||||||
line << var->name << "=";
|
line << var.name << "=";
|
||||||
switch (var->type) {
|
switch (var.type) {
|
||||||
case prime::CVarType::BOOLEAN:
|
case prime::CVarType::BOOLEAN:
|
||||||
line << (prime::read8(var->addr) ? "true" : "false");
|
line << (prime::read8(var.addr) ? "true" : "false");
|
||||||
break;
|
break;
|
||||||
case prime::CVarType::INT8:
|
case prime::CVarType::INT8:
|
||||||
line << prime::read8(var->addr);
|
line << prime::read8(var.addr);
|
||||||
break;
|
break;
|
||||||
case prime::CVarType::INT16:
|
case prime::CVarType::INT16:
|
||||||
line << prime::read16(var->addr);
|
line << prime::read16(var.addr);
|
||||||
break;
|
break;
|
||||||
case prime::CVarType::INT32:
|
case prime::CVarType::INT32:
|
||||||
line << prime::read32(var->addr);
|
line << prime::read32(var.addr);
|
||||||
break;
|
break;
|
||||||
case prime::CVarType::INT64:
|
case prime::CVarType::INT64:
|
||||||
line << prime::read64(var->addr);
|
line << prime::read64(var.addr);
|
||||||
break;
|
break;
|
||||||
case prime::CVarType::FLOAT32:
|
case prime::CVarType::FLOAT32:
|
||||||
line << prime::readf32(var->addr);
|
line << prime::readf32(var.addr);
|
||||||
break;
|
break;
|
||||||
case prime::CVarType::FLOAT64: {
|
case prime::CVarType::FLOAT64: {
|
||||||
u64 tmp = prime::read64(var->addr);
|
u64 tmp = prime::read64(var.addr);
|
||||||
line << *reinterpret_cast<double*>(&tmp);
|
line << *reinterpret_cast<double*>(&tmp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -35,13 +35,13 @@ public:
|
|||||||
int cvar_count() { return static_cast<int>(cvar_list.size()); }
|
int cvar_count() { return static_cast<int>(cvar_list.size()); }
|
||||||
void get_column_widths(QFont const& font, std::array<int, NUM_COLS>& width_out);
|
void get_column_widths(QFont const& font, std::array<int, NUM_COLS>& width_out);
|
||||||
prime::CVar* get_var(int row) {
|
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();
|
void update_memread();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<prime::CVar*> cvar_list;
|
std::vector<prime::CVar> cvar_list;
|
||||||
std::vector<QVariant> cached_vals;
|
std::vector<QVariant> cached_vals;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user