summaryrefslogtreecommitdiff
path: root/src/factories/DisplayListOverrides.cpp
diff options
context:
space:
mode:
authorinspectredc <78732756+inspectredc@users.noreply.github.com>2024-10-21 16:49:32 +0100
committerGitHub <noreply@github.com>2024-10-21 09:49:32 -0600
commit2381a1cd0dd834707d34ce59c88c9970e2bd2929 (patch)
tree92a980fa744342ac263f73cec34ddccb36638bcd /src/factories/DisplayListOverrides.cpp
parent90ab0eaaaba99d26961280efb4ea0d3a259ac87a (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.cpp15
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);