diff options
| author | aura <nw@moneybot.cc> | 2026-02-17 23:42:09 +0100 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-02-17 23:42:09 +0100 |
| commit | 5e2eb7d67ae933b7566f1944d0bb7744da03d586 (patch) | |
| tree | 054acff1113270a9cd07933df760f3768c1b6853 /sourcemod-1.5-dev/scripting/include/sdktools_sound.inc | |
| parent | 341db13a008dc12bb22ceb50452d93d01476308c (diff) | |
move source stuff to its own folder
Diffstat (limited to 'sourcemod-1.5-dev/scripting/include/sdktools_sound.inc')
| -rw-r--r-- | sourcemod-1.5-dev/scripting/include/sdktools_sound.inc | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/sourcemod-1.5-dev/scripting/include/sdktools_sound.inc b/sourcemod-1.5-dev/scripting/include/sdktools_sound.inc deleted file mode 100644 index bfb4e3f..0000000 --- a/sourcemod-1.5-dev/scripting/include/sdktools_sound.inc +++ /dev/null @@ -1,450 +0,0 @@ -/** - * vim: set ts=4 : - * ============================================================================= - * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved. - * ============================================================================= - * - * This file is part of the SourceMod/SourcePawn SDK. - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, version 3.0, as published by the - * Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program. If not, see <http://www.gnu.org/licenses/>. - * - * As a special exception, AlliedModders LLC gives you permission to link the - * code of this program (as well as its derivative works) to "Half-Life 2," the - * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software - * by the Valve Corporation. You must obey the GNU General Public License in - * all respects for all other code used. Additionally, AlliedModders LLC grants - * this exception to all derivative works. AlliedModders LLC defines further - * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), - * or <http://www.sourcemod.net/license.php>. - * - * Version: $Id$ - */ - -#if defined _sdktools_sound_included - #endinput -#endif -#define _sdktools_sound_included - -/** - * Sound should be from the target client. - */ -#define SOUND_FROM_PLAYER -2 - -/** - * Sound should be from the listen server player. - */ -#define SOUND_FROM_LOCAL_PLAYER -1 - -/** - * Sound is from the world. - */ -#define SOUND_FROM_WORLD 0 - -/** - * Sound channels. - */ -enum -{ - SNDCHAN_REPLACE = -1, /**< Unknown */ - SNDCHAN_AUTO = 0, /**< Auto */ - SNDCHAN_WEAPON = 1, /**< Weapons */ - SNDCHAN_VOICE = 2, /**< Voices */ - SNDCHAN_ITEM = 3, /**< Items */ - SNDCHAN_BODY = 4, /**< Player? */ - SNDCHAN_STREAM = 5, /**< "Stream channel from the static or dynamic area" */ - SNDCHAN_STATIC = 6, /**< "Stream channel from the static area" */ - SNDCHAN_VOICE_BASE = 7, /**< "Channel for network voice data" */ - SNDCHAN_USER_BASE = 135 /**< Anything >= this is allocated to game code */ -}; - -/** - * Sound flags for the sound emitter system. - */ -enum -{ - SND_NOFLAGS= 0, /**< Nothing */ - SND_CHANGEVOL = 1, /**< Change sound volume */ - SND_CHANGEPITCH = 2, /**< Change sound pitch */ - SND_STOP = 3, /**< Stop the sound */ - SND_SPAWNING = 4, /**< Used in some cases for ambients */ - SND_DELAY = 5, /**< Sound has an initial delay */ - SND_STOPLOOPING = 6, /**< Stop looping all sounds on the entity */ - SND_SPEAKER = 7, /**< Being played by a mic through a speaker */ - SND_SHOULDPAUSE = 8, /**< Pause if game is paused */ -}; - -/** - * Various predefined sound levels in dB. - */ -enum -{ - SNDLEVEL_NONE = 0, /**< None */ - SNDLEVEL_RUSTLE = 20, /**< Rustling leaves */ - SNDLEVEL_WHISPER = 25, /**< Whispering */ - SNDLEVEL_LIBRARY = 30, /**< In a library */ - SNDLEVEL_FRIDGE = 45, /**< Refridgerator */ - SNDLEVEL_HOME = 50, /**< Average home (3.9 attn) */ - SNDLEVEL_CONVO = 60, /**< Normal conversation (2.0 attn) */ - SNDLEVEL_DRYER = 60, /**< Clothes dryer */ - SNDLEVEL_DISHWASHER = 65, /**< Dishwasher/washing machine (1.5 attn) */ - SNDLEVEL_CAR = 70, /**< Car or vacuum cleaner (1.0 attn) */ - SNDLEVEL_NORMAL = 75, /**< Normal sound level */ - SNDLEVEL_TRAFFIC = 75, /**< Busy traffic (0.8 attn) */ - SNDLEVEL_MINIBIKE = 80, /**< Mini-bike, alarm clock (0.7 attn) */ - SNDLEVEL_SCREAMING = 90, /**< Screaming child (0.5 attn) */ - SNDLEVEL_TRAIN = 100, /**< Subway train, pneumatic drill (0.4 attn) */ - SNDLEVEL_HELICOPTER = 105, /**< Helicopter */ - SNDLEVEL_SNOWMOBILE = 110, /**< Snow mobile */ - SNDLEVEL_AIRCRAFT = 120, /**< Auto horn, aircraft */ - SNDLEVEL_RAIDSIREN = 130, /**< Air raid siren */ - SNDLEVEL_GUNFIRE = 140, /**< Gunshot, jet engine (0.27 attn) */ - SNDLEVEL_ROCKET = 180, /**< Rocket launching (0.2 attn) */ -}; - -#define SNDVOL_NORMAL 1.0 /**< Normal volume */ -#define SNDPITCH_NORMAL 100 /**< Normal pitch */ -#define SNDPITCH_LOW 95 /**< A low pitch */ -#define SNDPITCH_HIGH 120 /**< A high pitch */ -#define SNDATTN_NONE 0.0 /**< No attenuation */ -#define SNDATTN_NORMAL 0.8 /**< Normal attenuation */ -#define SNDATTN_STATIC 1.25 /**< Static attenuation? */ -#define SNDATTN_RICOCHET 1.5 /**< Ricochet effect */ -#define SNDATTN_IDLE 2.0 /**< Idle attenuation? */ - -/** - * Prefetches a sound. - * - * @param name Sound file name relative to the "sounds" folder. - * @noreturn - */ -native PrefetchSound(const String:name[]); - -/** - * This function is not known to work, and may crash. You should - * not use it. It is provided for backwards compatibility only. - * - * @param name Sound file name relative to the "sounds" folder. - * @return Duration in seconds. - */ -#pragma deprecated Does not work, may crash. -native Float:GetSoundDuration(const String:name[]); - -/** - * Emits an ambient sound. - * - * @param name Sound file name relative to the "sounds" folder. - * @param pos Origin of sound. - * @param entity Entity index to associate sound with. - * @param level Sound level (from 0 to 255). - * @param flags Sound flags. - * @param vol Volume (from 0.0 to 1.0). - * @param pitch Pitch (from 0 to 255). - * @param delay Play delay. - * @noreturn - */ -native EmitAmbientSound(const String:name[], - const Float:pos[3], - entity = SOUND_FROM_WORLD, - level = SNDLEVEL_NORMAL, - flags = SND_NOFLAGS, - Float:vol = SNDVOL_NORMAL, - pitch = SNDPITCH_NORMAL, - Float:delay = 0.0); - -/** - * Fades a client's volume level toward silence or a given percentage. - * - * @param client Client index. - * @param percent Fade percentage. - * @param outtime Fade out time, in seconds. - * @param holdtime Hold time, in seconds. - * @param intime Fade in time, in seconds. - * @noreturn - * @error Invalid client index or client not in game. - */ -native FadeClientVolume(client, Float:percent, Float:outtime, Float:holdtime, Float:intime); - -/** - * Stops a sound. - * - * @param entity Entity index. - * @param channel Channel number. - * @param name Sound file name relative to the "sounds" folder. - * @noreturn - */ -native StopSound(entity, channel, const String:name[]); - -/** - * Emits a sound to a list of clients. - * - * @param clients Array of client indexes. - * @param numClients Number of clients in the array. - * @param sample Sound file name relative to the "sounds" folder. - * @param entity Entity to emit from. - * @param channel Channel to emit with. - * @param level Sound level. - * @param flags Sound flags. - * @param volume Sound volume. - * @param pitch Sound pitch. - * @param speakerentity Unknown. - * @param origin Sound origin. - * @param dir Sound direction. - * @param updatePos Unknown (updates positions?) - * @param soundtime Alternate time to play sound for. - * @param ... Optional list of Float[3] arrays to specify additional origins. - * @noreturn - * @error Invalid client index. - */ -native EmitSound(const clients[], - numClients, - const String:sample[], - entity = SOUND_FROM_PLAYER, - channel = SNDCHAN_AUTO, - level = SNDLEVEL_NORMAL, - flags = SND_NOFLAGS, - Float:volume = SNDVOL_NORMAL, - pitch = SNDPITCH_NORMAL, - speakerentity = -1, - const Float:origin[3] = NULL_VECTOR, - const Float:dir[3] = NULL_VECTOR, - bool:updatePos = true, - Float:soundtime = 0.0, - any:...); - -/** - * Emits a sentence to a list of clients. - * - * @param clients Array of client indexes. - * @param numClients Number of clients in the array. - * @param sentence Sentence index (from PrecacheSenteFile). - * @param entity Entity to emit from. - * @param channel Channel to emit with. - * @param level Sound level. - * @param flags Sound flags. - * @param volume Sound volume. - * @param pitch Sound pitch. - * @param speakerentity Unknown. - * @param origin Sound origin. - * @param dir Sound direction. - * @param updatePos Unknown (updates positions?) - * @param soundtime Alternate time to play sound for. - * @param ... Optional list of Float[3] arrays to specify additional origins. - * @noreturn - * @error Invalid client index. - */ -native EmitSentence(const clients[], - numClients, - sentence, - entity, - channel = SNDCHAN_AUTO, - level = SNDLEVEL_NORMAL, - flags = SND_NOFLAGS, - Float:volume = SNDVOL_NORMAL, - pitch = SNDPITCH_NORMAL, - speakerentity = -1, - const Float:origin[3] = NULL_VECTOR, - const Float:dir[3] = NULL_VECTOR, - 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. - * - * NOTICE: all parameters can be overwritten to modify the default behavior. - * - * @param sample Sound file name relative to the "sounds" folder. - * @param entity Entity index associated to the sound. - * @param volume Volume (from 0.0 to 1.0). - * @param level Sound level (from 0 to 255). - * @param pitch Pitch (from 0 to 255). - * @param pos Origin of sound. - * @param flags Sound flags. - * @param delay Play delay. - * @return Plugin_Continue to allow the sound to be played, Plugin_Stop to block it, - * Plugin_Changed when any parameter has been modified. - */ -functag public Action:AmbientSHook(String:sample[PLATFORM_MAX_PATH], &entity, &Float:volume, &level, &pitch, Float:pos[3], &flags, &Float:delay); - -/** - * Called when a sound is going to be emitted to one or more clients. - * NOTICE: all params can be overwritten to modify the default behaviour. - * - * @param clients Array of client indexes. - * @param numClients Number of clients in the array (modify this value if you add/remove elements from the client array). - * @param sample Sound file name relative to the "sounds" folder. - * @param entity Entity emitting the sound. - * @param channel Channel emitting the sound. - * @param volume Sound volume. - * @param level Sound level. - * @param pitch Sound pitch. - * @param flags Sound flags. - * @return Plugin_Continue to allow the sound to be played, Plugin_Stop to block it, - * Plugin_Changed when any parameter has been modified. - */ -functag public Action:NormalSHook(clients[64], &numClients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags); - -/** - * Hooks all played ambient sounds. - * - * @param hook Function to use as a hook. - * @noreturn - * @error Invalid function hook. - */ -native AddAmbientSoundHook(AmbientSHook:hook); - -/** - * Hooks all played normal sounds. - * - * @param hook Function to use as a hook. - * @noreturn - * @error Invalid function hook. - */ -native AddNormalSoundHook(NormalSHook:hook); - -/** - * Unhooks all played ambient sounds. - * - * @param hook Function used for the hook. - * @noreturn - * @error Invalid function hook. - */ -native RemoveAmbientSoundHook(AmbientSHook:hook); - -/** - * Unhooks all played normal sounds. - * - * @param hook Function used for the hook. - * @noreturn - * @error Invalid function hook. - */ -native RemoveNormalSoundHook(NormalSHook:hook); - -/** - * Wrapper to emit sound to one client. - * - * @param client Client index. - * @param sample Sound file name relative to the "sounds" folder. - * @param entity Entity to emit from. - * @param channel Channel to emit with. - * @param level Sound level. - * @param flags Sound flags. - * @param volume Sound volume. - * @param pitch Sound pitch. - * @param speakerentity Unknown. - * @param origin Sound origin. - * @param dir Sound direction. - * @param updatePos Unknown (updates positions?) - * @param soundtime Alternate time to play sound for. - * @noreturn - * @error Invalid client index. - */ -stock EmitSoundToClient(client, - const String:sample[], - entity = SOUND_FROM_PLAYER, - channel = SNDCHAN_AUTO, - level = SNDLEVEL_NORMAL, - flags = SND_NOFLAGS, - Float:volume = SNDVOL_NORMAL, - pitch = SNDPITCH_NORMAL, - speakerentity = -1, - const Float:origin[3] = NULL_VECTOR, - const Float:dir[3] = NULL_VECTOR, - bool:updatePos = true, - Float:soundtime = 0.0) -{ - new clients[1]; - clients[0] = client; - /* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */ - entity = (entity == SOUND_FROM_PLAYER) ? client : entity; - EmitSound(clients, 1, sample, entity, channel, - level, flags, volume, pitch, speakerentity, - origin, dir, updatePos, soundtime); -} - -/** - * Wrapper to emit sound to all clients. - * - * @param sample Sound file name relative to the "sounds" folder. - * @param entity Entity to emit from. - * @param channel Channel to emit with. - * @param level Sound level. - * @param flags Sound flags. - * @param volume Sound volume. - * @param pitch Sound pitch. - * @param speakerentity Unknown. - * @param origin Sound origin. - * @param dir Sound direction. - * @param updatePos Unknown (updates positions?) - * @param soundtime Alternate time to play sound for. - * @noreturn - * @error Invalid client index. - */ -stock EmitSoundToAll(const String:sample[], - entity = SOUND_FROM_PLAYER, - channel = SNDCHAN_AUTO, - level = SNDLEVEL_NORMAL, - flags = SND_NOFLAGS, - Float:volume = SNDVOL_NORMAL, - pitch = SNDPITCH_NORMAL, - speakerentity = -1, - const Float:origin[3] = NULL_VECTOR, - const Float:dir[3] = NULL_VECTOR, - bool:updatePos = true, - Float:soundtime = 0.0) -{ - new clients[MaxClients]; - new total = 0; - - for (new i=1; i<=MaxClients; i++) - { - if (IsClientInGame(i)) - { - clients[total++] = i; - } - } - - if (!total) - { - return; - } - - EmitSound(clients, total, sample, entity, channel, - level, flags, volume, pitch, speakerentity, - origin, dir, updatePos, soundtime); -} - -/** - * Converts an attenuation value to a sound level. - * This function is from the HL2SDK. - * - * @param attn Attenuation value. - * @return Integer sound level. - */ -stock ATTN_TO_SNDLEVEL(Float:attn) -{ - if (attn > 0.0) - { - return RoundFloat(50.0 + (20.0 / attn)); - } - return 0; -} |
