XPlor/libs/xassets/xpathnodeconstant.cpp
2025-09-10 21:58:26 -04:00

76 lines
2.7 KiB
C++

#include "xpathnodeconstant.h"
XPathNodeConstant::XPathNodeConstant()
: XAsset()
, mType(XNodeType::NODE_BADNODE)
, mSpawnflags(0)
, mTargetname(0)
, mScriptLinkName(0)
, mScriptNoteworthy(0)
, mTarget(0)
, mAnimscript(0)
, mAnimscriptfunc(0)
, mOrigin()
, mAngle(0.0f)
, mForward()
, mRadius(0.0f)
, mMinUseDistSq(0.0f)
, mOverlapNode()
, mChainId(0)
, mChainDepth(0)
, mChainParent(0)
, mTotalLinkCount(0)
, mLinks()
{
SetName("Path Node Constant");
}
XPathNodeConstant::~XPathNodeConstant()
{
}
void XPathNodeConstant::ParseData(XDataStream *aStream) {
if (GetPtr() == -1) {
mType = (XNodeType)aStream->ParseInt32(QString("%1 node type").arg(GetName()));
mSpawnflags = aStream->ParseUInt16(QString("%1 spawnflags").arg(GetName()));
mTargetname = aStream->ParseUInt16(QString("%1 targetname").arg(GetName()));
mScriptLinkName = aStream->ParseUInt16(QString("%1 script link name").arg(GetName()));
mScriptNoteworthy = aStream->ParseUInt16(QString("%1 script noteworthy").arg(GetName()));
mTarget = aStream->ParseUInt16(QString("%1 target").arg(GetName()));
mAnimscript = aStream->ParseUInt16(QString("%1 animscript").arg(GetName()));
mAnimscriptfunc = aStream->ParseInt32(QString("%1 animscript func").arg(GetName()));
mOrigin.setX(aStream->ParseSingle(QString("%1 origin x").arg(GetName())));
mOrigin.setY(aStream->ParseSingle(QString("%1 origin y").arg(GetName())));
mOrigin.setZ(aStream->ParseSingle(QString("%1 origin z").arg(GetName())));
mAngle = aStream->ParseSingle(QString("%1 angle").arg(GetName()));
mForward.setX(aStream->ParseSingle(QString("%1 forward x").arg(GetName())));
mForward.setY(aStream->ParseSingle(QString("%1 forward y").arg(GetName())));
mRadius = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mMinUseDistSq = aStream->ParseSingle(QString("%1 min use dist sq").arg(GetName()));
mOverlapNode.setX(aStream->ParseSingle(QString("%1 overlap node x").arg(GetName())));
mOverlapNode.setY(aStream->ParseSingle(QString("%1 overlap node y").arg(GetName())));
mChainId = aStream->ParseInt16(QString("%1 chain id").arg(GetName()));
mChainDepth = aStream->ParseInt16(QString("%1 chain depth").arg(GetName()));
mChainParent = aStream->ParseInt16(QString("%1 chain parent").arg(GetName()));
mTotalLinkCount = aStream->ParseUInt16(QString("%1 total link count").arg(GetName()));
for (quint16 i = 0; i < mTotalLinkCount; ++i) {
XPathLink newLink;
newLink.ParseData(aStream);
mLinks.append(newLink);
}
}
}
void XPathNodeConstant::Clear()
{
}