aboutsummaryrefslogtreecommitdiff
path: root/engines/lastexpress/sound
diff options
context:
space:
mode:
authorLittleboy2012-07-14 14:02:44 -0400
committerLittleboy2012-07-14 14:26:00 -0400
commit0635d99ec74ad431146e14aba4ad07a5f9e7e221 (patch)
tree8b4958d1c162be31c93b0d700cf56192f264dfed /engines/lastexpress/sound
parent732a2c80ddde4cf0ffd1b1742f514ae940c5301d (diff)
downloadscummvm-rg350-0635d99ec74ad431146e14aba4ad07a5f9e7e221.tar.gz
scummvm-rg350-0635d99ec74ad431146e14aba4ad07a5f9e7e221.tar.bz2
scummvm-rg350-0635d99ec74ad431146e14aba4ad07a5f9e7e221.zip
LASTEXPRESS: Cleanup
- Add missing initializer/destructors - Add some const modifiers - Remove some unneeded casts - Use enumeration values in switch constructs
Diffstat (limited to 'engines/lastexpress/sound')
-rw-r--r--engines/lastexpress/sound/entry.cpp19
-rw-r--r--engines/lastexpress/sound/queue.cpp13
-rw-r--r--engines/lastexpress/sound/sound.cpp22
3 files changed, 36 insertions, 18 deletions
diff --git a/engines/lastexpress/sound/entry.cpp b/engines/lastexpress/sound/entry.cpp
index 85bb8eb479..3d2b05895f 100644
--- a/engines/lastexpress/sound/entry.cpp
+++ b/engines/lastexpress/sound/entry.cpp
@@ -44,6 +44,8 @@ namespace LastExpress {
SoundEntry::SoundEntry(LastExpressEngine *engine) : _engine(engine) {
_type = kSoundTypeNone;
+ _currentDataPtr = NULL;
+
_blockCount = 0;
_time = 0;
@@ -68,7 +70,13 @@ SoundEntry::~SoundEntry() {
// Entries that have been queued will have their streamed disposed automatically
if (!_soundStream)
SAFE_DELETE(_stream);
- delete _soundStream;
+
+ SAFE_DELETE(_soundStream);
+
+ free(_currentDataPtr);
+
+ _subtitle = NULL;
+ _stream = NULL;
// Zero passed pointers
_engine = NULL;
@@ -274,7 +282,7 @@ bool SoundEntry::updateSound() {
int l = strlen(sub) + 1;
if (l - 1 > 4)
- sub[l - 1 - 4] = 0;
+ sub[l - (1 + 4)] = 0;
showSubtitle(sub);
}
} else {
@@ -390,6 +398,10 @@ SubtitleEntry::SubtitleEntry(LastExpressEngine *engine) : _engine(engine) {
SubtitleEntry::~SubtitleEntry() {
SAFE_DELETE(_data);
+
+ // Zero-out passed pointers
+ _sound = NULL;
+ _engine = NULL;
}
void SubtitleEntry::load(Common::String filename, SoundEntry *soundEntry) {
@@ -420,6 +432,9 @@ void SubtitleEntry::loadData() {
}
void SubtitleEntry::setupAndDraw() {
+ if (!_sound)
+ error("[SubtitleEntry::setupAndDraw] Sound entry not initialized");
+
if (!_data) {
_data = new SubtitleManager(_engine->getFont());
_data->load(getArchive(_filename));
diff --git a/engines/lastexpress/sound/queue.cpp b/engines/lastexpress/sound/queue.cpp
index cfbb3091a4..5f3ab96d81 100644
--- a/engines/lastexpress/sound/queue.cpp
+++ b/engines/lastexpress/sound/queue.cpp
@@ -38,6 +38,7 @@ SoundQueue::SoundQueue(LastExpressEngine *engine) : _engine(engine) {
_subtitlesFlag = 0;
_currentSubtitle = NULL;
+ _soundCacheData = NULL;
}
SoundQueue::~SoundQueue() {
@@ -50,6 +51,7 @@ SoundQueue::~SoundQueue() {
_subtitles.clear();
_currentSubtitle = NULL;
+ SAFE_DELETE(_soundCacheData);
// Zero passed pointers
_engine = NULL;
@@ -133,7 +135,7 @@ void SoundQueue::updateQueue() {
// Original update the current entry, loading another set of samples to be decoded
- getFlags()->flag_3 = 0;
+ getFlags()->flag_3 = false;
--_flag;
}
@@ -339,13 +341,14 @@ void SoundQueue::updateSubtitles() {
return;
}
+ if (!subtitle)
+ return;
+
if (_subtitlesFlag & 1)
subtitle->drawOnScreen();
- if (subtitle) {
- subtitle->loadData();
- subtitle->setupAndDraw();
- }
+ subtitle->loadData();
+ subtitle->setupAndDraw();
}
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/sound/sound.cpp b/engines/lastexpress/sound/sound.cpp
index 17d51fe9f4..4f6a7b8f93 100644
--- a/engines/lastexpress/sound/sound.cpp
+++ b/engines/lastexpress/sound/sound.cpp
@@ -1329,23 +1329,23 @@ void SoundManager::playLoopingSound(int param) {
}
} else {
switch (getEntityData(kEntityPlayer)->car) {
- case 1:
- case 6:
+ case kCarBaggageRear:
+ case kCarBaggage:
partNumber = 4;
break;
- case 2:
- case 3:
- case 4:
- case 5:
+ case kCarKronos:
+ case kCarGreenSleeping:
+ case kCarRedSleeping:
+ case kCarRestaurant:
partNumber = 1;
break;
- case 7:
+ case kCarCoalTender:
partNumber = 5;
break;
- case 8:
+ case kCarLocomotive:
partNumber = 99;
break;
- case 9:
+ case kCar9:
partNumber = 3;
break;
default:
@@ -1356,13 +1356,13 @@ void SoundManager::playLoopingSound(int param) {
}
if (partNumber != 99)
- sprintf(tmp, "LOOP%d%c.SND", partNumber, _engine->getRandom().getRandomNumber(numLoops[partNumber] - 1) + 'A');
+ sprintf(tmp, "LOOP%d%c.SND", partNumber, (char)(_engine->getRandom().getRandomNumber(numLoops[partNumber] - 1) + 'A'));
}
if (getFlags()->flag_3)
fnameLen = 5;
- if (!entry || scumm_strnicmp(entry->getName2().c_str(), tmp, fnameLen)) {
+ if (!entry || scumm_strnicmp(entry->getName2().c_str(), tmp, (uint)fnameLen)) {
_loopingSoundDuration = _engine->getRandom().getRandomNumber(319) + 260;
if (partNumber != 99) {