#pragma once #include #include #include #include #include #include "common/common_types.h" #include "common/util/FileUtil.h" namespace decompiler { struct TextureDB { struct TextureData { u16 w, h; std::string name; u32 page; u32 dest = -1; std::vector rgba_bytes; u32 num_mips = -1; }; std::map textures; std::unordered_map tpage_names; std::unordered_map> texture_ids_per_level; void add_texture(u32 tpage, u32 texid, const std::vector& data, u16 w, u16 h, const std::string& tex_name, const std::string& tpage_name, const std::vector& level_names, u32 num_mips, u32 dest); void replace_textures(const fs::path& path); std::string generate_texture_dest_adjustment_table() const; }; } // namespace decompiler