Fix multiplayer sound keep playing
This commit is contained in:
parent
cb9a17563e
commit
6478a0714d
@ -169,9 +169,9 @@ void TrackObject::init(const XMLNode &xml_node, scene::ISceneNode* parent,
|
||||
// FIXME: at this time sound emitters are just disabled in multiplayer
|
||||
// otherwise the sounds would be constantly heard, for networking
|
||||
// the index of item needs to be same so we create and disable it
|
||||
m_presentation = new TrackObjectPresentationSound(xml_node, parent);
|
||||
if (race_manager->getNumLocalPlayers() < 2)
|
||||
m_presentation->setEnable(false);
|
||||
// in TrackObjectPresentationSound constructor
|
||||
m_presentation = new TrackObjectPresentationSound(xml_node, parent,
|
||||
race_manager->getNumLocalPlayers() > 1);
|
||||
}
|
||||
else if (type == "action-trigger")
|
||||
{
|
||||
|
@ -652,7 +652,8 @@ void TrackObjectPresentationMesh::reset()
|
||||
// ----------------------------------------------------------------------------
|
||||
TrackObjectPresentationSound::TrackObjectPresentationSound(
|
||||
const XMLNode& xml_node,
|
||||
scene::ISceneNode* parent)
|
||||
scene::ISceneNode* parent,
|
||||
bool disable_for_multiplayer)
|
||||
: TrackObjectPresentation(xml_node)
|
||||
{
|
||||
// TODO: respect 'parent' if any
|
||||
@ -680,6 +681,13 @@ TrackObjectPresentationSound::TrackObjectPresentationSound(
|
||||
float max_dist = 390.0f;
|
||||
xml_node.get("max_dist", &max_dist );
|
||||
|
||||
if (trigger_when_near)
|
||||
{
|
||||
ItemManager::get()->placeTrigger(m_init_xyz, trigger_distance, this);
|
||||
}
|
||||
|
||||
if (disable_for_multiplayer)
|
||||
return;
|
||||
// first try track dir, then global dir
|
||||
std::string soundfile = Track::getCurrentTrack()->getTrackFile(sound);
|
||||
//std::string soundfile = file_manager->getAsset(FileManager::MODEL,sound);
|
||||
@ -708,10 +716,6 @@ TrackObjectPresentationSound::TrackObjectPresentationSound(
|
||||
else
|
||||
Log::error("TrackObject", "Sound emitter object could not be created.");
|
||||
|
||||
if (trigger_when_near)
|
||||
{
|
||||
ItemManager::get()->placeTrigger(m_init_xyz, trigger_distance, this);
|
||||
}
|
||||
} // TrackObjectPresentationSound
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -286,7 +286,8 @@ private:
|
||||
public:
|
||||
|
||||
TrackObjectPresentationSound(const XMLNode& xml_node,
|
||||
scene::ISceneNode* parent);
|
||||
scene::ISceneNode* parent,
|
||||
bool disable_for_multiplayer);
|
||||
virtual ~TrackObjectPresentationSound();
|
||||
virtual void onTriggerItemApproached() OVERRIDE;
|
||||
virtual void update(float dt) OVERRIDE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user