mirror of https://github.com/AxioDL/metaforce.git
CVarManager: Eliminate redundant map lookups
We can simply utilize the iterator of the previous existence check to access the member instead of hashing through the map again.
This commit is contained in:
parent
4818198e41
commit
cfced1bf0a
|
@ -25,11 +25,10 @@ CVarManager::CVarManager(hecl::Runtime::FileStoreManager& store, bool useBinary)
|
||||||
com_configfile = newCVar("config", "File to store configuration", std::string("config"), CVar::EFlags::System);
|
com_configfile = newCVar("config", "File to store configuration", std::string("config"), CVar::EFlags::System);
|
||||||
com_developer = newCVar("developer", "Enables developer mode", false,
|
com_developer = newCVar("developer", "Enables developer mode", false,
|
||||||
(CVar::EFlags::System | CVar::EFlags::ReadOnly | CVar::EFlags::InternalArchivable));
|
(CVar::EFlags::System | CVar::EFlags::ReadOnly | CVar::EFlags::InternalArchivable));
|
||||||
com_enableCheats =
|
com_enableCheats = newCVar(
|
||||||
newCVar("cheats", "Enable cheats", false,
|
"cheats", "Enable cheats", false,
|
||||||
(CVar::EFlags::System | CVar::EFlags::ReadOnly | CVar::EFlags::Hidden | CVar::EFlags::InternalArchivable));
|
(CVar::EFlags::System | CVar::EFlags::ReadOnly | CVar::EFlags::Hidden | CVar::EFlags::InternalArchivable));
|
||||||
com_cubemaps =
|
com_cubemaps = newCVar("cubemaps", "Enable cubemaps", false,
|
||||||
newCVar("cubemaps", "Enable cubemaps", false,
|
|
||||||
(CVar::EFlags::Game | CVar::EFlags::ReadOnly | CVar::EFlags::InternalArchivable));
|
(CVar::EFlags::Game | CVar::EFlags::ReadOnly | CVar::EFlags::InternalArchivable));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,8 +82,8 @@ void CVarManager::deserialize(CVar* cvar) {
|
||||||
/* First let's check for a deferred value */
|
/* First let's check for a deferred value */
|
||||||
std::string lowName = cvar->name().data();
|
std::string lowName = cvar->name().data();
|
||||||
athena::utility::tolower(lowName);
|
athena::utility::tolower(lowName);
|
||||||
if (m_deferedCVars.find(lowName) != m_deferedCVars.end()) {
|
if (const auto iter = m_deferedCVars.find(lowName); iter != m_deferedCVars.end()) {
|
||||||
std::string val = m_deferedCVars[lowName];
|
std::string val = std::move(iter->second);
|
||||||
m_deferedCVars.erase(lowName);
|
m_deferedCVars.erase(lowName);
|
||||||
if (cvar->fromLiteralToType(val))
|
if (cvar->fromLiteralToType(val))
|
||||||
return;
|
return;
|
||||||
|
@ -215,12 +214,13 @@ void CVarManager::setCVar(Console* con, const std::vector<std::string>& args) {
|
||||||
|
|
||||||
std::string cvName = args[0];
|
std::string cvName = args[0];
|
||||||
athena::utility::tolower(cvName);
|
athena::utility::tolower(cvName);
|
||||||
if (m_cvars.find(cvName) == m_cvars.end()) {
|
const auto iter = m_cvars.find(cvName);
|
||||||
|
if (iter == m_cvars.end()) {
|
||||||
con->report(Console::Level::Error, fmt("CVar '{}' does not exist"), args[0]);
|
con->report(Console::Level::Error, fmt("CVar '{}' does not exist"), args[0]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& cv = m_cvars[cvName];
|
const auto& cv = iter->second;
|
||||||
std::string oldVal = cv->value();
|
std::string oldVal = cv->value();
|
||||||
std::string value = args[1];
|
std::string value = args[1];
|
||||||
auto it = args.begin() + 2;
|
auto it = args.begin() + 2;
|
||||||
|
@ -245,12 +245,13 @@ void CVarManager::getCVar(Console* con, const std::vector<std::string>& args) {
|
||||||
|
|
||||||
std::string cvName = args[0];
|
std::string cvName = args[0];
|
||||||
athena::utility::tolower(cvName);
|
athena::utility::tolower(cvName);
|
||||||
if (m_cvars.find(cvName) == m_cvars.end()) {
|
const auto iter = m_cvars.find(cvName);
|
||||||
|
if (iter == m_cvars.end()) {
|
||||||
con->report(Console::Level::Error, fmt("CVar '{}' does not exist"), args[0]);
|
con->report(Console::Level::Error, fmt("CVar '{}' does not exist"), args[0]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& cv = m_cvars[cvName];
|
const auto& cv = iter->second;
|
||||||
con->report(Console::Level::Info, fmt("'{}' = '{}'"), cv->name(), cv->value());
|
con->report(Console::Level::Info, fmt("'{}' = '{}'"), cv->name(), cv->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue