diff options
| author | inspectredc <78732756+inspectredc@users.noreply.github.com> | 2024-10-21 16:49:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-21 09:49:32 -0600 |
| commit | 2381a1cd0dd834707d34ce59c88c9970e2bd2929 (patch) | |
| tree | 92a980fa744342ac263f73cec34ddccb36638bcd /src/factories/DisplayListOverrides.cpp | |
| parent | 90ab0eaaaba99d26961280efb4ea0d3a259ac87a (diff) | |
Viewport Factory (#154)
* Viewport Factory
* newline
* dont make static
* reformat to valid c
Diffstat (limited to 'src/factories/DisplayListOverrides.cpp')
| -rw-r--r-- | src/factories/DisplayListOverrides.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/factories/DisplayListOverrides.cpp b/src/factories/DisplayListOverrides.cpp index 4e7d1a7..e05ae4f 100644 --- a/src/factories/DisplayListOverrides.cpp +++ b/src/factories/DisplayListOverrides.cpp @@ -167,6 +167,21 @@ int DisplayList(uint32_t ptr) { return 0; } +int Viewport(uint32_t ptr) { + auto dec = Companion::Instance->GetNodeByAddr(ptr); + + if(dec.has_value()){ + auto node = std::get<1>(dec.value()); + auto symbol = GetSafeNode<std::string>(node, "symbol"); + SPDLOG_INFO("Found Viewport: 0x{:X} Symbol: {}", ptr, symbol); + gfxd_puts(("&" + symbol).c_str()); + return 1; + } + + SPDLOG_WARN("Could not find viewport to override at 0x{:X}", ptr); + return 0; +} + std::optional<std::tuple<std::string, YAML::Node>> GetVtxOverlap(uint32_t ptr){ if(mVtxOverlaps.contains(ptr)){ SPDLOG_INFO("Found overlap for ptr 0x{:X}", ptr); |
