XPlor/libs/xassets/xcomworld.cpp
2025-09-05 18:35:17 -04:00

97 lines
1.6 KiB
C++

#include "xcomworld.h"
XComWorld::XComWorld()
: XAsset()
, mName(new XString())
, mInUse(false)
, mPrimaryLightCount(-1)
, mPrimaryLights(new XComPrimaryLightArray())
{
SetType(ASSET_TYPE_COMWORLD);
SetName("ComWorld");
}
XComWorld::~XComWorld()
{
}
void XComWorld::Clear()
{
for (int i = 0; i < mPrimaryLights->size(); i++)
{
delete mPrimaryLights->at(i);
}
delete mPrimaryLights;
delete mName;
}
void XComWorld::ParseData(QDataStream *aStream)
{
mName->ParsePtr(aStream, false);
quint32 primaryLightPtr;
*aStream
>> mInUse
>> mPrimaryLightCount
>> primaryLightPtr;
mName->ParseData(aStream);
if (primaryLightPtr)
{
if (mPrimaryLights != nullptr)
{
delete mPrimaryLights;
}
mPrimaryLights = XComPrimaryLight::ParseArray(aStream, mPrimaryLightCount);
}
}
QString XComWorld::GetName() const
{
return mName->GetString();
}
bool XComWorld::IsInUse() const
{
return mInUse;
}
quint32 XComWorld::GetPrimaryLightCount() const
{
return mPrimaryLightCount;
}
XComPrimaryLight *XComWorld::GetPrimaryLight(quint32 aIndex) const
{
return mPrimaryLights->at(aIndex);
}
XComPrimaryLightArray *XComWorld::GetPrimaryLights() const
{
return mPrimaryLights;
}
void XComWorld::SetName(const QString &aName)
{
if (aName != nullptr)
{
mName->SetString(aName);
}
}
void XComWorld::SetName(XString* aName)
{
if (aName != nullptr)
{
mName = aName;
}
}
void XComWorld::SetInUse(bool aInUse)
{
mInUse = aInUse;
}