Fixed Solar and Zoness

This commit is contained in:
KiritoDv
2024-04-07 18:01:42 -06:00
parent 1507de1243
commit f9449fa185
9 changed files with 42 additions and 48 deletions
@@ -23,90 +23,77 @@ std::shared_ptr<LUS::IResource> ResourceFactoryBinaryGenericArrayV0::ReadResourc
switch (static_cast<ArrayType>(type)) {
case ArrayType::u8: {
auto x = reader->ReadUByte();
arr->mData.emplace_back(x);
arr->mData.push_back(x);
break;
}
case ArrayType::s8: {
auto x = reader->ReadInt8();
arr->mData.emplace_back(x);
arr->mData.push_back(x);
break;
}
case ArrayType::u16: {
auto x = reader->ReadUInt16();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 2, std::back_inserter(arr->mData));
break;
}
case ArrayType::s16: {
auto x = reader->ReadInt16();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 2, std::back_inserter(arr->mData));
break;
}
case ArrayType::u32: {
auto x = reader->ReadUInt32();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 4, std::back_inserter(arr->mData));
break;
}
case ArrayType::s32: {
auto x = reader->ReadInt32();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 4, std::back_inserter(arr->mData));
break;
}
case ArrayType::u64: {
auto x = reader->ReadUInt64();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 8, std::back_inserter(arr->mData));
break;
}
case ArrayType::f32: {
auto x = reader->ReadFloat();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 4, std::back_inserter(arr->mData));
break;
}
case ArrayType::f64: {
auto x = reader->ReadDouble();
arr->mData.emplace_back(x);
std::copy_n(reinterpret_cast<uint8_t*>(&x), 8, std::back_inserter(arr->mData));
break;
}
case ArrayType::Vec2f: {
auto x = reader->ReadFloat();
auto y = reader->ReadFloat();
arr->mData.emplace_back(Vec2f(x, y));
Vec2f vec(reader->ReadFloat(), reader->ReadFloat());
std::copy_n(reinterpret_cast<uint8_t*>(&vec), sizeof(Vec2f), std::back_inserter(arr->mData));
break;
}
case ArrayType::Vec3f: {
auto x = reader->ReadFloat();
auto y = reader->ReadFloat();
auto z = reader->ReadFloat();
arr->mData.emplace_back(Vec3f(x, y, z));
Vec3f vec(reader->ReadFloat(), reader->ReadFloat(), reader->ReadFloat());
std::copy_n(reinterpret_cast<uint8_t*>(&vec), sizeof(Vec3f), std::back_inserter(arr->mData));
break;
}
case ArrayType::Vec3s: {
auto x = reader->ReadInt16();
auto y = reader->ReadInt16();
auto z = reader->ReadInt16();
arr->mData.emplace_back(Vec3s(x, y, z));
Vec3s vec(reader->ReadInt16(), reader->ReadInt16(), reader->ReadInt16());
std::copy_n(reinterpret_cast<uint8_t*>(&vec), sizeof(Vec3s), std::back_inserter(arr->mData));
break;
}
case ArrayType::Vec3i: {
auto x = reader->ReadInt32();
auto y = reader->ReadInt32();
auto z = reader->ReadInt32();
arr->mData.emplace_back(Vec3i(x, y, z));
Vec3i vec(reader->ReadInt32(), reader->ReadInt32(), reader->ReadInt32());
std::copy_n(reinterpret_cast<uint8_t*>(&vec), sizeof(Vec3i), std::back_inserter(arr->mData));
break;
}
case ArrayType::Vec4f: {
auto x = reader->ReadFloat();
auto y = reader->ReadFloat();
auto z = reader->ReadFloat();
auto w = reader->ReadFloat();
arr->mData.emplace_back(Vec4f(x, y, z, w));
Vec4f vec(reader->ReadFloat(), reader->ReadFloat(), reader->ReadFloat(), reader->ReadFloat());
std::copy_n(reinterpret_cast<uint8_t*>(&vec), sizeof(Vec4f), std::back_inserter(arr->mData));
break;
}
case ArrayType::Vec4s: {
auto x = reader->ReadInt16();
auto y = reader->ReadInt16();
auto z = reader->ReadInt16();
auto w = reader->ReadInt16();
arr->mData.emplace_back(Vec4s(x, y, z, w));
Vec4s vec(reader->ReadInt16(), reader->ReadInt16(), reader->ReadInt16(), reader->ReadInt16());
std::copy_n(reinterpret_cast<uint8_t*>(&vec), sizeof(Vec4s), std::back_inserter(arr->mData));
break;
}
}