From 1670e0dbc092429b1e5024b9cc6762203e167496 Mon Sep 17 00:00:00 2001 From: tomcw Date: Sat, 11 Dec 2021 17:57:35 +0000 Subject: [PATCH] Fix for AppleWin-Test: . don't load floppy/harddisk images (in Registry's Config) if also loading a save-state via cmd-line. . done to prevent MessageBox alerts when deleted disk images can't be found. Info: Registry contains refs to disk images, but on test clean-up, the images get deleted. --- source/Utilities.cpp | 12 ++++++++---- source/Utilities.h | 2 +- source/Windows/AppleWin.cpp | 7 +++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/source/Utilities.cpp b/source/Utilities.cpp index ff8be7d90..9562e7b79 100644 --- a/source/Utilities.cpp +++ b/source/Utilities.cpp @@ -88,8 +88,11 @@ static void LoadConfigOldJoystick_v1(const UINT uJoyNum) JoySetJoyType(uJoyNum, uNewJoyType); } -//Reads configuration from the registry entries -void LoadConfiguration(void) +// Reads configuration from the registry entries +// +// NB. loadImages=false if loading a save-state from cmd-line afterwards +// - Registry images may have been deleted from disk, so avoid the MessageBox +void LoadConfiguration(bool loadImages) { DWORD dwComputerType = 0; eApple2Type apple2Type = A2TYPE_APPLE2EENHANCED; @@ -309,7 +312,7 @@ void LoadConfiguration(void) GetCurrentDirectory(sizeof(szFilename), szFilename); SetCurrentImageDir(szFilename); - if (GetCardMgr().QuerySlot(SLOT7) == CT_GenericHDD) + if (loadImages && GetCardMgr().QuerySlot(SLOT7) == CT_GenericHDD) { dynamic_cast(GetCardMgr().GetRef(SLOT7)).LoadLastDiskImage(HARDDISK_1); dynamic_cast(GetCardMgr().GetRef(SLOT7)).LoadLastDiskImage(HARDDISK_2); @@ -323,7 +326,8 @@ void LoadConfiguration(void) GetCurrentDirectory(sizeof(szFilename), szFilename); SetCurrentImageDir(szFilename); - GetCardMgr().GetDisk2CardMgr().LoadLastDiskImage(); + if (loadImages) + GetCardMgr().GetDisk2CardMgr().LoadLastDiskImage(); // Do this after populating the slots with Disk II controller(s) DWORD dwEnhanceDisk; diff --git a/source/Utilities.h b/source/Utilities.h index 14ce50795..460e83664 100644 --- a/source/Utilities.h +++ b/source/Utilities.h @@ -4,7 +4,7 @@ #include "Harddisk.h" -void LoadConfiguration(); +void LoadConfiguration(bool loadImages); void InsertFloppyDisks(const UINT slot, LPCSTR szImageName_drive[NUM_DRIVES], bool driveConnected[NUM_DRIVES], bool& bBoot); void InsertHardDisks(LPCSTR szImageName_harddisk[NUM_HARDDISKS], bool& bBoot); void GetAppleWindowTitle(); diff --git a/source/Windows/AppleWin.cpp b/source/Windows/AppleWin.cpp index aa19a6bef..bd3fcc211 100644 --- a/source/Windows/AppleWin.cpp +++ b/source/Windows/AppleWin.cpp @@ -674,8 +674,11 @@ static void RepeatInitialization(void) // NB. g_OldAppleWinVersion needed by LoadConfiguration() -> Config_Load_Video() const bool bShowAboutDlg = CheckOldAppleWinVersion(); // Post: g_OldAppleWinVersion - LoadConfiguration(); - LogFileOutput("Main: LoadConfiguration()\n"); + { + bool loadImages = g_cmdLine.szSnapshotName == NULL; // don't load floppy/harddisk images if a snapshot is to be loaded later on + LoadConfiguration(loadImages); + LogFileOutput("Main: LoadConfiguration()\n"); + } if (g_cmdLine.model != A2TYPE_MAX) SetApple2Type(g_cmdLine.model);