diff --git a/engines/private/funcs.cpp b/engines/private/funcs.cpp index a00034ad965..11521187c5b 100644 --- a/engines/private/funcs.cpp +++ b/engines/private/funcs.cpp @@ -330,13 +330,12 @@ void fInventory(ArgArray args) { g_private->_masks.push_front(*m); g_private->_toTake = true; - Common::String *f; if (strcmp(snd.u.str, "\"\"") != 0) { - f = new Common::String(snd.u.str); + g_private->playSound(Common::String(snd.u.str), 1, false, false); } else { - f = g_private->getTakeLeaveSound(); + g_private->playSound(g_private->getTakeLeaveSound(), 1, false, false); } - g_private->playSound(*f, 1, false, false); + g_private->inventory.push_back(*bmp); } else { if (v1.type == NAME) { @@ -396,8 +395,7 @@ void fSetModifiedFlag(ArgArray args) { void fPaperShuffleSound(ArgArray args) { assert(args.size() == 0); debugC(1, kPrivateDebugScript, "PaperShuffleSound()"); - Common::String *s = g_private->getPaperShuffleSound(); - g_private->playSound(*s, 1, false, false); + g_private->playSound(g_private->getPaperShuffleSound(), 1, false, false); } void fSoundEffect(ArgArray args) { diff --git a/engines/private/private.cpp b/engines/private/private.cpp index d1a15a8719a..5628f32ebdc 100644 --- a/engines/private/private.cpp +++ b/engines/private/private.cpp @@ -454,7 +454,7 @@ void PrivateEngine::selectExit(Common::Point mousePos) { if (cs < rs && e.nextSetting != NULL) { // TODO: check this // an item was not taken if (_toTake) { - playSound(* getLeaveSound(), 1, false, false); + playSound(getLeaveSound(), 1, false, false); _toTake = false; } @@ -487,7 +487,7 @@ void PrivateEngine::selectMask(Common::Point mousePos) { setSymbol(m.flag1, 1); // an item was taken if (_toTake) { - playSound(*getTakeSound(), 1, false, false); + playSound(getTakeSound(), 1, false, false); _toTake = false; } } @@ -981,47 +981,40 @@ bool PrivateEngine::getRandomBool(uint p) { return (r <= p); } -Common::String *PrivateEngine::getPaperShuffleSound() { +Common::String PrivateEngine::getPaperShuffleSound() { uint r = _rnd->getRandomNumber(6); - char f[32]; - snprintf(f, 32, "glsfx0%d.wav", kPaperShuffleSound[r]); - return (new Common::String(*_globalAudioPath + f)); + return Common::String::format("%sglsfx0%d.wav", _globalAudioPath->c_str(), kPaperShuffleSound[r]); } -Common::String *PrivateEngine::getTakeSound() { +Common::String PrivateEngine::getTakeSound() { if (isDemo()) - return (new Common::String(*_globalAudioPath + "mvo007.wav")); + return (Common::String(*_globalAudioPath + "mvo007.wav")); uint r = _rnd->getRandomNumber(4) + 1; - char f[32]; - snprintf(f, 32, "took%d.wav", r); - return (new Common::String(*_globalAudioPath + f)); + return Common::String::format("%stook%d.wav", _globalAudioPath->c_str(), r); } -Common::String *PrivateEngine::getTakeLeaveSound() { +Common::String PrivateEngine::getTakeLeaveSound() { uint r = _rnd->getRandomNumber(1); if (r == 0) { - return (new Common::String(*_globalAudioPath + "mvo001.wav")); + return (Common::String(*_globalAudioPath + "mvo001.wav")); } else { - return (new Common::String(*_globalAudioPath + "mvo006.wav")); + return (Common::String(*_globalAudioPath + "mvo006.wav")); } } -Common::String *PrivateEngine::getLeaveSound() { +Common::String PrivateEngine::getLeaveSound() { if (isDemo()) - return (new Common::String(*_globalAudioPath + "mvo008.wav")); + return (Common::String(*_globalAudioPath + "mvo008.wav")); uint r = _rnd->getRandomNumber(4) + 1; - - char f[32]; - snprintf(f, 32, "left%d.wav", r); - return (new Common::String(*_globalAudioPath + f)); + return Common::String::format("%sleft%d.wav", _globalAudioPath->c_str(), r); } char *PrivateEngine::getRandomPhoneClip(char *clip, int i, int j) { uint r = i + _rnd->getRandomNumber(j - i); - char *f = (char *)malloc((strlen(clip)+3)*sizeof(char)); + char *f = (char *)malloc((strlen(clip) + 3) * sizeof(char)); snprintf(f, 32, "%s%02d", clip, r); return f; } diff --git a/engines/private/private.h b/engines/private/private.h index a91ac52e43b..9c9f6ba379f 100644 --- a/engines/private/private.h +++ b/engines/private/private.h @@ -255,12 +255,12 @@ public: void stopSound(bool); bool _noStopSounds; - Common::String *getPaperShuffleSound(); + Common::String getPaperShuffleSound(); Common::String *_globalAudioPath; - Common::String *getTakeSound(); - Common::String *getTakeLeaveSound(); - Common::String *getLeaveSound(); + Common::String getTakeSound(); + Common::String getTakeLeaveSound(); + Common::String getLeaveSound(); Common::String *_sirenSound; // Radios