summaryrefslogtreecommitdiff
path: root/src/Companion.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-04-13 00:26:45 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-04-13 00:26:45 -0600
commit884de3c8836368cb3592ed9dec2e117be1fbc744 (patch)
tree78b9db1b8b9e8dd14a798d883784083b40f50cdd /src/Companion.cpp
parent4513708c95af671028b11f19ae12e963a0989bd4 (diff)
Fully implemented tlut load by addr or symbol
Diffstat (limited to 'src/Companion.cpp')
-rw-r--r--src/Companion.cpp35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp
index e2e6f21..0a74658 100644
--- a/src/Companion.cpp
+++ b/src/Companion.cpp
@@ -1171,6 +1171,37 @@ std::optional<std::tuple<std::string, YAML::Node>> Companion::GetNodeByAddr(cons
return this->gAddrMap[this->gCurrentFile][addr];
}
+std::optional<ParseResultData> Companion::GetParseDataByAddr(uint32_t addr) {
+ if(!this->gParseResults.contains(this->gCurrentFile)){
+ return std::nullopt;
+ }
+
+ for(auto& result : this->gParseResults[this->gCurrentFile]){
+ if(result.data.has_value() && result.GetOffset() == addr){
+ return result;
+ }
+ }
+
+ return std::nullopt;
+}
+
+std::optional<ParseResultData> Companion::GetParseDataBySymbol(const std::string& symbol) {
+ if(!this->gParseResults.contains(this->gCurrentFile)){
+ return std::nullopt;
+ }
+
+ for(auto& result : this->gParseResults[this->gCurrentFile]){
+ auto sym = GetNode<std::string>(result.node, "symbol");
+
+ if(result.data.has_value() && sym.has_value() && sym.value() == symbol){
+ return result;
+ }
+ }
+
+ return std::nullopt;
+
+}
+
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;
@@ -1263,8 +1294,4 @@ std::optional<YAML::Node> Companion::AddAsset(YAML::Node asset) {
}
return std::nullopt;
-}
-
-void Companion::AddTlutTextureMap(std::string index, std::shared_ptr<TextureData> entry) {
- this->TlutTextureMap[index] = entry;
} \ No newline at end of file