summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2013-04-13 16:35:35 +0200
committerkrzys-h <krzys_h@interia.pl>2013-04-13 16:35:35 +0200
commit6ea0031d83db660946084a28dcf7d48eb3644a6d (patch)
treeee23e455d0b63c274717a2a3011f467e33e5cbdb /src
parentcdba398d29b78256ca12d665ccc4c31c00ec2007 (diff)
downloadcolobot-6ea0031d83db660946084a28dcf7d48eb3644a6d.tar.gz
colobot-6ea0031d83db660946084a28dcf7d48eb3644a6d.tar.bz2
colobot-6ea0031d83db660946084a28dcf7d48eb3644a6d.zip
Added loading from custom files for Audio
Diffstat (limited to 'src')
-rw-r--r--src/object/robotmain.cpp25
-rw-r--r--src/object/robotmain.h2
2 files changed, 17 insertions, 10 deletions
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index 2673d6e..f319d92 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -643,7 +643,7 @@ CRobotMain::CRobotMain(CApplication* app)
m_visitLast = EVENT_NULL;
m_visitObject = 0;
m_visitArrow = 0;
- m_audioTrack = 0;
+ m_audioTrack = "";
m_audioRepeat = true;
m_delayWriteMessage = 0;
m_selectObject = 0;
@@ -3817,7 +3817,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
FlushDisplayInfo();
m_terrain->FlushMaterials();
- m_audioTrack = 0;
+ m_audioTrack = "";
m_audioRepeat = true;
m_displayText->SetDelay(1.0f);
m_displayText->SetEnable(true);
@@ -3981,13 +3981,20 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
if (Cmd(line, "Audio") && !resetObject)
{
- m_audioTrack = OpInt(line, "track", 0);
- m_audioRepeat = OpInt(line, "repeat", 1);
- if(m_audioTrack != 0) {
- std::stringstream filename;
- filename << "music" << std::setfill('0') << std::setw(3) << m_audioTrack << ".ogg";
- m_sound->CacheMusic(filename.str());
+ if(m_version < 2) {
+ int trackid = OpInt(line, "track", 0);
+ if(trackid != 0) {
+ std::stringstream filename;
+ filename << "music" << std::setfill('0') << std::setw(3) << trackid << ".ogg";
+ m_audioTrack = filename.str();
+ }
+ } else {
+ char trackname[100];
+ OpString(line, "filename", trackname);
+ m_audioTrack = trackname;
}
+ m_audioRepeat = OpInt(line, "repeat", 1);
+ if(m_audioTrack != "") m_sound->CacheMusic(m_audioTrack);
}
if (Cmd(line, "AudioChange") && !resetObject && m_version >= 2)
@@ -7153,7 +7160,7 @@ float CRobotMain::GetTracePrecision()
void CRobotMain::StartMusic()
{
CLogger::GetInstancePointer()->Debug("Starting music...\n");
- if (m_audioTrack != 0)
+ if (m_audioTrack != "")
{
m_sound->StopMusic();
m_sound->PlayMusic(m_audioTrack, m_audioRepeat);
diff --git a/src/object/robotmain.h b/src/object/robotmain.h
index d3b18bc..6ff53f1 100644
--- a/src/object/robotmain.h
+++ b/src/object/robotmain.h
@@ -461,7 +461,7 @@ protected:
bool m_cheatRadar;
bool m_audioRepeat;
bool m_shortCut;
- int m_audioTrack;
+ std::string m_audioTrack;
int m_delayWriteMessage;
int m_movieInfoIndex;