summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2013-09-28 23:37:01 -0400
committercomex <comexk@gmail.com>2013-09-28 23:38:40 -0400
commit853392b79032096a75fd7a611db19b7d0f2cecd2 (patch)
treeae375a9bef6b281b44994ee32ab160d9401212ea /Source/Core
parentf57ff0a5698ee1d4bf946e27eaf28c611e5a4b70 (diff)
Use a separate section for enabled Gecko codes, like AR.
This properly fixes default gecko codes. It makes perfect sense to have two separate cheat windows and two separate code paths for the different code formats, right?
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Src/GeckoCodeConfig.cpp33
1 files changed, 24 insertions, 9 deletions
diff --git a/Source/Core/Core/Src/GeckoCodeConfig.cpp b/Source/Core/Core/Src/GeckoCodeConfig.cpp
index 7657e98de9..58b5b46968 100644
--- a/Source/Core/Core/Src/GeckoCodeConfig.cpp
+++ b/Source/Core/Core/Src/GeckoCodeConfig.cpp
@@ -10,8 +10,6 @@
#include <string>
#include <sstream>
-#define GECKO_CODE_INI_SECTION "Gecko"
-
namespace Gecko
{
@@ -21,7 +19,7 @@ void LoadCodes(const IniFile& globalIni, const IniFile& localIni, std::vector<Ge
for (size_t i = 0; i < ArraySize(inis); ++i)
{
std::vector<std::string> lines;
- inis[i]->GetLines(GECKO_CODE_INI_SECTION, lines, false);
+ inis[i]->GetLines("Gecko", lines, false);
GeckoCode gcode;
@@ -74,20 +72,35 @@ void LoadCodes(const IniFile& globalIni, const IniFile& localIni, std::vector<Ge
// add the last code
if (gcode.name.size())
gcodes.push_back(gcode);
+
+ inis[i]->GetLines("Gecko_Enabled", lines, false);
+
+ for (auto lines_iter = lines.begin(); lines_iter!=lines.end(); ++lines_iter)
+ {
+ auto line = *lines_iter;
+ if (line.size() == 0 || line[0] != '$')
+ continue;
+ std::string name = line.substr(1);
+ for (auto gcodes_iter = gcodes.begin(); gcodes_iter != gcodes.end(); ++gcodes_iter)
+ {
+ if ((*gcodes_iter).name == name)
+ (*gcodes_iter).enabled = true;
+ }
+ }
}
}
// used by the SaveGeckoCodes function
-void SaveGeckoCode(std::vector<std::string>& lines, const GeckoCode& gcode)
+void SaveGeckoCode(std::vector<std::string>& lines, std::vector<std::string>& enabledLines, const GeckoCode& gcode)
{
+ if (gcode.enabled)
+ enabledLines.push_back("$" + gcode.name);
+
if (!gcode.user_defined)
return;
std::string name;
- if (gcode.enabled)
- name += '+';
-
// save the name
name += '$';
name += gcode.name;
@@ -125,16 +138,18 @@ void SaveGeckoCode(std::vector<std::string>& lines, const GeckoCode& gcode)
void SaveCodes(IniFile& inifile, const std::vector<GeckoCode>& gcodes)
{
std::vector<std::string> lines;
+ std::vector<std::string> enabledLines;
std::vector<GeckoCode>::const_iterator
gcodes_iter = gcodes.begin(),
gcodes_end = gcodes.end();
for (; gcodes_iter!=gcodes_end; ++gcodes_iter)
{
- SaveGeckoCode(lines, *gcodes_iter);
+ SaveGeckoCode(lines, enabledLines, *gcodes_iter);
}
- inifile.SetLines(GECKO_CODE_INI_SECTION, lines);
+ inifile.SetLines("Gecko", lines);
+ inifile.SetLines("Gecko_Enabled", enabledLines);
}
};