|
|
|
#pragma once
|
|
|
|
#include <cstddef>
|
|
|
|
#include <cstdint>
|
|
|
|
#include <obf/transform/transform.hpp>
|
|
|
|
|
|
|
|
namespace theo::recomp {
|
|
|
|
class reloc_t {
|
|
|
|
public:
|
|
|
|
explicit reloc_t(std::uint16_t offset,
|
|
|
|
std::size_t hash,
|
|
|
|
const std::string&& sym_name)
|
|
|
|
: m_offset(offset), m_hash(hash), m_sym_name(sym_name) {}
|
|
|
|
|
|
|
|
std::size_t hash() { return m_hash; }
|
|
|
|
std::string name() { return m_sym_name; }
|
|
|
|
std::uint16_t offset() { return m_offset; }
|
|
|
|
void offset(std::uint16_t offset) { m_offset = offset; }
|
|
|
|
|
|
|
|
void add_transform(
|
|
|
|
std::pair<obf::transform::transform_t*, std::uint32_t> entry) {
|
|
|
|
m_transforms.push_back(entry);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::vector<std::pair<obf::transform::transform_t*, std::uint32_t>>&
|
|
|
|
get_transforms() {
|
|
|
|
return m_transforms;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::vector<std::pair<obf::transform::transform_t*, std::uint32_t>>
|
|
|
|
m_transforms;
|
|
|
|
std::string m_sym_name;
|
|
|
|
std::size_t m_hash;
|
|
|
|
std::uint16_t m_offset;
|
|
|
|
};
|
|
|
|
} // namespace theo::recomp
|