summaryrefslogtreecommitdiff
path: root/wii/common.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'wii/common.cpp')
-rw-r--r--wii/common.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/wii/common.cpp b/wii/common.cpp
index 8f552b3..4ea59a0 100644
--- a/wii/common.cpp
+++ b/wii/common.cpp
@@ -131,4 +131,27 @@ void WriteFixedLengthASCII(QDataStream &out, const QString str, int length) {
out.writeRawData(paddedStr.constData(), paddedStr.length());
}
+QString ReadVariableLengthASCII(QDataStream &in) {
+ qint64 savedPos = in.device()->pos();
+ int stringLength = 0;
+ char check;
+
+ in >> (quint8&)check;
+ while (check != 0) {
+ stringLength += 1;
+ in >> (quint8&)check;
+ }
+
+ // now read the string
+ char *buffer = new char[stringLength];
+
+ in.device()->seek(savedPos);
+ in.readRawData(buffer, stringLength);
+
+ QString output = QString::fromAscii(buffer, stringLength);
+
+ delete[] buffer;
+
+ return output;
+}