Added GetDistGainFromSoundLevel native to SDKTools (bug 5066, r=dvander).

This commit is contained in:
javalia 2011-09-03 14:18:08 -04:00
parent 3c297f5d1d
commit 98e049b336
2 changed files with 18 additions and 0 deletions

View File

@ -782,6 +782,14 @@ static cell_t smn_RemoveNormalSoundHook(IPluginContext *pContext, const cell_t *
return 1;
}
static cell_t smn_GetDistGainFromSoundLevel(IPluginContext *pContext, const cell_t *params)
{
int decibel = params[1];
float distance = sp_ctof(params[2]);
return sp_ftoc(engsound->GetDistGainFromSoundLevel(soundlevel_t)decibel, distance));
}
sp_nativeinfo_t g_SoundNatives[] =
{
{"EmitAmbientSound", EmitAmbientSound},
@ -795,5 +803,6 @@ sp_nativeinfo_t g_SoundNatives[] =
{"AddNormalSoundHook", smn_AddNormalSoundHook},
{"RemoveAmbientSoundHook", smn_RemoveAmbientSoundHook},
{"RemoveNormalSoundHook", smn_RemoveNormalSoundHook},
{"GetDistGainFromSoundLevel", smn_GetDistGainFromSoundLevel},
{NULL, NULL},
};

View File

@ -257,6 +257,15 @@ native EmitSentence(const clients[],
bool:updatePos = true,
Float:soundtime = 0.0,
any:...);
/**
*Calculates gain of sound on given distance with given sound level in decibel
*
* @param soundlevel decibel of sound, like SNDLEVEL_NORMAL or integer value
* @param distance distance of sound to calculate, not meter or feet, but Source Engine`s normal Coordinate unit
* @return gain of sound. you can multiply this with original sound`s volume to calculate volume on given distance
*/
native Float:GetDistGainFromSoundLevel(soundlevel, Float:distance);
/**
* Called when an ambient sound is about to be emitted to one or more clients.