summaryrefslogtreecommitdiff
path: root/src/factories/TextureFactory.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-01-31 00:11:31 -0600
committerLywx <kiritodev01@gmail.com>2024-01-31 12:05:40 -0600
commit8f80b52b8daec619516c0f9b37d791a88937a549 (patch)
tree1d1f86dd3af06ea08e9ccefd0a093951cee57cf9 /src/factories/TextureFactory.cpp
parent8178d4d05d48d8faece6a16671cfdaf320d8008d (diff)
Fixed segment validation and added size fallback on decompressor
Diffstat (limited to 'src/factories/TextureFactory.cpp')
-rw-r--r--src/factories/TextureFactory.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/factories/TextureFactory.cpp b/src/factories/TextureFactory.cpp
index c08c26c..cb1b520 100644
--- a/src/factories/TextureFactory.cpp
+++ b/src/factories/TextureFactory.cpp
@@ -111,7 +111,7 @@ std::optional<std::shared_ptr<IParsedData>> TextureFactory::parse(std::vector<ui
auto width = GetSafeNode<uint32_t>(node, "width");
auto height = GetSafeNode<uint32_t>(node, "height");
auto size = GetSafeNode<uint32_t>(node, "size");
- auto offset = GetSafeNode<uint32_t>(node, "offset");
+ auto offset = Decompressor::TranslateAddr(GetSafeNode<uint32_t>(node, "offset"));
if (format.empty()) {
SPDLOG_ERROR("Texture entry at {:X} in yaml missing format node\n\
@@ -130,14 +130,14 @@ std::optional<std::shared_ptr<IParsedData>> TextureFactory::parse(std::vector<ui
std::vector<uint8_t> result;
if(type == TextureType::GrayscaleAlpha1bpp){
- result = alloc_ia8_text_from_i1((uint16_t*) segment.data, 8, 16);
+ result = alloc_ia8_text_from_i1(reinterpret_cast<uint16_t*>(segment.data), 8, 16);
} else {
result = std::vector(segment.data, segment.data + segment.size);
}
SPDLOG_INFO("Texture: {} {}x{} {}", format, width, height, size);
- SPDLOG_INFO("Offset: {}", offset);
- SPDLOG_INFO("Has MIO0: {}", Decompressor::IsCompressed(node) ? "true" : "false");
+ SPDLOG_INFO("Offset: 0x{:X}", offset);
+ SPDLOG_INFO("Is Compressed: {}", Decompressor::IsCompressed(node) ? "true" : "false");
SPDLOG_INFO("Size: {}", result.size());
if(result.size() == 0){