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>2012-12-31 20:31:55 +0000
committerStijn Buys <ingar@osirion.org>2012-12-31 20:31:55 +0000
commita6bacb3e1722b7507c4bf3fe8191974d741d145b (patch)
treea48cd95ff21413f5e635771f782f3c757004ee05 /src/client/soundext.cc
parentba21ed38d5f90465efba225567bf8576a0848352 (diff)
Prevent an error message if a projectile sound iname s not set.
Diffstat (limited to 'src/client/soundext.cc')
-rw-r--r--src/client/soundext.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/client/soundext.cc b/src/client/soundext.cc
index 477919c..ed22612 100644
--- a/src/client/soundext.cc
+++ b/src/client/soundext.cc
@@ -133,13 +133,18 @@ SoundExt::SoundExt(core::Entity *entity) : core::Extension(core::Extension::Soun
} else if (entity->type() == core::Entity::Projectile) {
core::EntityProjectile *projectile = static_cast<core::EntityProjectile *>(entity);
-
- state_engineeventsource = audio::Sources::get();
- if (state_engineeventsource) {
+ // if the sound name is set
+ if (projectile->projectile_soundname().size()) {
state_impulsestartbuffer = audio::Buffers::load("projectiles/" + projectile->projectile_soundname());
-
- audio::update_source(state_engineeventsource, entity->location(), math::Vector3f());
- audio::play(state_engineeventsource, state_impulsestartbuffer);
+ // if the sound file was loaded
+ if (state_impulsestartbuffer) {
+ state_engineeventsource = audio::Sources::get();
+ // of the OpenAL source is available
+ if (state_engineeventsource) {
+ audio::update_source(state_engineeventsource, entity->location(), math::Vector3f());
+ audio::play(state_engineeventsource, state_impulsestartbuffer);
+ }
+ }
}
}