feat(iw9): file hashes

This commit is contained in:
xensik 2022-11-18 15:58:14 +01:00
parent 8c37255aeb
commit b3f502944e
3 changed files with 1533 additions and 1472 deletions

View File

@ -394,8 +394,15 @@ void disassembler::disassemble_far_call(const instruction::ptr& inst, bool threa
}
else
{
auto path = resolver::path_name(file);
if (!path.starts_with("id_"))
{
path.resize(path.size() - 4);
}
inst->data.emplace(inst->data.begin(), resolver::hash_name(name));
inst->data.emplace(inst->data.begin(), resolver::hash_name(file));
inst->data.emplace(inst->data.begin(), path);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -26,9 +26,6 @@ public:
static auto token_id(const std::string& name) -> std::uint32_t;
static auto token_name(std::uint32_t id) -> std::string;
static auto hash_id(const std::string& name) -> std::uint64_t;
static auto hash_name(std::uint64_t id) -> std::string;
static auto find_function(const std::string& name) -> bool;
static auto find_method(const std::string& name) -> bool;
@ -38,6 +35,12 @@ public:
static auto make_token(std::string_view str) -> std::string;
static auto file_data(const std::string& name) -> std::tuple<const std::string*, const char*, size_t>;
static auto fs_to_game_path(const std::filesystem::path& file) -> std::filesystem::path;
static auto path_id(const std::string& name) -> std::uint64_t;
static auto path_name(std::uint64_t id) -> std::string;
static auto hash_id(const std::string& name) -> std::uint64_t;
static auto hash_name(std::uint64_t id) -> std::string;
};
} // namespace xsk::gsc::iw9