diff options
author | Lioncash <mathew1800@gmail.com> | 2020-09-15 09:24:42 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2020-09-15 09:24:44 +0200 |
commit | 3a8464cde28bd89146aa44af836f80ff925c293c (patch) | |
tree | 5730a53f2b5e113ac254bc408d7ff968f9da5242 /src/core | |
parent | cheat_engine: Remove unnecessary system argument to CheatParser's Parse function (diff) | |
download | yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.tar yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.tar.gz yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.tar.bz2 yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.tar.lz yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.tar.xz yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.tar.zst yuzu-3a8464cde28bd89146aa44af836f80ff925c293c.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/memory/cheat_engine.cpp | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/core/memory/cheat_engine.cpp b/src/core/memory/cheat_engine.cpp index 68d09d350..29284a42d 100644 --- a/src/core/memory/cheat_engine.cpp +++ b/src/core/memory/cheat_engine.cpp @@ -19,10 +19,24 @@ #include "core/memory/cheat_engine.h" namespace Core::Memory { - +namespace { constexpr auto CHEAT_ENGINE_NS = std::chrono::nanoseconds{1000000000 / 12}; constexpr u32 KEYPAD_BITMASK = 0x3FFFFFF; +std::string_view ExtractName(std::string_view data, std::size_t start_index, char match) { + auto end_index = start_index; + while (data[end_index] != match) { + ++end_index; + if (end_index > data.size() || + (end_index - start_index - 1) > sizeof(CheatDefinition::readable_name)) { + return {}; + } + } + + return data.substr(start_index, end_index - start_index); +} +} // Anonymous namespace + StandardVmCallbacks::StandardVmCallbacks(Core::System& system, const CheatProcessMetadata& metadata) : metadata(metadata), system(system) {} @@ -82,22 +96,6 @@ CheatParser::~CheatParser() = default; TextCheatParser::~TextCheatParser() = default; -namespace { -template <char match> -std::string_view ExtractName(std::string_view data, std::size_t start_index) { - auto end_index = start_index; - while (data[end_index] != match) { - ++end_index; - if (end_index > data.size() || - (end_index - start_index - 1) > sizeof(CheatDefinition::readable_name)) { - return {}; - } - } - - return data.substr(start_index, end_index - start_index); -} -} // Anonymous namespace - std::vector<CheatEntry> TextCheatParser::Parse(std::string_view data) const { std::vector<CheatEntry> out(1); std::optional<u64> current_entry; @@ -114,7 +112,7 @@ std::vector<CheatEntry> TextCheatParser::Parse(std::string_view data) const { return {}; } - const auto name = ExtractName<'}'>(data, i + 1); + const auto name = ExtractName(data, i + 1, '}'); if (name.empty()) { return {}; } @@ -131,7 +129,7 @@ std::vector<CheatEntry> TextCheatParser::Parse(std::string_view data) const { current_entry = out.size(); out.emplace_back(); - const auto name = ExtractName<']'>(data, i + 1); + const auto name = ExtractName(data, i + 1, ']'); if (name.empty()) { return {}; } |