fixed sound playback of ship destroyed
parent
69c6e1aaef
commit
b4c046bae2
|
@ -29,6 +29,7 @@ class Model : public Engine::ModelBase {
|
||||||
void ReloadLevel();
|
void ReloadLevel();
|
||||||
void ProceedToNextLevel ();
|
void ProceedToNextLevel ();
|
||||||
int GetPlayerLives () { return mPlayerLives; };
|
int GetPlayerLives () { return mPlayerLives; };
|
||||||
|
void SetPlayerLives (int lives) { mPlayerLives = lives; };
|
||||||
unsigned int GetPoints () { return mPoints; };
|
unsigned int GetPoints () { return mPoints; };
|
||||||
std::string GetPlayerName() { return mPlayerName; };
|
std::string GetPlayerName() { return mPlayerName; };
|
||||||
void SetPlayerName(const std::string &name) {
|
void SetPlayerName(const std::string &name) {
|
||||||
|
|
|
@ -601,6 +601,7 @@ void View::DrawUiGameOver() {
|
||||||
// We do not want the background to show the remaining bits of the game
|
// We do not want the background to show the remaining bits of the game
|
||||||
GetModel()->SetGameState(GameStatePaused);
|
GetModel()->SetGameState(GameStatePaused);
|
||||||
|
|
||||||
|
PopViewState();
|
||||||
PopViewState();
|
PopViewState();
|
||||||
PushViewState(ViewStateShowHighscore);
|
PushViewState(ViewStateShowHighscore);
|
||||||
}
|
}
|
||||||
|
@ -609,6 +610,10 @@ void View::DrawUiGameOver() {
|
||||||
void View::DrawUiLevelIntro() {
|
void View::DrawUiLevelIntro() {
|
||||||
SelectFont ("console.ttf size=23");
|
SelectFont ("console.ttf size=23");
|
||||||
|
|
||||||
|
if (level_assemble_mode) {
|
||||||
|
GetModel()->SetPlayerLives(100);
|
||||||
|
}
|
||||||
|
|
||||||
stringstream level_info_stream;
|
stringstream level_info_stream;
|
||||||
level_info_stream << "Level " << GetModel()->GetCurrentLevelIndex() + 1;
|
level_info_stream << "Level " << GetModel()->GetCurrentLevelIndex() + 1;
|
||||||
|
|
||||||
|
|
|
@ -165,6 +165,9 @@ int main (int argc, char* argv[]) {
|
||||||
Engine::RunCommand ("exec config.rc");
|
Engine::RunCommand ("exec config.rc");
|
||||||
|
|
||||||
Engine::PlayMusic (Engine::GetResourceFullPath("/data/sounds/intro_music.ogg"));
|
Engine::PlayMusic (Engine::GetResourceFullPath("/data/sounds/intro_music.ogg"));
|
||||||
|
Engine::LoadSound(Engine::GetResourceFullPath("/data/sounds/thrust.wav"));
|
||||||
|
Engine::LoadSound(Engine::GetResourceFullPath("/data/sounds/ship_destroyed.wav"));
|
||||||
|
Engine::LoadSound(Engine::GetResourceFullPath("/data/sounds/rock_destroyed.wav"));
|
||||||
|
|
||||||
// load highscore list (either remote or local, depending on settings)
|
// load highscore list (either remote or local, depending on settings)
|
||||||
asteroids::GetModel()->LoadHighscoreList();
|
asteroids::GetModel()->LoadHighscoreList();
|
||||||
|
|
|
@ -48,7 +48,7 @@ int SoundBase::OnInit(int argc, char* argv[]) {
|
||||||
int audio_rate = 22050;
|
int audio_rate = 22050;
|
||||||
Uint16 audio_format = AUDIO_S16;
|
Uint16 audio_format = AUDIO_S16;
|
||||||
int audio_channels = 2;
|
int audio_channels = 2;
|
||||||
int audio_buffers = 1024;
|
int audio_buffers = 2048;
|
||||||
|
|
||||||
LogDebug("Sound Init");
|
LogDebug("Sound Init");
|
||||||
if (Mix_OpenAudio (audio_rate, audio_format, audio_channels, audio_buffers)) {
|
if (Mix_OpenAudio (audio_rate, audio_format, audio_channels, audio_buffers)) {
|
||||||
|
@ -97,6 +97,8 @@ void SoundBase::PlaySound (const std::string &sound_name) {
|
||||||
iter = mSamples.find(sound_name);
|
iter = mSamples.find(sound_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LogDebug ("Playing sound %s", sound_name.c_str());
|
||||||
|
|
||||||
iter->second->Play();
|
iter->second->Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +118,8 @@ void SoundBase::PlaySoundLoop (const std::string &sound_name, int count) {
|
||||||
iter = mSamples.find(sound_name);
|
iter = mSamples.find(sound_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LogDebug ("Playing sound loop %s", sound_name.c_str());
|
||||||
|
|
||||||
iter->second->Loop(count);
|
iter->second->Loop(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,15 +131,24 @@ void SoundBase::HaltSoundLoop (const std::string &sound_name) {
|
||||||
|
|
||||||
SampleIter iter = mSamples.find(sound_name);
|
SampleIter iter = mSamples.find(sound_name);
|
||||||
|
|
||||||
|
if (iter == mSamples.end()) {
|
||||||
|
// nothing to stop
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LogDebug ("Halting sound loop %s", sound_name.c_str());
|
||||||
|
|
||||||
|
iter->second->Stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SoundBase::LoadSound (const std::string &sound_name) {
|
||||||
|
SampleIter iter = mSamples.find(sound_name);
|
||||||
|
|
||||||
if (iter == mSamples.end()) {
|
if (iter == mSamples.end()) {
|
||||||
SoundSamplePtr sample (new SoundSample);
|
SoundSamplePtr sample (new SoundSample);
|
||||||
sample->Load(sound_name);
|
sample->Load(sound_name);
|
||||||
mSamples[sound_name] = sample;
|
mSamples[sound_name] = sample;
|
||||||
|
|
||||||
iter = mSamples.find(sound_name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter->second->Stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SoundBase::PlayMusic (const std::string &music_name) {
|
void SoundBase::PlayMusic (const std::string &music_name) {
|
||||||
|
@ -233,17 +246,26 @@ void HaltSoundLoop (const std::string &sound_name) {
|
||||||
SoundInstance->HaltSoundLoop(sound_name);
|
SoundInstance->HaltSoundLoop(sound_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LoadSound (const std::string &sound_name) {
|
||||||
|
if (!SoundInstance) {
|
||||||
|
LogError("Could not music volume: sound system not initialized!");
|
||||||
|
}
|
||||||
|
|
||||||
|
SoundInstance->LoadSound (sound_name);
|
||||||
|
}
|
||||||
|
|
||||||
void SetMusicVolume (const float &music_volume) {
|
void SetMusicVolume (const float &music_volume) {
|
||||||
if (!SoundInstance) {
|
if (!SoundInstance) {
|
||||||
LogError("Could set music volume: sound system not initialized!");
|
LogError("Could not set music volume: sound system not initialized!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SoundInstance->SetMusicVolume(music_volume);
|
SoundInstance->SetMusicVolume(music_volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
float GetMusicVolume () {
|
float GetMusicVolume () {
|
||||||
if (!SoundInstance) {
|
if (!SoundInstance) {
|
||||||
LogError("Could get music volume: sound system not initialized!");
|
LogError("Could not get music volume: sound system not initialized!");
|
||||||
}
|
}
|
||||||
|
|
||||||
return SoundInstance->GetMusicVolume();
|
return SoundInstance->GetMusicVolume();
|
||||||
|
@ -251,7 +273,7 @@ float GetMusicVolume () {
|
||||||
|
|
||||||
void SetEffectsVolume (const float &effects_volume) {
|
void SetEffectsVolume (const float &effects_volume) {
|
||||||
if (!SoundInstance) {
|
if (!SoundInstance) {
|
||||||
LogError("Could set effects volume: sound system not initialized!");
|
LogError("Could not set effects volume: sound system not initialized!");
|
||||||
}
|
}
|
||||||
|
|
||||||
SoundInstance->SetEffectsVolume(effects_volume);
|
SoundInstance->SetEffectsVolume(effects_volume);
|
||||||
|
@ -259,7 +281,7 @@ void SetEffectsVolume (const float &effects_volume) {
|
||||||
|
|
||||||
float GetEffectsVolume () {
|
float GetEffectsVolume () {
|
||||||
if (!SoundInstance) {
|
if (!SoundInstance) {
|
||||||
LogError("Could get effects volume: sound system not initialized!");
|
LogError("Could not get effects volume: sound system not initialized!");
|
||||||
}
|
}
|
||||||
|
|
||||||
return SoundInstance->GetEffectsVolume();
|
return SoundInstance->GetEffectsVolume();
|
||||||
|
|
|
@ -36,6 +36,7 @@ class SoundBase : public Module {
|
||||||
void PlaySound (const std::string &sound_name);
|
void PlaySound (const std::string &sound_name);
|
||||||
void PlaySoundLoop (const std::string &sound_name, int count);
|
void PlaySoundLoop (const std::string &sound_name, int count);
|
||||||
void HaltSoundLoop (const std::string &sound_name);
|
void HaltSoundLoop (const std::string &sound_name);
|
||||||
|
void LoadSound (const std::string &sound_name);
|
||||||
void PlayMusic (const std::string &music_name);
|
void PlayMusic (const std::string &music_name);
|
||||||
void HaltMusic ();
|
void HaltMusic ();
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,9 @@ void PlaySoundLoop (const std::string &sound_name, int count);
|
||||||
void HaltSoundLoop (const std::string &sound_name);
|
void HaltSoundLoop (const std::string &sound_name);
|
||||||
void PlayMusic (const std::string &music_name);
|
void PlayMusic (const std::string &music_name);
|
||||||
|
|
||||||
|
/** \brief Loads a sound effect for later use */
|
||||||
|
void LoadSound (const std::string &sound_name);
|
||||||
|
|
||||||
/** \brief Sets the volume of the music channel to the given value
|
/** \brief Sets the volume of the music channel to the given value
|
||||||
*
|
*
|
||||||
* \param music_value is a value from 0. (no music) to 1. (maximum volume)
|
* \param music_value is a value from 0. (no music) to 1. (maximum volume)
|
||||||
|
|
Loading…
Reference in New Issue