Skip to content

Commit 5cc3635

Browse files
committed
Fix Export of PGE, Add a Test for it
1 parent cb57a17 commit 5cc3635

File tree

3 files changed

+29
-3
lines changed

3 files changed

+29
-3
lines changed

src/data/FF7Save.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,11 +385,13 @@ bool FF7Save::exportVMCFormat(const QString &fileName, FF7SaveInfo::FORMAT expor
385385
setFormat(exportFormat);
386386
if ( prev_format == FF7SaveInfo::FORMAT::VMC
387387
|| prev_format == FF7SaveInfo::FORMAT::PSP
388-
|| prev_format == FF7SaveInfo::FORMAT::PGE
389388
|| prev_format == FF7SaveInfo::FORMAT::VGS
390389
|| prev_format == FF7SaveInfo::FORMAT::DEX) {
391390
_fileHeader.replace(FF7SaveInfo::vmcHeaderOffset(exportFormat), FF7SaveInfo::fileSize(FF7SaveInfo::FORMAT::PSX)
392391
, _bufferFileHeader.mid(FF7SaveInfo::vmcHeaderOffset(prev_format), FF7SaveInfo::fileSize(FF7SaveInfo::FORMAT::PSX)));
392+
} else if (prev_format == FF7SaveInfo::FORMAT::PGE) {
393+
_fileHeader.replace(FF7SaveInfo::fileHeaderSize(FF7SaveInfo::FORMAT::PGE), FF7SaveInfo::fileHeaderSize(prev_format)
394+
, _bufferFileHeader.mid(FF7SaveInfo::vmcHeaderOffset(prev_format), FF7SaveInfo::fileHeaderSize(prev_format)));
393395
}
394396

395397
if (exportFormat != FF7SaveInfo::FORMAT::PSP) {

unittests/data/FF7Save_test.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1652,7 +1652,7 @@ void FF7Save_Test::test_worldCoordsWChoco()
16521652
QCOMPARE(ff7save->worldCoordsWchocoAngle(0), 12);
16531653
}
16541654

1655-
void FF7Save_Test::text_battleSpecialWins()
1655+
void FF7Save_Test::test_battleSpecialWins()
16561656
{
16571657
QCOMPARE(ff7save->specialBattleWins(0), 16);
16581658
ff7save->setSpecialBattleWins(0, 0xFF);
@@ -1661,4 +1661,22 @@ void FF7Save_Test::text_battleSpecialWins()
16611661
QCOMPARE(ff7save->specialBattleWins(0), 0);
16621662
}
16631663

1664+
void FF7Save_Test::test_nonff7()
1665+
{
1666+
QFile file("n7.mc");
1667+
QVERIFY(file.open(QIODevice::WriteOnly));
1668+
file.write(_fileData);
1669+
file.close();
1670+
ff7save = new FF7Save();
1671+
QVERIFY(ff7save->loadFile("n7.mc"));
1672+
QCOMPARE(ff7save->slotPsxRawData(0), _non7slotData);
1673+
QCOMPARE(ff7save->region(0), _n7region);
1674+
QCOMPARE(ff7save->format(), FF7SaveInfo::FORMAT::PGE);
1675+
}
1676+
1677+
void FF7Save_Test::test_non7Export()
1678+
{
1679+
QVERIFY(ff7save->exportFile(_saveFileNameVMC, FF7SaveInfo::FORMAT::VMC, 0));
1680+
}
1681+
16641682
QTEST_MAIN(FF7Save_Test)

0 commit comments

Comments
 (0)