XPlor/libs/assets/xrawfile.cpp
Nicholas Johnson be8aa3691e Hey baby girl
2025-08-14 17:30:25 -04:00

93 lines
1.3 KiB
C++

#include "xrawfile.h"
XRawFile::XRawFile()
: XAsset()
, mName(new XString())
, mLength(0)
, mBuffer()
{
}
XRawFile::~XRawFile()
{
delete mName;
}
void XRawFile::SetName(XString* aName)
{
if (aName == nullptr)
{
return;
}
mName = aName;
}
void XRawFile::SetName(const QString& aName)
{
if (mName == nullptr)
{
mName = new XString();
}
mName->SetString(aName);
}
XString* XRawFile::Name() const
{
return mName;
}
void XRawFile::SetLength(int aLength)
{
mBuffer = mBuffer.chopped(aLength);
mLength = aLength;
}
int XRawFile::Length() const
{
return mLength;
}
void XRawFile::SetBuffer(const QByteArray& aBuffer)
{
mBuffer = aBuffer;
mLength = mBuffer.length();
}
QByteArray XRawFile::Buffer() const
{
return mBuffer;
}
void XRawFile::Clear()
{
mName->Clear();
mLength = 0;
mBuffer = QByteArray();
XAsset::Clear();
}
void XRawFile::ParseData(QDataStream *aStream)
{
mName->ParsePtr(aStream, false);
qint32 bufferPtr;
*aStream
>> mLength
>> bufferPtr;
if (mName == nullptr)
{
mName = new XString();
}
mName->ParseData(aStream);
if (bufferPtr)
{
mBuffer = QByteArray(mLength + 1, Qt::Uninitialized);
aStream->readRawData(mBuffer.data(), mLength + 1);
}
}