Start work to support moving sound emitters. Doesn't quite work yet, don't know why' :(
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@11357 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
1574ff472d
commit
4cb8ba7e50
@ -20,6 +20,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "audio/sfx_base.hpp"
|
||||
#include "graphics/irr_driver.hpp"
|
||||
#include "graphics/material.hpp"
|
||||
#include "graphics/material_manager.hpp"
|
||||
@ -323,5 +324,10 @@ void ThreeDAnimation::update(float dt)
|
||||
btTransform trans(q,p);
|
||||
m_motion_state->setWorldTransform(trans);
|
||||
}
|
||||
|
||||
if (m_sound != NULL)
|
||||
{
|
||||
m_sound->position(xyz);
|
||||
}
|
||||
}
|
||||
} // update
|
||||
|
@ -187,6 +187,9 @@ void CutsceneWorld::update(float dt)
|
||||
rot2.setPitch(rot2.getPitch() + 90.0f);
|
||||
m_camera->setRotation(rot2.toIrrVector());
|
||||
|
||||
sfx_manager->positionListener(curr->getNode()->getPosition(),
|
||||
m_camera->getTarget() - curr->getNode()->getPosition());
|
||||
|
||||
break;
|
||||
//printf("Camera %f %f %f\n", curr->getNode()->getPosition().X, curr->getNode()->getPosition().Y, curr->getNode()->getPosition().Z);
|
||||
}
|
||||
|
@ -91,6 +91,9 @@ TrackObject::TrackObject(const XMLNode &xml_node)
|
||||
std::string rolloffTypeStr;
|
||||
xml_node.get("rolloff_type", &rolloffTypeStr );
|
||||
|
||||
float rolloff_distance = 10.0f;
|
||||
xml_node.get("distance", &rolloff_distance );
|
||||
|
||||
if (rolloffTypeStr == "inverse")
|
||||
rolloffType = AL_INVERSE_DISTANCE_CLAMPED;
|
||||
else if (rolloffTypeStr == "linear")
|
||||
@ -105,10 +108,16 @@ TrackObject::TrackObject(const XMLNode &xml_node)
|
||||
soundfile = file_manager->getSFXFile(sound);
|
||||
}
|
||||
|
||||
float rolloff_param = 1.0f;
|
||||
if (rolloffType == AL_INVERSE_DISTANCE_CLAMPED)
|
||||
rolloff_param = rolloff;
|
||||
else if (rolloffType == AL_LINEAR_DISTANCE_CLAMPED)
|
||||
rolloff_param = rolloff_distance;
|
||||
|
||||
SFXBuffer* buffer = new SFXBuffer(soundfile,
|
||||
true /* positional */,
|
||||
rolloffType,
|
||||
rolloff,
|
||||
rolloff_param,
|
||||
volume);
|
||||
buffer->load();
|
||||
|
||||
|
@ -84,7 +84,7 @@ void TrackObjectManager::add(const XMLNode &xml_node)
|
||||
}
|
||||
else if(type=="sfx-emitter")
|
||||
{
|
||||
m_all_objects.push_back(new TrackObject(xml_node));
|
||||
m_all_objects.push_back(new ThreeDAnimation(xml_node));
|
||||
}
|
||||
else if(type=="cutscene_camera")
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user