aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS3
-rw-r--r--doc/credits.tex2
-rw-r--r--engines/sky/control.cpp49
-rw-r--r--engines/sky/control.h4
-rw-r--r--engines/sky/sky.cpp3
-rw-r--r--gui/credits.h2
-rwxr-xr-xtools/credits.pl2
7 files changed, 39 insertions, 26 deletions
diff --git a/AUTHORS b/AUTHORS
index 383beb160d..2944bb66c2 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -211,7 +211,8 @@ Other contributions
Code contributions
------------------
- Ori Avtalion - Subtitle control options in the GUI
+ Ori Avtalion - Subtitle control options in the GUI; BASS GUI
+ fixes
Stuart Caie - Decoders for Simon 1 Amiga data files
Paolo Costabel - PSP port contributions
Thierry Crozat - Support for Broken Sword 1 Macintosh version
diff --git a/doc/credits.tex b/doc/credits.tex
index 28393f70ce..cb6ace8d12 100644
--- a/doc/credits.tex
+++ b/doc/credits.tex
@@ -350,7 +350,7 @@ All active team members
\item \textbf{\large Code contributions}
\begin{list}{}{\setlength{\leftmargin}{0.2cm}}
\item \begin{tabular}[h]{p{0.3\linewidth}p{0.6\linewidth}}
- Ori Avtalion & \textit{Subtitle control options in the GUI}\\
+ Ori Avtalion & \textit{Subtitle control options in the GUI; BASS GUI fixes}\\
Stuart Caie & \textit{Decoders for Simon 1 Amiga data files}\\
Paolo Costabel & \textit{PSP port contributions}\\
Thierry Crozat & \textit{Support for Broken Sword 1 Macintosh version}\\
diff --git a/engines/sky/control.cpp b/engines/sky/control.cpp
index 247befad41..172891643b 100644
--- a/engines/sky/control.cpp
+++ b/engines/sky/control.cpp
@@ -284,15 +284,12 @@ void Control::initPanel(void) {
_savePanButton = createResource( _sprites.button, 3, 0, 58, 39, 48, SAVE_GAME_PANEL, MAINPANEL);
_dosPanButton = createResource( _sprites.button, 3, 0, 58, 59, 93, QUIT_TO_DOS, MAINPANEL);
_restartPanButton = createResource( _sprites.button, 3, 0, 58, 79, 94, RESTART, MAINPANEL);
- if (SkyEngine::_systemVars.systemFlags & SF_FX_OFF)
- _fxPanButton = createResource( _sprites.button, 3, 0, 58, 99, 87, TOGGLE_FX, MAINPANEL);
- else
- _fxPanButton = createResource( _sprites.button, 3, 2, 58, 99, 86, TOGGLE_FX, MAINPANEL);
+ _fxPanButton = createResource( _sprites.button, 3, 0, 58, 99, 90, TOGGLE_FX, MAINPANEL);
if (SkyEngine::isCDVersion()) { // CD Version: Toggle text/speech
- _musicPanButton = createResource( _sprites.button, 3, 0, 58, 119, 52, TOGGLE_TEXT, MAINPANEL);
+ _musicPanButton = createResource( _sprites.button, 3, 0, 58, 119, 52, TOGGLE_TEXT, MAINPANEL);
} else { // disk version: toggle music on/off
- _musicPanButton = createResource( _sprites.button, 3, 0, 58, 119, 91, TOGGLE_MS, MAINPANEL);
+ _musicPanButton = createResource( _sprites.button, 3, 0, 58, 119, 91, TOGGLE_MS, MAINPANEL);
}
_bodge = createResource( _sprites.musicBodge, 2, 1, 98, 115, 0, DO_NOTHING, MAINPANEL);
_yesNo = createResource( _sprites.yesNo, 1, 0, -2, 40, 0, DO_NOTHING, MAINPANEL);
@@ -474,6 +471,15 @@ void Control::doControlPanel(void) {
else
_skyScreen->setPalette(60510);
+ // Set initial button lights
+ _fxPanButton->_curSprite =
+ (SkyEngine::_systemVars.systemFlags & SF_FX_OFF ? 0 : 2);
+
+ // music button only available in floppy version
+ if (!SkyEngine::isCDVersion())
+ _musicPanButton->_curSprite =
+ (SkyEngine::_systemVars.systemFlags & SF_MUS_OFF ? 0 : 2);
+
drawMainPanel();
_savedMouse = _skyMouse->giveCurrentMouseType();
@@ -573,10 +579,10 @@ uint16 Control::handleClick(ConResource *pButton) {
_mouseClicked = true;
return doMusicSlide();
case TOGGLE_FX:
- return toggleFx(pButton);
+ toggleFx(pButton);
+ return TOGGLED;
case TOGGLE_MS:
- animClick(pButton);
- toggleMusic();
+ toggleMusic(pButton);
return TOGGLED;
case TOGGLE_TEXT:
animClick(pButton);
@@ -647,6 +653,7 @@ bool Control::getYesNo(char *text) {
wantMouse = MOUSE_NORMAL;
}
_mouseClicked = false;
+ _skyMouse->spriteMouse(MOUSE_NORMAL, 0, 0);
if (dlgTextDat)
free(dlgTextDat);
delete dlgText;
@@ -708,25 +715,21 @@ uint16 Control::doSpeedSlide(void) {
return SPEED_CHANGED;
}
-uint16 Control::toggleFx(ConResource *pButton) {
+void Control::toggleFx(ConResource *pButton) {
SkyEngine::_systemVars.systemFlags ^= SF_FX_OFF;
if (SkyEngine::_systemVars.systemFlags & SF_FX_OFF) {
pButton->_curSprite = 0;
- pButton->_text = 0x7000 + 87;
_statusBar->setToText(0x7000 + 87);
} else {
pButton->_curSprite = 2;
- pButton->_text = 0x7000 + 86;
_statusBar->setToText(0x7000 + 86);
}
ConfMan.setBool("sfx_mute", (SkyEngine::_systemVars.systemFlags & SF_FX_OFF) != 0);
pButton->drawToScreen(WITH_MASK);
- buttonControl(pButton);
_system->updateScreen();
- return TOGGLED;
}
uint16 Control::toggleText(void) {
@@ -756,17 +759,23 @@ uint16 Control::toggleText(void) {
return TOGGLED;
}
-void Control::toggleMusic(void) {
+void Control::toggleMusic(ConResource *pButton) {
+ SkyEngine::_systemVars.systemFlags ^= SF_MUS_OFF;
if (SkyEngine::_systemVars.systemFlags & SF_MUS_OFF) {
- SkyEngine::_systemVars.systemFlags &= ~SF_MUS_OFF;
- _skyMusic->startMusic(SkyEngine::_systemVars.currentMusic);
- _statusBar->setToText(0x7000 + 88);
- } else {
- SkyEngine::_systemVars.systemFlags |= SF_MUS_OFF;
_skyMusic->startMusic(0);
+ pButton->_curSprite = 0;
_statusBar->setToText(0x7000 + 89);
+ } else {
+ _skyMusic->startMusic(SkyEngine::_systemVars.currentMusic);
+ pButton->_curSprite = 2;
+ _statusBar->setToText(0x7000 + 88);
}
+
+ ConfMan.setBool("music_mute", (SkyEngine::_systemVars.systemFlags & SF_MUS_OFF) != 0);
+
+ pButton->drawToScreen(WITH_MASK);
+ _system->updateScreen();
}
uint16 Control::shiftDown(uint8 speed) {
diff --git a/engines/sky/control.h b/engines/sky/control.h
index edb1b7f9d0..10cf9adc2a 100644
--- a/engines/sky/control.h
+++ b/engines/sky/control.h
@@ -203,9 +203,9 @@ private:
uint16 handleClick(ConResource *pButton);
uint16 doMusicSlide(void);
uint16 doSpeedSlide(void);
- uint16 toggleFx(ConResource *pButton);
+ void toggleFx(ConResource *pButton);
uint16 toggleText(void);
- void toggleMusic(void);
+ void toggleMusic(ConResource *pButton);
uint16 shiftDown(uint8 speed);
uint16 shiftUp(uint8 speed);
void drawTextCross(uint32 flags);
diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp
index dd8c800c29..375f484d8e 100644
--- a/engines/sky/sky.cpp
+++ b/engines/sky/sky.cpp
@@ -357,6 +357,9 @@ int SkyEngine::init() {
if (ConfMan.getBool("sfx_mute")) {
SkyEngine::_systemVars.systemFlags |= SF_FX_OFF;
}
+ if (ConfMan.getBool("music_mute")) {
+ SkyEngine::_systemVars.systemFlags |= SF_MUS_OFF;
+ }
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume"));
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
_floppyIntro = ConfMan.getBool("alt_intro");
diff --git a/gui/credits.h b/gui/credits.h
index f833133984..03f0ffad12 100644
--- a/gui/credits.h
+++ b/gui/credits.h
@@ -234,7 +234,7 @@ static const char *credits[] = {
"\\C\\c0""",
"\\C\\c1""Code contributions",
"\\C\\c0""Ori Avtalion",
-"\\C\\c2""Subtitle control options in the GUI",
+"\\C\\c2""Subtitle control options in the GUI; BASS GUI fixes",
"\\C\\c0""Stuart Caie",
"\\C\\c2""Decoders for Simon 1 Amiga data files",
"\\C\\c0""Paolo Costabel",
diff --git a/tools/credits.pl b/tools/credits.pl
index db213921ed..e7402af389 100755
--- a/tools/credits.pl
+++ b/tools/credits.pl
@@ -716,7 +716,7 @@ begin_credits("Credits");
begin_section("Code contributions");
begin_persons();
- add_person("Ori Avtalion", "salty-horse", "Subtitle control options in the GUI");
+ add_person("Ori Avtalion", "salty-horse", "Subtitle control options in the GUI; BASS GUI fixes");
add_person("Stuart Caie", "", "Decoders for Simon 1 Amiga data files");
add_person("Paolo Costabel", "", "PSP port contributions");
add_person("Thierry Crozat", "criezy", "Support for Broken Sword 1 Macintosh version");