summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2005-04-14 02:47:42 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2005-04-14 02:47:42 +0000
commit62de779017018a6e8f89fed9e0c930fc4904f5d2 (patch)
tree2a5736be211c11104c52a692a712c9b4a3683df8
parent55707a5da749734813d03019b7f1306ddd44e872 (diff)
downloadmana-62de779017018a6e8f89fed9e0c930fc4904f5d2.tar.gz
mana-62de779017018a6e8f89fed9e0c930fc4904f5d2.tar.bz2
mana-62de779017018a6e8f89fed9e0c930fc4904f5d2.tar.xz
mana-62de779017018a6e8f89fed9e0c930fc4904f5d2.zip
Fixed pixel alignment error in playerset that was just introduced, and fixed
initialization and cleanup in sound engine (solved crash at least in case of no sound).
-rw-r--r--src/sound.cpp15
-rw-r--r--src/sound.h14
2 files changed, 23 insertions, 6 deletions
diff --git a/src/sound.cpp b/src/sound.cpp
index 98fef632..f76b6910 100644
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -25,6 +25,18 @@
#include "log.h"
#include "main.h"
+Sound::Sound():
+ installed(false),
+ items(-1)
+{
+}
+
+Sound::~Sound()
+{
+ stopMusic();
+ close();
+}
+
void Sound::init()
{
// Don't initialize sound engine twice
@@ -52,7 +64,6 @@ void Sound::init()
info();
music = NULL;
- items = -1;
installed = true;
}
@@ -219,7 +230,7 @@ void Sound::playSfx(const char *path)
void Sound::clearCache()
{
- for (SOUND_ID i = 0; i == items; i++) {
+ for (SOUND_ID i = 0; i <= items; i++) {
soundPool[i]->unload();
delete soundPool[i];
soundPool[i] = NULL;
diff --git a/src/sound.h b/src/sound.h
index c0f2f3ba..96cb8baf 100644
--- a/src/sound.h
+++ b/src/sound.h
@@ -40,6 +40,16 @@ typedef short SOUND_ID;
class Sound {
public:
/**
+ * Constructor.
+ */
+ Sound();
+
+ /**
+ * Destructor.
+ */
+ ~Sound();
+
+ /**
* Installs the sound engine.
*/
void init();
@@ -123,10 +133,6 @@ class Sound {
*/
void clearCache();
- Sound() { installed = false; }
-
- ~Sound() { stopMusic(); close(); }
-
private:
bool installed;