From 2c10d5b9b8a9f651006e4f7b376b21ee0713b398 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 5 Jul 2011 18:36:37 +0000 Subject: Added support for a jump engine start sound, correted a typo in client.h. --- src/client/soundext.cc | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/client/soundext.cc') diff --git a/src/client/soundext.cc b/src/client/soundext.cc index fbed639..b07cc35 100644 --- a/src/client/soundext.cc +++ b/src/client/soundext.cc @@ -94,6 +94,7 @@ SoundExt::SoundExt(core::Entity *entity) : core::Extension(core::Extension::Soun state_impulseloopbuffer = 0; state_impulsestartbuffer = 0; state_impulsestopbuffer = 0; + state_jumpstartbuffer = 0; state_engineloopbuffer = 0; state_engineloopsource = 0; @@ -116,11 +117,12 @@ SoundExt::SoundExt(core::Entity *entity) : core::Extension(core::Extension::Soun soundname << "engines/loop" << std::setfill('0') << std::setw(2) << enginesoundset; state_thusterloopbuffer = audio::Buffers::load(soundname.str()); - // load impulse sound - // FIXME load impulse sound set + // load sound set + // FIXME alway sound set 0 for now state_impulseloopbuffer = audio::Buffers::load("engines/impulse_loop00"); state_impulsestartbuffer = audio::Buffers::load("engines/impulse_start00"); state_impulsestopbuffer = audio::Buffers::load("engines/impulse_stop00"); + state_jumpstartbuffer = audio::Buffers::load("engines/jump_start00"); state_engineloopsource = audio::Sources::get(); state_engineeventsource = audio::Sources::get(); @@ -173,6 +175,7 @@ void SoundExt::clear() state_impulseloopbuffer = 0; state_impulsestartbuffer = 0; state_impulsestopbuffer = 0; + state_jumpstartbuffer = 0; state_engineloopbuffer = 0; state_engineloopsource = 0; @@ -218,6 +221,17 @@ void SoundExt::frame(float elapsed) state_engineeventbuffer = audio::play(state_engineeventsource, state_impulsestartbuffer); } + + } else if (entity->state() == core::Entity::JumpInitiate) { + + if (state_engineeventbuffer != state_jumpstartbuffer) { + audio::update_source(state_engineeventsource, + entity->location() - entity->axis().forward() * r , + entity->axis().forward() * speed); + + state_engineeventbuffer = audio::play(state_engineeventsource, state_jumpstartbuffer); + } + } else if (entity->state() == core::Entity::Impulse) { state_engineeventbuffer = state_impulseloopbuffer; -- cgit v1.2.3