Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2011-07-07 23:23:12 +0000
committerStijn Buys <ingar@osirion.org>2011-07-07 23:23:12 +0000
commitbd421e2b53326657f2746ef0f55c08ea53d7a761 (patch)
tree3d02893a3d4de835fc0ee678afbab52747605abb /src/client/soundext.cc
parent035c602e0afc659b344d685614ec7a2e334636b6 (diff)
Added a 2 second jump drive cooldown, added jump completed sound effect, reset keyboard modifiers when resetting the video subsystem.
Diffstat (limited to 'src/client/soundext.cc')
-rw-r--r--src/client/soundext.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/client/soundext.cc b/src/client/soundext.cc
index b07cc35..5ebcd99 100644
--- a/src/client/soundext.cc
+++ b/src/client/soundext.cc
@@ -95,6 +95,7 @@ SoundExt::SoundExt(core::Entity *entity) : core::Extension(core::Extension::Soun
state_impulsestartbuffer = 0;
state_impulsestopbuffer = 0;
state_jumpstartbuffer = 0;
+ state_jumpstopbuffer = 0;
state_engineloopbuffer = 0;
state_engineloopsource = 0;
@@ -123,6 +124,7 @@ SoundExt::SoundExt(core::Entity *entity) : core::Extension(core::Extension::Soun
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_jumpstopbuffer = audio::Buffers::load("engines/jump_stop00");
state_engineloopsource = audio::Sources::get();
state_engineeventsource = audio::Sources::get();
@@ -176,6 +178,7 @@ void SoundExt::clear()
state_impulsestartbuffer = 0;
state_impulsestopbuffer = 0;
state_jumpstartbuffer = 0;
+ state_jumpstopbuffer = 0;
state_engineloopbuffer = 0;
state_engineloopsource = 0;
@@ -231,6 +234,16 @@ void SoundExt::frame(float elapsed)
state_engineeventbuffer = audio::play(state_engineeventsource, state_jumpstartbuffer);
}
+
+ } else if (entity->state() == core::Entity::Jump) {
+
+ if (state_engineeventbuffer != state_jumpstopbuffer) {
+ audio::update_source(state_engineeventsource,
+ entity->location() - entity->axis().forward() * r ,
+ entity->axis().forward() * speed);
+
+ state_engineeventbuffer = audio::play(state_engineeventsource, state_jumpstopbuffer);
+ }
} else if (entity->state() == core::Entity::Impulse) {