From: <au...@us...> - 2013-10-09 00:14:11
|
Revision: 14222 http://sourceforge.net/p/supertuxkart/code/14222 Author: auria Date: 2013-10-09 00:14:08 +0000 (Wed, 09 Oct 2013) Log Message: ----------- New sound effect for bubblegum shield collisions Modified Paths: -------------- main/trunk/data/sfx/License.txt main/trunk/data/sfx/sfx.xml main/trunk/src/karts/kart.cpp main/trunk/src/karts/kart.hpp Added Paths: ----------- main/trunk/data/sfx/boing.ogg Modified: main/trunk/data/sfx/License.txt =================================================================== --- main/trunk/data/sfx/License.txt 2013-10-08 19:19:05 UTC (rev 14221) +++ main/trunk/data/sfx/License.txt 2013-10-09 00:14:08 UTC (rev 14222) @@ -11,6 +11,10 @@ Released under GPL vs2+ by the Supertux team +* boing + Released under the Creative Commons 0 license + By vrodge (http://www.freesound.org/people/vrodge/sounds/119518/) + * bowling_roll Released under the CC-BY-SA 3.0 license (sounds originally released under CC-Sampling+, but obtained permission from author to release them under CC-By-SA 3.0) Added: main/trunk/data/sfx/boing.ogg =================================================================== (Binary files differ) Index: main/trunk/data/sfx/boing.ogg =================================================================== --- main/trunk/data/sfx/boing.ogg 2013-10-08 19:19:05 UTC (rev 14221) +++ main/trunk/data/sfx/boing.ogg 2013-10-09 00:14:08 UTC (rev 14222) Property changes on: main/trunk/data/sfx/boing.ogg ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: main/trunk/data/sfx/sfx.xml =================================================================== --- main/trunk/data/sfx/sfx.xml 2013-10-08 19:19:05 UTC (rev 14221) +++ main/trunk/data/sfx/sfx.xml 2013-10-09 00:14:08 UTC (rev 14222) @@ -16,6 +16,7 @@ <sfx filename="anvil.ogg" volume="1.0" positional="true" rolloff="0.5" /> <sfx filename="ball_bounce.ogg" volume="0.5" positional="true" /> + <sfx filename="boing.ogg" volume="1.0" positional="true" rolloff="0.5" /> <sfx filename="bowling_roll.ogg" volume="1.0" positional="true" rolloff="0.05" /> <sfx filename="bowling_shoot.ogg" volume="1.0" positional="true" rolloff="0.05" /> <sfx filename="bubblegum_explode.ogg" volume="1.0" positional="true" rolloff="0.5" /> Modified: main/trunk/src/karts/kart.cpp =================================================================== --- main/trunk/src/karts/kart.cpp 2013-10-08 19:19:05 UTC (rev 14221) +++ main/trunk/src/karts/kart.cpp 2013-10-09 00:14:08 UTC (rev 14222) @@ -157,6 +157,7 @@ m_engine_sound = sfx_manager->createSoundSource(m_kart_properties->getEngineSfxType()); m_beep_sound = sfx_manager->createSoundSource( "horn" ); m_crash_sound = sfx_manager->createSoundSource( "crash" ); + m_boing_sound = sfx_manager->createSoundSource( "boing" ); m_goo_sound = sfx_manager->createSoundSource( "goo" ); m_skid_sound = sfx_manager->createSoundSource( "skid" ); m_terrain_sound = NULL; @@ -181,6 +182,7 @@ m_goo_sound->volume( 1.0f / factor ); m_skid_sound->volume( 1.0f / factor ); m_crash_sound->volume( 1.0f / factor ); + m_boing_sound->volume( 1.0f / factor ); m_beep_sound->volume( 1.0f / factor ); } else @@ -189,6 +191,7 @@ m_skid_sound->volume( 1.0f / race_manager->getNumberOfKarts() ); m_crash_sound->volume( 1.0f / race_manager->getNumberOfKarts() ); m_beep_sound->volume( 1.0f / race_manager->getNumberOfKarts() ); + m_boing_sound->volume( 1.0f / race_manager->getNumberOfKarts() ); } } @@ -244,6 +247,7 @@ sfx_manager->deleteSFX(m_skid_sound ); sfx_manager->deleteSFX(m_goo_sound ); sfx_manager->deleteSFX(m_beep_sound ); + sfx_manager->deleteSFX(m_boing_sound ); delete m_kart_gfx; if(m_terrain_sound) sfx_manager->deleteSFX(m_terrain_sound); if(m_previous_terrain_sound) sfx_manager->deleteSFX(m_previous_terrain_sound); @@ -1171,6 +1175,7 @@ m_engine_sound->position ( getXYZ() ); m_crash_sound->position ( getXYZ() ); m_skid_sound->position ( getXYZ() ); + m_boing_sound->position ( getXYZ() ); // Check if a kart is (nearly) upside down and not moving much --> automatic rescue if(World::getWorld()->getTrack()->isAutoRescueEnabled() && @@ -1673,7 +1678,7 @@ getAttachment()->handleCollisionWithKart(k); } m_controller->crashed(k); - crashed(); + crashed(NULL, k); } // crashed(Kart, update_attachments // ----------------------------------------------------------------------------- @@ -1813,13 +1818,15 @@ } // if(m && m->getCollisionReaction() != Material::NORMAL && // !getKartAnimation()) m_controller->crashed(m); - crashed(); + crashed(m, NULL); } // crashed(Material) // ----------------------------------------------------------------------------- /** Common code used when a kart or a material was hit. + * @param m The material collided into, or NULL if none + * @param k The kart collided into, or NULL if none */ -void Kart::crashed() +void Kart::crashed(const Material* m, AbstractKart *k) { if(World::getWorld()->getTime()-m_time_last_crash < 0.5f) return; @@ -1833,8 +1840,16 @@ { // In case that the sfx is longer than 0.5 seconds, only play it if // it's not already playing. - if(m_crash_sound->getStatus() != SFXManager::SFX_PLAYING) - m_crash_sound->play(); + if (isShielded() || (k != NULL && k->isShielded())) + { + if (m_boing_sound->getStatus() != SFXManager::SFX_PLAYING) + m_boing_sound->play(); + } + else + { + if(m_crash_sound->getStatus() != SFXManager::SFX_PLAYING) + m_crash_sound->play(); + } } m_bounce_back_time = 0.1f; Modified: main/trunk/src/karts/kart.hpp =================================================================== --- main/trunk/src/karts/kart.hpp 2013-10-08 19:19:05 UTC (rev 14221) +++ main/trunk/src/karts/kart.hpp 2013-10-09 00:14:08 UTC (rev 14222) @@ -130,7 +130,7 @@ /** Current leaning of the kart. */ float m_current_lean; - /** If > 0 then bubble gum effect is on */ + /** If > 0 then bubble gum effect is on. This is the sliding when hitting a gum on the floor, not the shield. */ float m_bubblegum_time; /** The torque to apply after hitting a bubble gum. */ @@ -211,6 +211,7 @@ SFXBase *m_previous_terrain_sound; SFXBase *m_skid_sound; SFXBase *m_goo_sound; + SFXBase *m_boing_sound; float m_time_last_crash; /** To prevent using nitro in too short bursts */ @@ -225,7 +226,7 @@ void updateEngineSFX(); void updateNitro(float dt); float getActualWheelForce(); - void crashed(); + void crashed(const Material* m, AbstractKart *k); void loadData(RaceManager::KartType type, bool animatedModel); public: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |