aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/dialogs.cpp22
-rw-r--r--scumm/saveload.cpp18
2 files changed, 32 insertions, 8 deletions
diff --git a/scumm/dialogs.cpp b/scumm/dialogs.cpp
index a62714bfd3..1450f3f7e1 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 f116040574..f9fbdc9430 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()
};