42 lines
742 B
C++
42 lines
742 B
C++
|
|
#include "emitter.hpp"
|
|
#include "std.hpp"
|
|
|
|
Emitter::Emitter() {}
|
|
|
|
Emitter::Emitter(const Emitter& t) {}
|
|
|
|
Emitter::~Emitter() {}
|
|
|
|
void Emitter::beginRender(float tween)
|
|
{
|
|
Object::beginRender(tween);
|
|
|
|
vel = getRenderTform().v - pos;
|
|
pos = getRenderTform().v;
|
|
|
|
for (int k = 0; k < channels.size(); ++k) {
|
|
gxChannel* chan = channels[k];
|
|
if (!chan->isPlaying()) {
|
|
channels[k] = 0;
|
|
continue;
|
|
}
|
|
chan->set3d(&pos.x, &vel.x);
|
|
}
|
|
}
|
|
|
|
gxChannel* Emitter::emitSound(gxSound* sound)
|
|
{
|
|
gxChannel* chan = sound->play3d(&pos.x, &vel.x);
|
|
|
|
for (int k = 0; k < channels.size(); ++k) {
|
|
if (chan = channels[k])
|
|
return chan;
|
|
if (channels[k])
|
|
continue;
|
|
channels[k] = chan;
|
|
return chan;
|
|
}
|
|
channels.push_back(chan);
|
|
return chan;
|
|
} |