Fixed Int Literals Not Working On Linux

This commit is contained in:
GoastcraftHD 2025-04-11 23:22:54 +02:00
parent 812f7e1f91
commit ef79504e71

View File

@ -87,12 +87,11 @@ protected:
void WriteAlignedString(const std::string& string) void WriteAlignedString(const std::string& string)
{ {
auto paddingSize = ((string.size() + 1 + 0x3) & 0xFFFFFFFFFFFFFC) - (string.size() + 1); const auto paddingSize = ((string.size() + 1 + 0x3) & 0xFFFFFFFFFFFFFC) - (string.size() + 1);
auto padding = std::make_unique<uint8_t[]>(paddingSize); const auto padding = std::make_unique<uint8_t[]>(static_cast<size_t>(paddingSize));
m_writer.WriteNullTerminatedString(string); m_writer.WriteNullTerminatedString(string);
m_writer.Write(reinterpret_cast<uint8_t*>(padding.get()), static_cast<uint32_t>(paddingSize));
m_writer.Write(reinterpret_cast<uint8_t*>(padding.get()), paddingSize);
} }
void WriteComment(const std::string& comment) void WriteComment(const std::string& comment)
@ -129,12 +128,12 @@ protected:
WriteComment(std::format("Game Origin: {}", m_game_name)); WriteComment(std::format("Game Origin: {}", m_game_name));
WriteComment(std::format("Zone Origin: {}", m_zone_name)); WriteComment(std::format("Zone Origin: {}", m_zone_name));
m_writer.Write(XModelBinHash::MODEL); m_writer.Write(XModelBinHash::MODEL);
WriteInt16(XModelBinHash::VERSION, version); WriteInt16(static_cast<int16_t>(XModelBinHash::VERSION), version);
} }
void WriteBones(const XModelCommon& xmodel) void WriteBones(const XModelCommon& xmodel)
{ {
WriteInt16(XModelBinHash::BONE_COUNT, xmodel.m_bones.size()); WriteInt16(static_cast<int16_t>(XModelBinHash::BONE_COUNT), static_cast<int16_t>(xmodel.m_bones.size()));
auto boneNum = 0; auto boneNum = 0;
for (const auto& bone : xmodel.m_bones) for (const auto& bone : xmodel.m_bones)
@ -153,7 +152,7 @@ protected:
boneNum = 0; boneNum = 0;
for (const auto& bone : xmodel.m_bones) for (const auto& bone : xmodel.m_bones)
{ {
WriteInt16(XModelBinHash::BONE_INDEX, boneNum); WriteInt16(static_cast<int16_t>(XModelBinHash::BONE_INDEX), boneNum);
m_writer.Write(XModelBinHash::OFFSET); m_writer.Write(XModelBinHash::OFFSET);
m_writer.Write(bone.globalOffset[0]); // X m_writer.Write(bone.globalOffset[0]); // X
@ -216,7 +215,7 @@ class XModelBinWriter7 final : public XModelBinWriterBase
else else
{ {
// Use 16 bit // Use 16 bit
WriteUInt16(XModelBinHash::VERT16_COUNT, distinctVertexValues.size()); WriteUInt16(static_cast<int16_t>(XModelBinHash::VERT16_COUNT), static_cast<uint16_t>(distinctVertexValues.size()));
} }
size_t vertexNum = 0u; size_t vertexNum = 0u;
@ -231,7 +230,7 @@ class XModelBinWriter7 final : public XModelBinWriterBase
else else
{ {
// Use 16 bit // Use 16 bit
WriteUInt16(XModelBinHash::VERT16, vertexNum); WriteUInt16(static_cast<int16_t>(XModelBinHash::VERT16), static_cast<uint16_t>(vertexNum));
} }
m_writer.Write(XModelBinHash::OFFSET); m_writer.Write(XModelBinHash::OFFSET);
@ -239,13 +238,13 @@ class XModelBinWriter7 final : public XModelBinWriterBase
m_writer.Write(vertexPos.y); m_writer.Write(vertexPos.y);
m_writer.Write(vertexPos.z); m_writer.Write(vertexPos.z);
WriteInt16(0xEA46, vertexPos.weightCount); WriteInt16(static_cast<int16_t>(XModelBinHash::VERT_WEIGHT_COUNT), static_cast<int16_t>(vertexPos.weightCount));
for (auto weightIndex = 0u; weightIndex < vertexPos.weightCount; weightIndex++) for (auto weightIndex = 0u; weightIndex < vertexPos.weightCount; weightIndex++)
{ {
const auto& weight = vertexPos.weights[weightIndex]; const auto& weight = vertexPos.weights[weightIndex];
WriteInt16(0xF1AB, weight.boneIndex); WriteInt16(static_cast<int16_t>(XModelBinHash::VERT_WEIGHT), weight.boneIndex);
m_writer.Write(weight.weight); m_writer.Write(weight.weight);
} }
vertexNum++; vertexNum++;
@ -266,7 +265,7 @@ class XModelBinWriter7 final : public XModelBinWriterBase
m_writer.Write(ClampFloatToUByte(vertex.color[3])); // A m_writer.Write(ClampFloatToUByte(vertex.color[3])); // A
m_writer.Write(static_cast<int16_t>(XModelBinHash::UV)); m_writer.Write(static_cast<int16_t>(XModelBinHash::UV));
m_writer.Write(1ui16); // Layer m_writer.Write(static_cast<uint16_t>(1)); // Layer
m_writer.Write(vertex.uv[0]); m_writer.Write(vertex.uv[0]);
m_writer.Write(vertex.uv[1]); m_writer.Write(vertex.uv[1]);
} }
@ -315,13 +314,13 @@ class XModelBinWriter7 final : public XModelBinWriterBase
} }
else else
{ {
WriteUInt16(XModelBinHash::VERT16, distinctPositions[0]); WriteUInt16(static_cast<int16_t>(XModelBinHash::VERT16), static_cast<uint16_t>(distinctPositions[0]));
WriteFaceVertex(v0); WriteFaceVertex(v0);
WriteUInt16(XModelBinHash::VERT16, distinctPositions[1]); WriteUInt16(static_cast<int16_t>(XModelBinHash::VERT16), static_cast<uint16_t>(distinctPositions[1]));
WriteFaceVertex(v1); WriteFaceVertex(v1);
WriteUInt16(XModelBinHash::VERT16, distinctPositions[2]); WriteUInt16(static_cast<int16_t>(XModelBinHash::VERT16), static_cast<uint16_t>(distinctPositions[2]));
WriteFaceVertex(v2); WriteFaceVertex(v2);
} }
} }
@ -332,7 +331,7 @@ class XModelBinWriter7 final : public XModelBinWriterBase
void WriteObjects(const XModelCommon& xmodel) void WriteObjects(const XModelCommon& xmodel)
{ {
WriteInt16(XModelBinHash::OBJECT_COUNT, xmodel.m_objects.size()); WriteInt16(XModelBinHash::OBJECT_COUNT, static_cast<int16_t>(xmodel.m_objects.size()));
size_t objectNum = 0; size_t objectNum = 0;
for (const auto& object : xmodel.m_objects) for (const auto& object : xmodel.m_objects)
@ -347,14 +346,14 @@ class XModelBinWriter7 final : public XModelBinWriterBase
void WriteMaterials(const XModelCommon& xmodel) void WriteMaterials(const XModelCommon& xmodel)
{ {
WriteInt16(XModelBinHash::MATERIAL_COUNT, xmodel.m_materials.size()); WriteInt16(static_cast<int16_t>(XModelBinHash::MATERIAL_COUNT), static_cast<int16_t>(xmodel.m_materials.size()));
size_t materialNum = 0u; size_t materialNum = 0u;
for (const auto& material : xmodel.m_materials) for (const auto& material : xmodel.m_materials)
{ {
const auto colorMapPath = "../images/" + material.colorMapName + ".dds"; const auto colorMapPath = "../images/" + material.colorMapName + ".dds";
WriteInt16(XModelBinHash::MATERIAL, materialNum); WriteInt16(static_cast<int16_t>(XModelBinHash::MATERIAL), static_cast<int16_t>(materialNum));
WriteAlignedString(material.name); WriteAlignedString(material.name);
WriteAlignedString(material.materialTypeName); WriteAlignedString(material.materialTypeName);
WriteAlignedString(colorMapPath); WriteAlignedString(colorMapPath);