XPlor/localize.h

56 lines
1.3 KiB
C
Raw Normal View History

#ifndef LOCALIZE_H
#define LOCALIZE_H
#include <QDataStream>
#include <QString>
struct Localize {
quint32 valuePtr;
quint32 namePtr;
QString referenceStr;
QString localizedStr;
};
QDataStream &operator<<(QDataStream &out, const Localize &localize) {
out << localize.valuePtr << localize.namePtr;
// Parse gsc contents
QByteArray localizedStrData(localize.localizedStr.toUtf8());
out.writeRawData(localizedStrData.data(), localizedStrData.size());
// Parse rawfile path
QByteArray refStrData(localize.referenceStr.toUtf8());
out.writeRawData(refStrData.data(), refStrData.size());
return out;
}
QDataStream &operator>>(QDataStream &in, Localize &localize) {
// Parse value and name pointers
in >> localize.valuePtr >> localize.namePtr;
// Parse localized string
QString localizedStr;
char localizedStrChar;
in >> localizedStrChar;
while (localizedStrChar != 0) {
localizedStr += localizedStrChar;
in >> localizedStrChar;
}
localize.localizedStr = localizedStr;
// Parse localized reference name
QString refStr;
char refStrChar;
in >> refStrChar;
while (refStrChar != 0) {
refStr += refStrChar;
in >> refStrChar;
}
localize.referenceStr = refStr;
return in;
}
#endif // LOCALIZE_H