mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-06 02:10:28 +00:00
TITANIC: Add support for specifying a sound is music or SFX
Apart from the CMusicRoom music, the game doesn't differentiate between music and sound effects. This adds an optional _soundType field to the CProximity class, so I can manually specify which is which
This commit is contained in:
parent
15ebf3a12a
commit
dd4fee37e3
@ -438,7 +438,8 @@ bool CGameObject::isSoundActive(int handle) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
void CGameObject::playGlobalSound(const CString &resName, int mode, bool initialMute, bool repeated, int handleIndex) {
|
||||
void CGameObject::playGlobalSound(const CString &resName, int mode, bool initialMute, bool repeated,
|
||||
int handleIndex, Audio::Mixer::SoundType soundType) {
|
||||
if (handleIndex < 0 || handleIndex > 3)
|
||||
return;
|
||||
CGameManager *gameManager = getGameManager();
|
||||
@ -463,6 +464,7 @@ void CGameObject::playGlobalSound(const CString &resName, int mode, bool initial
|
||||
CProximity prox;
|
||||
prox._channelVolume = volume;
|
||||
prox._repeated = repeated;
|
||||
prox._soundType = soundType;
|
||||
|
||||
switch (handleIndex) {
|
||||
case 0:
|
||||
|
@ -23,6 +23,7 @@
|
||||
#ifndef TITANIC_GAME_OBJECT_H
|
||||
#define TITANIC_GAME_OBJECT_H
|
||||
|
||||
#include "audio/mixer.h"
|
||||
#include "common/stream.h"
|
||||
#include "titanic/support/mouse_cursor.h"
|
||||
#include "titanic/support/credit_text.h"
|
||||
@ -234,8 +235,10 @@ protected:
|
||||
* @param initialMute If set, sound transitions in from mute over 2 seconds
|
||||
* @param repeated Flag for repeating sounds
|
||||
* @param handleIndex Slot 0 to 3 in the shared sound handle list to store the sound's handle
|
||||
* @param soundType Specifies whether the sound is a sound effect or music
|
||||
*/
|
||||
void playGlobalSound(const CString &resName, int mode, bool initialMute, bool repeated, int handleIndex);
|
||||
void playGlobalSound(const CString &resName, int mode, bool initialMute, bool repeated,
|
||||
int handleIndex, Audio::Mixer::SoundType soundType = Audio::Mixer::kMusicSoundType);
|
||||
|
||||
/**
|
||||
* Stops a sound saved in the global sound handle list
|
||||
|
@ -116,7 +116,7 @@ bool CBarBell::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
|
||||
}
|
||||
|
||||
++_fieldBC;
|
||||
return 2;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CBarBell::ActMsg(CActMsg *msg) {
|
||||
|
@ -31,7 +31,7 @@ CProximity::CProximity() : _field4(0), _channelVolume(100), _fieldC(0),
|
||||
_range(0.5), _elevation(0), _posX(0.0), _posY(0.0), _posZ(0.0),
|
||||
_hasVelocity(false), _velocityX(0), _velocityY(0), _velocityZ(0),
|
||||
_field54(0), _field58(0), _field5C(0), _freeSoundFlag(false), _endTalkerFn(nullptr),
|
||||
_talker(nullptr), _field6C(0) {
|
||||
_talker(nullptr), _field6C(0), _soundType(Audio::Mixer::kPlainSoundType) {
|
||||
}
|
||||
|
||||
} // End of namespace Titanic
|
||||
|
@ -23,6 +23,7 @@
|
||||
#ifndef TITANIC_PROXIMITY_H
|
||||
#define TITANIC_PROXIMITY_H
|
||||
|
||||
#include "audio/mixer.h"
|
||||
#include "common/scummsys.h"
|
||||
|
||||
namespace Titanic {
|
||||
@ -62,6 +63,7 @@ public:
|
||||
CEndTalkerFn _endTalkerFn;
|
||||
TTtalker *_talker;
|
||||
int _field6C;
|
||||
Audio::Mixer::SoundType _soundType;
|
||||
public:
|
||||
CProximity();
|
||||
};
|
||||
|
@ -158,6 +158,9 @@ int CSound::playSound(const CString &name, CProximity &prox) {
|
||||
return -1;
|
||||
|
||||
prox._field6C = waveFile->fn1();
|
||||
if (prox._soundType != Audio::Mixer::kPlainSoundType)
|
||||
waveFile->_soundType = prox._soundType;
|
||||
|
||||
activateSound(waveFile, prox._freeSoundFlag);
|
||||
|
||||
return _soundManager.playSound(*waveFile, prox);
|
||||
|
Loading…
x
Reference in New Issue
Block a user