XPlor/libs/xassets/xcomworld.cpp

91 lines
1.5 KiB
C++
Raw Normal View History

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