GUI: warn on first import of a classic module

This commit is contained in:
tildearrow 2024-09-27 15:14:54 -05:00
parent 81dccf8dcc
commit 3a0fd28165
3 changed files with 49 additions and 1 deletions

View file

@ -2460,6 +2460,20 @@ int FurnaceGUI::load(String path) {
// warn the user
showWarning(_("you have loaded a backup!\nif you need to, please save it somewhere.\n\nDO NOT RELY ON THE BACKUP SYSTEM FOR AUTO-SAVE!\nFurnace will not save backups of backups."),GUI_WARN_GENERIC);
}
// if this is a PC module import, warn the user on the first import.
if (!tutorial.importedMOD && e->song.version==DIV_VERSION_MOD) {
showWarning(_("you have imported a ProTracker/SoundTracker/PC module!\nkeep the following in mind:\n\n- Furnace is not a replacement for your MOD player\n- import is not perfect. your song may sound different:\n - E6x pattern loop is not supported\n\nhave fun!"),GUI_WARN_IMPORT);
}
if (!tutorial.importedS3M && e->song.version==DIV_VERSION_S3M) {
showWarning(_("you have imported a Scream Tracker 3 module!\nkeep the following in mind:\n\n- Furnace is not a replacement for your S3M player\n- import is not perfect. your song may sound different:\n - OPL instruments may be detuned\n\nhave fun!"),GUI_WARN_IMPORT);
}
if (!tutorial.importedXM && e->song.version==DIV_VERSION_XM) {
showWarning(_("you have imported a FastTracker II module!\nkeep the following in mind:\n\n- Furnace is not a replacement for your XM player\n- import is not perfect. your song may sound different:\n - envelopes have been converted to macros\n - global volume changes are not supported\n\nhave fun!"),GUI_WARN_IMPORT);
}
if (!tutorial.importedIT && e->song.version==DIV_VERSION_IT) {
showWarning(_("you have imported an Impulse Tracker module!\nkeep the following in mind:\n\n- Furnace is not a replacement for your IT player\n- import is not perfect. your song may sound different:\n - envelopes have been converted to macros\n - global volume changes are not supported\n - channel volume changes are not supported\n - New Note Actions (NNA) are not supported\n\nhave fun!"),GUI_WARN_IMPORT);
}
return 0;
}
@ -6464,6 +6478,26 @@ bool FurnaceGUI::loop() {
ImGui::CloseCurrentPopup();
}
break;
case GUI_WARN_IMPORT:
if (ImGui::Button(_("Got it"))) {
switch (e->song.version) {
case DIV_VERSION_MOD:
tutorial.importedMOD=true;
break;
case DIV_VERSION_S3M:
tutorial.importedS3M=true;
break;
case DIV_VERSION_XM:
tutorial.importedXM=true;
break;
case DIV_VERSION_IT:
tutorial.importedIT=true;
break;
}
commitTutorial();
ImGui::CloseCurrentPopup();
}
break;
case GUI_WARN_GENERIC:
if (ImGui::Button(_("OK"))) {
ImGui::CloseCurrentPopup();