From 9e1cac4caa71128a87fe2800cfec650a65659916 Mon Sep 17 00:00:00 2001 From: Jamieson Christian Date: Tue, 9 Dec 2003 08:55:32 +0000 Subject: [PATCH] Changed notation involving more than one set of double colons :: MSVC6 can't handle such notation, so simplification or notation tricks must be employed to keep it happy. svn-id: r11539 --- scumm/dialogs.cpp | 22 +++++++++++++++++++--- scumm/saveload.cpp | 18 +++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/scumm/dialogs.cpp b/scumm/dialogs.cpp index a62714bfd3a..1450f3f7e14 100644 --- a/scumm/dialogs.cpp +++ b/scumm/dialogs.cpp @@ -454,7 +454,12 @@ OptionsDialog::~OptionsDialog() { } void OptionsDialog::open() { - GUI::OptionsDialog::open(); + // MSVC6 FIX (Jamieson630): + // Simple notation would be GUI::OptionsDialog::open(), but + // MSVC6 has a problem with any notation that involves + // more than one set of double colons :: + // Hence the more convoluted notation. + ((GUI::OptionsDialog *) this)->open(); // update checkboxes, too subtitlesCheckbox->setState(_scumm->_noSubtitles == false); @@ -466,7 +471,13 @@ void OptionsDialog::close() { // Subtitles ConfMan.set("nosubtitles", !subtitlesCheckbox->getState(), _domain); } - GUI::OptionsDialog::close(); + + // MSVC6 FIX (Jamieson630): + // Simple notation would be GUI::OptionsDialog::close(), but + // MSVC6 has a problem with any notation that involves + // more than one set of double colons :: + // Hence the more convoluted notation. + ((GUI::OptionsDialog *) this)->close(); // Sync the engine with the config manager @@ -497,7 +508,12 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data #endif break; default: - GUI::OptionsDialog::handleCommand(sender, cmd, data); + // MSVC6 FIX (Jamieson630): + // Simple notation would be GUI::OptionsDialog::handleCommand(), but + // MSVC6 has a problem with any notation that involves + // more than one set of double colons :: + // Hence the more convoluted notation. + ((GUI::OptionsDialog *) this)->handleCommand(sender, cmd, data); } } diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index f1160405741..f9fbdc94303 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -544,12 +544,20 @@ void ScummEngine::saveOrLoad(Serializer *s, uint32 savegameVersion) { MKEND() }; + // MSVC6 FIX (Jamieson630): + // MSVC6 has a problem with any notation that involves + // more than one set of double colons :: + // The following MKLINE macros expand to such things + // as AudioCDManager::Status::playing, and MSVC6 has + // a fit with that. This typedef simplifies the notation + // to something MSVC6 can grasp. + typedef AudioCDManager::Status AudioCDManager_Status; const SaveLoadEntry audioCDEntries[] = { - MKLINE(AudioCDManager::Status, playing, sleUint32, VER(24)), - MKLINE(AudioCDManager::Status, track, sleInt32, VER(24)), - MKLINE(AudioCDManager::Status, start, sleUint32, VER(24)), - MKLINE(AudioCDManager::Status, duration, sleUint32, VER(24)), - MKLINE(AudioCDManager::Status, numLoops, sleInt32, VER(24)), + MKLINE(AudioCDManager_Status, playing, sleUint32, VER(24)), + MKLINE(AudioCDManager_Status, track, sleInt32, VER(24)), + MKLINE(AudioCDManager_Status, start, sleUint32, VER(24)), + MKLINE(AudioCDManager_Status, duration, sleUint32, VER(24)), + MKLINE(AudioCDManager_Status, numLoops, sleInt32, VER(24)), MKEND() };