summaryrefslogtreecommitdiff
path: root/src/Companion.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-03-09 23:12:39 -0600
committerLywx <kiritodev01@gmail.com>2024-03-10 15:58:45 -0600
commit5d4bd639dfdffcf26edb458485beee1b81b92531 (patch)
tree7495a81317f88140bce0c55c7c3cc3ec7c195b58 /src/Companion.cpp
parentc4bb1ad8ee74a2ae4659926717ed7de9ee1e0c69 (diff)
Refactored vtx overlap function
Diffstat (limited to 'src/Companion.cpp')
-rw-r--r--src/Companion.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp
index 441f596..81044b3 100644
--- a/src/Companion.cpp
+++ b/src/Companion.cpp
@@ -14,6 +14,7 @@
#include "factories/VtxFactory.h"
#include "factories/TextureFactory.h"
#include "factories/DisplayListFactory.h"
+#include "factories/DisplayListOverrides.h"
#include "factories/BlobFactory.h"
#include "factories/LightsFactory.h"
#include "factories/mk64/CourseVtx.h"
@@ -482,6 +483,7 @@ void Companion::Process() {
this->gConfig.segment.local.clear();
this->gFileHeader.clear();
this->gCurrentPad = 0;
+ GFXDOverride::ClearVtx();
if(root[":config"]) {
this->ParseCurrentFileConfig(root[":config"]);
@@ -783,6 +785,25 @@ std::optional<std::tuple<std::string, YAML::Node>> Companion::GetNodeByAddr(cons
return this->gAddrMap[this->gCurrentFile][addr];
}
+std::optional<std::vector<std::tuple<std::string, YAML::Node>>> Companion::GetNodesByType(const std::string& type){
+ std::vector<std::tuple<std::string, YAML::Node>> nodes;
+
+ if(!this->gAddrMap.contains(this->gCurrentFile)){
+ return nodes;
+ }
+
+ for(auto& [addr, tpl] : this->gAddrMap[this->gCurrentFile]){
+ auto [name, node] = tpl;
+ const auto n_type = GetSafeNode<std::string>(node, "type");
+ if(n_type == type){
+ nodes.push_back(tpl);
+ }
+ }
+
+ return nodes;
+
+}
+
std::string Companion::NormalizeAsset(const std::string& name) const {
auto path = fs::path(this->gCurrentFile).stem().string() + "_" + name;
return path;