mirror of
https://github.com/open-goal/jak-project
synced 2026-08-21 23:00:45 -04:00
[decompiler] setup before making IR2 type inspector (#1423)
This commit is contained in:
+23
-21
@@ -19,33 +19,35 @@ void assert_string_empty_after(const char* str, int size) {
|
||||
}
|
||||
|
||||
std::string get_object_file_name(const std::string& original_name, u8* data, int size) {
|
||||
const std::string art_group_text =
|
||||
fmt::format("/src/next/data/art-group{}/",
|
||||
versions::ART_FILE_VERSION); // todo, this may change in other games
|
||||
const std::string art_group_text_strings[] = {
|
||||
fmt::format("/src/next/data/art-group{}/", versions::jak1::ART_FILE_VERSION),
|
||||
fmt::format("/src/jak2/final/art-group{}/", versions::jak2::ART_FILE_VERSION)};
|
||||
const std::string suffix = "-ag.go";
|
||||
|
||||
int len = int(art_group_text.length());
|
||||
for (int start = 0; start < size; start++) {
|
||||
bool failed = false;
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (start + i >= size || data[start + i] != art_group_text[i]) {
|
||||
failed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!failed) {
|
||||
for (int i = 0; i < int(original_name.length()); i++) {
|
||||
if (start + len + i >= size || data[start + len + i] != original_name[i]) {
|
||||
ASSERT(false);
|
||||
for (auto& art_group_text : art_group_text_strings) {
|
||||
int len = int(art_group_text.length());
|
||||
for (int start = 0; start < size; start++) {
|
||||
bool failed = false;
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (start + i >= size || data[start + i] != art_group_text[i]) {
|
||||
failed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ASSERT(int(suffix.length()) + start + len + int(original_name.length()) < size);
|
||||
ASSERT(
|
||||
!memcmp(data + start + len + original_name.length(), suffix.data(), suffix.length() + 1));
|
||||
if (!failed) {
|
||||
for (int i = 0; i < int(original_name.length()); i++) {
|
||||
if (start + len + i >= size || data[start + len + i] != original_name[i]) {
|
||||
ASSERT(false);
|
||||
}
|
||||
}
|
||||
|
||||
return original_name + "-ag";
|
||||
ASSERT(int(suffix.length()) + start + len + int(original_name.length()) < size);
|
||||
ASSERT(!memcmp(data + start + len + original_name.length(), suffix.data(),
|
||||
suffix.length() + 1));
|
||||
|
||||
return original_name + "-ag";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user