SL-14960 Add checkbox to turn off collision sound.

master
Mnikolenko Productengine 2021-04-06 18:24:21 +03:00
parent e355f47d28
commit 455db074b0
5 changed files with 45 additions and 0 deletions

View File

@ -559,6 +559,23 @@ LLUUID LLMaterialTable::getCollisionSoundUUID(U8 mcode, U8 mcode2)
}
}
bool LLMaterialTable::isCollisionSound(const LLUUID &uuid)
{
for (U8 i = 0; i < LL_MCODE_END; i++)
{
for (U8 j = 0; j < LL_MCODE_END; j++)
{
i &= LL_MCODE_MASK;
j &= LL_MCODE_MASK;
if (mCollisionSoundMatrix[i * LL_MCODE_END + j] == uuid)
{
return true;
}
}
}
return false;
}
LLUUID LLMaterialTable::getSlidingSoundUUID(U8 mcode, U8 mcode2)
{
mcode &= LL_MCODE_MASK;

View File

@ -128,6 +128,8 @@ public:
F32 getDamageMod(U8 mcode);
F32 getEPMod(U8 mcode);
bool isCollisionSound(const LLUUID &uuid);
LLUUID getCollisionSoundUUID(U8 mcode, U8 mcode2);
LLUUID getSlidingSoundUUID(U8 mcode, U8 mcode2);
LLUUID getRollingSoundUUID(U8 mcode, U8 mcode2);

View File

@ -3748,6 +3748,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>EnableCollisionSounds</key>
<map>
<key>Comment</key>
<string>Play sounds on collision</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>EnableMouselook</key>
<map>
<key>Comment</key>

View File

@ -38,6 +38,7 @@
#include "llfollowcamparams.h"
#include "llinventorydefines.h"
#include "lllslconstants.h"
#include "llmaterialtable.h"
#include "llregionhandle.h"
#include "llsd.h"
#include "llsdserialize.h"
@ -3857,6 +3858,11 @@ void process_sound_trigger(LLMessageSystem *msg, void **)
return;
}
if (LLMaterialTable::basic.isCollisionSound(sound_id) && !gSavedSettings.getBOOL("EnableCollisionSounds"))
{
return;
}
gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global);
}

View File

@ -259,6 +259,15 @@
<combo_box.commit_callback
function="Pref.ClickActionChange"/>
</combo_box>
<check_box
control_name="EnableCollisionSounds"
height="20"
label="Play sound on collisions"
layout="topleft"
left="83"
name="sound_on_collisions"
top_pad="10"
width="200" />
<button
height="23"
label="Other Devices"