X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Faudio%2Fsound_manager.cpp;h=e463acca35558befa089708ef93b5b3d8407d842;hb=d8496f30a608d6827fefdfe33234acb6f4d8f0fe;hp=c7e624aee92d5e0ecc871a7ea306a0ab81821de2;hpb=9e89407a97c5dfb035192387121e6102bc45a8fc;p=supertux.git diff --git a/src/audio/sound_manager.cpp b/src/audio/sound_manager.cpp index c7e624aee..e463acca3 100644 --- a/src/audio/sound_manager.cpp +++ b/src/audio/sound_manager.cpp @@ -20,18 +20,16 @@ #include #include +#include #include #include #include "audio/sound_manager.h" + #include "audio/musicref.h" -#include "app/globals.h" -#include "app/setup.h" #include "moving_object.h" #include "resources.h" -using namespace SuperTux; - SoundManager::SoundManager() : current_music(0), m_music_enabled(true) , m_sound_enabled(true), audio_device(false) @@ -46,20 +44,21 @@ SoundManager::~SoundManager() sounds.clear(); } -void -SoundManager::play_sound(const std::string& name) +int +SoundManager::play_sound(const std::string& name,int loops) { if(!audio_device || !m_sound_enabled) - return; + return -1; Mix_Chunk* chunk = preload_sound(name); if(chunk == 0) { std::cerr << "Sound '" << name << "' not found.\n"; - return; + return -1; } - Mix_PlayChannel(-1, chunk, 0); + return Mix_PlayChannel(-1, chunk, loops); } + void SoundManager::play_sound(const std::string& sound, const MovingObject* object, const Vector& pos) @@ -85,7 +84,7 @@ SoundManager::play_sound(const std::string& sound, const Vector& pos, // TODO make sure this formula is good float distance = pos2.x- pos.x; - int loud = int(255.0/float(SCREEN_WIDTH*2) * fabsf(distance)); + int loud = int(255.0/float(1600) * fabsf(distance)); if(loud > 255) return;