summaryrefslogtreecommitdiff
path: root/ZAPD/ZAnimation.cpp
diff options
context:
space:
mode:
authorAnghelo Carvajal <angheloalf95@gmail.com>2021-05-26 20:04:02 -0400
committerGitHub <noreply@github.com>2021-05-26 20:04:02 -0400
commit4410b554e835ab7844c8eb78fd54fa3842d50f16 (patch)
tree065b8f53d6e1052c9f7ad1917c1b3b66d5eef645 /ZAPD/ZAnimation.cpp
parent769f5702a422d14bfb0a60a39319da4b4bf9ec1f (diff)
Check XML resource attributes (#126)
* register attibutes * fix array problems * cutscene problems * Set inner * fix merge * ups * Run format * small cleaning * A small blob cleanup * Simplify the logic a bit * ups * Fix merge problem * Fix merge issues * Fix merge issues * fix merge-produced type * Fix merge issues * run format and update easteregg * register ZPath attributes * dumb problems * How dumb can I be? * future proof change * empty commit * Check if Width and Height attributes of ZTexture has only decimal digits
Diffstat (limited to 'ZAPD/ZAnimation.cpp')
-rw-r--r--ZAPD/ZAnimation.cpp41
1 files changed, 9 insertions, 32 deletions
diff --git a/ZAPD/ZAnimation.cpp b/ZAPD/ZAnimation.cpp
index 749abd9..f011a29 100644
--- a/ZAPD/ZAnimation.cpp
+++ b/ZAPD/ZAnimation.cpp
@@ -36,11 +36,6 @@ void ZAnimation::Save(const fs::path& outFolder)
}
}
-void ZAnimation::ParseXML(tinyxml2::XMLElement* reader)
-{
- ZResource::ParseXML(reader);
-}
-
std::string ZAnimation::GetSourceOutputCode(const std::string& prefix)
{
return "";
@@ -120,16 +115,6 @@ std::string ZNormalAnimation::GetSourceTypeName() const
return "AnimationHeader";
}
-void ZNormalAnimation::ExtractFromXML(tinyxml2::XMLElement* reader,
- const std::vector<uint8_t>& nRawData,
- const uint32_t nRawDataIndex)
-{
- rawData = std::move(nRawData);
- rawDataIndex = nRawDataIndex;
- ParseXML(reader);
- ParseRawData();
-}
-
void ZNormalAnimation::ParseRawData()
{
ZAnimation::ParseRawData();
@@ -196,16 +181,6 @@ std::string ZLinkAnimation::GetSourceTypeName() const
return "LinkAnimationHeader";
}
-void ZLinkAnimation::ExtractFromXML(tinyxml2::XMLElement* reader,
- const std::vector<uint8_t>& nRawData,
- const uint32_t nRawDataIndex)
-{
- rawData = std::move(nRawData);
- rawDataIndex = nRawDataIndex;
- ParseXML(reader);
- ParseRawData();
-}
-
void ZLinkAnimation::ParseRawData()
{
ZAnimation::ParseRawData();
@@ -251,6 +226,7 @@ std::string TransformData::GetSourceTypeName()
ZCurveAnimation::ZCurveAnimation(ZFile* nParent) : ZAnimation(nParent)
{
+ RegisterOptionalAttribute("SkelOffset");
}
ZCurveAnimation::~ZCurveAnimation()
@@ -262,15 +238,16 @@ void ZCurveAnimation::ParseXML(tinyxml2::XMLElement* reader)
{
ZAnimation::ParseXML(reader);
- const char* skelOffsetXml = reader->Attribute("SkelOffset");
- if (skelOffsetXml == nullptr)
+ std::string skelOffsetXml = registeredAttributes.at("SkelOffset").value;
+ if (skelOffsetXml == "")
{
- throw std::runtime_error(StringHelper::Sprintf(
- "ZCurveAnimation::ParseXML: Fatal error in '%s'. Missing 'SkelOffset' attribute in "
- "ZCurveAnimation. You need to provide the offset of the curve skeleton.",
- name.c_str()));
+ throw std::runtime_error(
+ StringHelper::Sprintf("ZCurveAnimation::ParseXML: Fatal error in '%s'.\n"
+ "\t Missing 'SkelOffset' attribute in ZCurveAnimation.\n"
+ "\t You need to provide the offset of the curve skeleton.",
+ name.c_str()));
}
- skelOffset = std::strtoul(skelOffsetXml, nullptr, 0);
+ skelOffset = StringHelper::StrToL(skelOffsetXml, 0);
}
void ZCurveAnimation::ParseRawData()