summaryrefslogtreecommitdiff
path: root/ZAPD/ZSkeleton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ZAPD/ZSkeleton.cpp')
-rw-r--r--ZAPD/ZSkeleton.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/ZAPD/ZSkeleton.cpp b/ZAPD/ZSkeleton.cpp
index 24950fd..ebdf645 100644
--- a/ZAPD/ZSkeleton.cpp
+++ b/ZAPD/ZSkeleton.cpp
@@ -27,12 +27,9 @@ void ZSkeleton::ParseXML(tinyxml2::XMLElement* reader)
type = ZSkeletonType::Curve;
else if (skelTypeXml != "Normal")
{
- fprintf(stderr,
- "ZSkeleton::ParseXML: Warning in '%s'.\n"
- "\t Invalid Type found: '%s'.\n"
- "\t Defaulting to 'Normal'.\n",
- name.c_str(), skelTypeXml.c_str());
- type = ZSkeletonType::Normal;
+ throw std::runtime_error(StringHelper::Sprintf("ZSkeleton::ParseXML: Error in '%s'.\n"
+ "\t Invalid Type found: '%s'.\n",
+ name.c_str(), skelTypeXml.c_str()));
}
std::string limbTypeXml = registeredAttributes.at("LimbType").value;
@@ -83,22 +80,22 @@ void ZSkeleton::DeclareReferences(const std::string& prefix)
std::string ZSkeleton::GetBodySourceCode() const
{
- std::string limbTableName = parent->GetDeclarationPtrName(limbsArrayAddress);
+ std::string limbArrayName;
+ Globals::Instance->GetSegmentedPtrName(limbsArrayAddress, parent, "", limbArrayName);
- std::string headerStr;
switch (type)
{
case ZSkeletonType::Normal:
case ZSkeletonType::Curve:
- headerStr = StringHelper::Sprintf("\n\t%s, %i\n", limbTableName.c_str(), limbCount);
- break;
+ return StringHelper::Sprintf("\n\t%s, %i\n", limbArrayName.c_str(), limbCount);
+
case ZSkeletonType::Flex:
- headerStr = StringHelper::Sprintf("\n\t{ %s, %i }, %i\n", limbTableName.c_str(), limbCount,
- dListCount);
- break;
+ return StringHelper::Sprintf("\n\t{ %s, %i }, %i\n", limbArrayName.c_str(), limbCount,
+ dListCount);
}
- return headerStr;
+ // TODO: Throw exception?
+ return "ERROR";
}
size_t ZSkeleton::GetRawDataSize() const
@@ -241,7 +238,8 @@ std::string ZLimbTable::GetBodySourceCode() const
for (size_t i = 0; i < count; i++)
{
- std::string limbName = parent->GetDeclarationPtrName(limbsAddresses[i]);
+ std::string limbName;
+ Globals::Instance->GetSegmentedPtrName(limbsAddresses[i], parent, "", limbName);
body += StringHelper::Sprintf("\t%s,", limbName.c_str());
if (i + 1 < count)