summaryrefslogtreecommitdiff
path: root/src/factories/DisplayListOverrides.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-03-26 00:11:46 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-03-26 00:11:46 -0600
commiteb2dca9c14247da51a5fdac1f1e3f66cf0c660c4 (patch)
treeed7d203d728f66a2ad55b44087696bdda97874f5 /src/factories/DisplayListOverrides.cpp
parentaa22c0803efa346b7886e8c2d44a04eddb020b3c (diff)
Fixed geo layout factory bugs and some sm64 related stuff
Diffstat (limited to 'src/factories/DisplayListOverrides.cpp')
-rw-r--r--src/factories/DisplayListOverrides.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/factories/DisplayListOverrides.cpp b/src/factories/DisplayListOverrides.cpp
index 32c9b5c..4e7d1a7 100644
--- a/src/factories/DisplayListOverrides.cpp
+++ b/src/factories/DisplayListOverrides.cpp
@@ -112,17 +112,42 @@ int Palette(uint32_t ptr, int32_t idx, int32_t count) {
return 0;
}
-int Light(uint32_t ptr, int32_t count) {
+int Lights(uint32_t ptr, int32_t count) {
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 Light: 0x{:X} Symbol: {}", ptr, symbol);
+ SPDLOG_INFO("Found Lightsn: 0x{:X} Symbol: {}", ptr, symbol);
gfxd_puts(symbol.c_str());
return 1;
}
+ SPDLOG_WARN("Could not find lights at 0x{:X}", ptr);
+ return 0;
+}
+
+int Light(uint32_t ptr) {
+ auto res = Companion::Instance->GetNodeByAddr(ptr);
+
+ if(res.has_value()){
+ auto node = std::get<1>(res.value());
+ auto symbol = GetSafeNode<std::string>(node, "symbol");
+ SPDLOG_INFO("Found Light A Ptr: 0x{:X} Symbol: {}", ptr, symbol);
+ gfxd_puts(("&" + symbol + ".a").c_str());
+ return 1;
+ }
+
+ res = Companion::Instance->GetNodeByAddr(ptr - 0x8);
+
+ if(res.has_value()){
+ auto node = std::get<1>(res.value());
+ auto symbol = GetSafeNode<std::string>(node, "symbol");
+ SPDLOG_INFO("Found Light L Ptr: 0x{:X} Symbol: {}", ptr, symbol);
+ gfxd_puts(("&" + symbol + ".l").c_str());
+ return 1;
+ }
+
SPDLOG_WARN("Could not find light at 0x{:X}", ptr);
return 0;
}