summaryrefslogtreecommitdiffstats
path: root/src/object/robotmain.cpp
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2014-02-21 14:19:58 +0100
committerkrzys-h <krzys_h@interia.pl>2014-02-21 14:19:58 +0100
commitbb2a9bcfd3f63434c4bfb01a31f2ab0d64d6260b (patch)
tree4e3978ca4911d8916bb97b127cbdade5bb68b53b /src/object/robotmain.cpp
parent2affc39b374fb83c22afb1e1deb3d82d3ab737da (diff)
downloadcolobot-bb2a9bcfd3f63434c4bfb01a31f2ab0d64d6260b.tar.gz
colobot-bb2a9bcfd3f63434c4bfb01a31f2ab0d64d6260b.tar.bz2
colobot-bb2a9bcfd3f63434c4bfb01a31f2ab0d64d6260b.zip
Added option to set pause audio in Scene
Diffstat (limited to 'src/object/robotmain.cpp')
-rw-r--r--src/object/robotmain.cpp46
1 files changed, 43 insertions, 3 deletions
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index b1cbe52..e66e2c6 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -647,6 +647,10 @@ CRobotMain::CRobotMain(CApplication* app, bool loadProfile)
m_visitArrow = 0;
m_audioTrack = "";
m_audioRepeat = true;
+ m_satcomTrack = "";
+ m_satcomRepeat = true;
+ m_editorTrack = "";
+ m_editorRepeat = true;
m_delayWriteMessage = 0;
m_selectObject = 0;
m_infoUsed = 0;
@@ -3923,6 +3927,10 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
m_terrain->FlushMaterials();
m_audioTrack = "";
m_audioRepeat = true;
+ m_satcomTrack = "";
+ m_satcomRepeat = true;
+ m_editorTrack = "";
+ m_editorRepeat = true;
m_displayText->SetDelay(1.0f);
m_displayText->SetEnable(true);
m_immediatSatCom = false;
@@ -4028,8 +4036,10 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
}
}
- if (Cmd(line, "MissionFile") && !resetObject)
+ if (Cmd(line, "MissionFile") && !resetObject) {
m_version = OpInt(line, "version", 1);
+ continue;
+ }
// TODO: Fallback to an non-localized entry
sprintf(op, "Title.%c", m_app->GetLanguageChar());
@@ -4165,15 +4175,27 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
filenameStr << "music" << std::setfill('0') << std::setw(3) << trackid << ".ogg";
m_audioTrack = filenameStr.str();
}
+ m_audioRepeat = OpInt(line, "repeat", 1);
}
else
{
char trackname[100];
- OpString(line, "filename", trackname);
+
+ OpString(line, "main", trackname);
m_audioTrack = trackname;
+ m_audioRepeat = OpInt(line, "mainRepeat", 1);
+
+ OpString(line, "satcom", trackname);
+ m_satcomTrack = trackname;
+ m_satcomRepeat = OpInt(line, "satcomRepeat", 1);
+
+ OpString(line, "editor", trackname);
+ m_editorTrack = trackname;
+ m_editorRepeat = OpInt(line, "editorRepeat", 1);
}
- m_audioRepeat = OpInt(line, "repeat", 1);
if (m_audioTrack != "") m_sound->CacheMusic(m_audioTrack);
+ if (m_satcomTrack != "") m_sound->CacheMusic(m_satcomTrack);
+ if (m_editorTrack != "") m_sound->CacheMusic(m_editorTrack);
continue;
}
@@ -7220,6 +7242,24 @@ void CRobotMain::StartMusic()
}
}
+//! Starts pause music
+void CRobotMain::StartPauseMusic(PauseType pause)
+{
+ switch(pause) {
+ case PAUSE_EDITOR:
+ m_sound->PlayPauseMusic(m_editorTrack, m_editorRepeat);
+ break;
+
+ case PAUSE_SATCOM:
+ m_sound->PlayPauseMusic(m_satcomTrack, m_satcomRepeat);
+ break;
+
+ default:
+ // Don't change music
+ break;
+ }
+}
+
//! Removes hilite and tooltip
void CRobotMain::ClearInterface()
{