summaryrefslogtreecommitdiffhomepage
path: root/csv/csv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'csv/csv.cpp')
-rw-r--r--csv/csv.cpp44
1 files changed, 16 insertions, 28 deletions
diff --git a/csv/csv.cpp b/csv/csv.cpp
index 73c56aed..a1f62dc0 100644
--- a/csv/csv.cpp
+++ b/csv/csv.cpp
@@ -111,13 +111,12 @@ bool CSV::getGameData(int id, unsigned char* table, QString& gamename)
CSV csv(&file);
- int lineno = 0;
unsigned tmp[8];
unsigned fuzz[3];
QStringList gameLine;
- while (lineno++, csv.parseLine(gameLine))
+ for (int lineno = 0; csv.parseLine(gameLine); lineno++)
{
//qDebug() << "Column 0: " << gameLine.at(0); // No.
//qDebug() << "Column 1: " << gameLine.at(1); // Game Name
@@ -137,43 +136,32 @@ bool CSV::getGameData(int id, unsigned char* table, QString& gamename)
const QByteArray id_cstr = gameLine[7].toLatin1();
- if (proto == QStringLiteral("V160"))
- {
- /* nothing */
- }
- else if (id_cstr.length() != 22 ||
- sscanf(id_cstr.constData(),
- "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
- fuzz + 2,
- fuzz + 0,
- tmp + 3,
- tmp + 2,
- tmp + 1,
- tmp + 0,
- tmp + 7,
- tmp + 6,
- tmp + 5,
- tmp + 4,
- fuzz + 1) != 11)
- {
+ auto do_scanf = [&]() {
+ return sscanf(id_cstr.constData(),
+ "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
+ fuzz + 2,
+ fuzz + 0,
+ tmp + 3, tmp + 2, tmp + 1, tmp + 0,
+ tmp + 7, tmp + 6, tmp + 5, tmp + 4,
+ fuzz + 1);
+ };
+
+ if (proto == QStringLiteral("V160") || id_cstr.length() != 22)
+ (void)0;
+ else if (id_cstr.length() != 22 || do_scanf() != 11)
qDebug() << "scanf failed" << lineno;
- }
else
{
+ using uchar = unsigned char;
for (int i = 0; i < 8; i++)
- {
- using t = unsigned char;
- table[i] = t(tmp[i]);
- }
+ table[i] = uchar(tmp[i]);
}
gamename = std::move(name);
return true;
}
}
else
- {
qDebug() << "malformed csv line" << lineno;
- }
}
if (id)