summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpetrie911 <petrie911@yahoo.com>2024-04-05 03:19:40 -0500
committerLywx <kiritodev01@gmail.com>2024-04-05 13:37:24 -0600
commitad667b705dad3476a1ae803f23588c55baab2ee4 (patch)
treed1598ddc5b618d63067bfec5b5a8e05fc37ca88a /src
parentba30b82456eda281a8ce41a267b4ffe5b1b65edd (diff)
animation thing
Diffstat (limited to 'src')
-rw-r--r--src/factories/sf64/AnimFactory.cpp6
-rw-r--r--src/factories/sf64/AnimFactory.h4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/factories/sf64/AnimFactory.cpp b/src/factories/sf64/AnimFactory.cpp
index 5eb1e3c..1b21d92 100644
--- a/src/factories/sf64/AnimFactory.cpp
+++ b/src/factories/sf64/AnimFactory.cpp
@@ -8,7 +8,7 @@
#define NUM_JOINT(x) std::dec << std::setfill(' ') << std::setw(5) << x
#define VEC_SIZE(vec) ((vec).size() * sizeof((vec)[0]))
-SF64::AnimData::AnimData(int16_t frameCount, int16_t limbCount, uint32_t dataOffset, std::vector<int16_t> frameData, uint32_t keyOffset, std::vector<SF64::JointKey> jointKeys): mFrameCount(frameCount), mLimbCount(limbCount), mDataOffset(dataOffset), mFrameData(std::move(frameData)), mKeyOffset(keyOffset), mJointKeys(std::move(jointKeys)) {
+SF64::AnimData::AnimData(int16_t frameCount, int16_t limbCount, uint32_t dataOffset, std::vector<uint16_t> frameData, uint32_t keyOffset, std::vector<SF64::JointKey> jointKeys): mFrameCount(frameCount), mLimbCount(limbCount), mDataOffset(dataOffset), mFrameData(std::move(frameData)), mKeyOffset(keyOffset), mJointKeys(std::move(jointKeys)) {
if((mDataOffset + VEC_SIZE(mFrameData) > mKeyOffset) && (mKeyOffset + VEC_SIZE(mJointKeys) > mDataOffset)) {
SPDLOG_ERROR("SF64:ANIM error: Data and Key offsets overlap");
}
@@ -125,7 +125,7 @@ std::optional<std::shared_ptr<IParsedData>> SF64::AnimFactory::parse(std::vector
YAML::Node dataNode;
YAML::Node keyNode;
std::vector<SF64::JointKey> jointKeys;
- std::vector<int16_t> frameData;
+ std::vector<uint16_t> frameData;
auto dataCount = 1;
auto maxIndex = 0;
auto [_, segment] = Decompressor::AutoDecode(node, buffer, 0xC);
@@ -173,7 +173,7 @@ std::optional<std::shared_ptr<IParsedData>> SF64::AnimFactory::parse(std::vector
dataReader.SetEndianness(LUS::Endianness::Big);
for(int i = 0; i < dataCount; i++) {
- frameData.push_back(dataReader.ReadInt16());
+ frameData.push_back(dataReader.ReadUInt16());
}
return std::make_shared<SF64::AnimData>(frameCount, limbCount, dataOffset, frameData, keyOffset, jointKeys);
diff --git a/src/factories/sf64/AnimFactory.h b/src/factories/sf64/AnimFactory.h
index be05515..cef770d 100644
--- a/src/factories/sf64/AnimFactory.h
+++ b/src/factories/sf64/AnimFactory.h
@@ -14,10 +14,10 @@ public:
int16_t mLimbCount;
uint32_t mDataOffset;
uint32_t mKeyOffset;
- std::vector<int16_t> mFrameData;
+ std::vector<uint16_t> mFrameData;
std::vector<JointKey> mJointKeys;
- AnimData(int16_t frameCount, int16_t limbCount, uint32_t dataOffset, std::vector<int16_t> frameData, uint32_t keyOffset, std::vector<JointKey> jointKeys);
+ AnimData(int16_t frameCount, int16_t limbCount, uint32_t dataOffset, std::vector<uint16_t> frameData, uint32_t keyOffset, std::vector<JointKey> jointKeys);
};
class AnimHeaderExporter : public BaseExporter {