mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
.editorconfig already enforces it but it's getting changed piecemeal in every commit. just get it done with. the script: ``` find . -type f -not -path "./.git/*" -not -path "./.vs/*" | while read -r file; do isFile=$(file -0 "$file" | cut -d $'\0' -f2) case "$isFile" in (*text*) echo "$file is text" if [[ $(tail -c 1 "$file" | wc -l) -ne 1 ]]; then echo "" >> "$file" fi ;; (*) echo "file isn't text" ;; esac done ```
469 lines
8.2 KiB
C
469 lines
8.2 KiB
C
/*
|
|
* ChangeLog:
|
|
* 11.12.2005 Lesh changed balance settings
|
|
*/
|
|
#ifndef SOUND_CONTROL_H
|
|
#define SOUND_CONTROL_H
|
|
|
|
// == Lesh modifications ======
|
|
#define FARLEFT 0
|
|
#define LEFTSIDE 96
|
|
#define MIDDLE 128
|
|
#define MIDDLEPAN 128
|
|
#define RIGHTSIDE 160
|
|
#define FARRIGHT 255
|
|
// == Lesh modifications ends =
|
|
|
|
#define LOWVOLUME 25
|
|
#define BTNVOLUME 40
|
|
#define MIDVOLUME 65
|
|
#define HIGHVOLUME 127
|
|
|
|
|
|
#define RATE_11025 0xffffffff
|
|
|
|
|
|
#define LOOPING 0
|
|
|
|
// sound group priorities (higher = more important)
|
|
#define GROUP_PLAYER 1000
|
|
#define GROUP_AMBIENT 0
|
|
|
|
|
|
#define MAX_SAMPLES 5000
|
|
|
|
|
|
// SOUNDS ENUMERATION
|
|
enum SoundDefines
|
|
{
|
|
MISS_1 = 0,
|
|
MISS_2,
|
|
MISS_3,
|
|
MISS_4,
|
|
MISS_5,
|
|
MISS_6,
|
|
MISS_7,
|
|
MISS_8,
|
|
MISS_G1,
|
|
MISS_G2,
|
|
MISS_KNIFE,
|
|
FALL_1,
|
|
FALL_2,
|
|
FALL_TO_GROUND_1,
|
|
FALL_TO_GROUND_2,
|
|
FALL_TO_GROUND_3,
|
|
HEAVY_FALL_1,
|
|
BODY_SPLAT_1,
|
|
GLASS_SHATTER1,
|
|
GLASS_SHATTER2,
|
|
DROPEN_1,
|
|
DROPEN_2,
|
|
DROPEN_3,
|
|
DRCLOSE_1,
|
|
DRCLOSE_2,
|
|
UNLOCK_DOOR_1,
|
|
KICKIN_DOOR,
|
|
BREAK_LOCK,
|
|
PICKING_LOCK,
|
|
|
|
GARAGE_DOOR_OPEN,
|
|
GARAGE_DOOR_CLOSE,
|
|
ELEVATOR_DOOR_OPEN,
|
|
ELEVATOR_DOOR_CLOSE,
|
|
HITECH_DOOR_OPEN,
|
|
HITECH_DOOR_CLOSE,
|
|
CURTAINS_OPEN,
|
|
CURTAINS_CLOSE,
|
|
METAL_DOOR_OPEN,
|
|
METAL_DOOR_CLOSE,
|
|
|
|
WALK_LEFT_OUT,
|
|
WALK_RIGHT_OUT,
|
|
WALK_LEFT_OUT2,
|
|
WALK_RIGHT_OUT2,
|
|
WALK_LEFT_IN,
|
|
WALK_RIGHT_IN,
|
|
WALK_LEFT_IN2,
|
|
WALK_RIGHT_IN2,
|
|
WALK_LEFT_ROAD,
|
|
WALK_RIGHT_ROAD,
|
|
WALK_LEFT_ROAD2,
|
|
WALK_RIGHT_ROAD2,
|
|
CRAWL_1,
|
|
CRAWL_2,
|
|
CRAWL_3,
|
|
CRAWL_4,
|
|
TARG_REFINE_BEEP,
|
|
ENDTURN_1,
|
|
HEADCR_1,
|
|
DOORCR_1,
|
|
HEADSPLAT_1,
|
|
BODY_EXPLODE_1,
|
|
EXPLOSION_1,
|
|
CROW_EXPLODE_1,
|
|
SMALL_EXPLODE_1,
|
|
HELI_1,
|
|
BULLET_IMPACT_1,
|
|
BULLET_IMPACT_2,
|
|
BULLET_IMPACT_3,
|
|
CREATURE_BATTLECRY_1,
|
|
ENTER_WATER_1,
|
|
ENTER_DEEP_WATER_1,
|
|
|
|
COW_HIT_SND,
|
|
COW_DIE_SND,
|
|
|
|
// ROCKET GUN COMPUTER VOICE...
|
|
RG_ID_IMPRINTED,
|
|
RG_ID_INVALID,
|
|
RG_TARGET_SELECTED,
|
|
|
|
// CAVE COLLAPSE
|
|
CAVE_COLLAPSE,
|
|
|
|
// AIR RAID SOUNDS...
|
|
S_RAID_WHISTLE,
|
|
S_RAID_AMBIENT,
|
|
S_RAID_DIVE,
|
|
S_RAID_TB_DIVE,
|
|
S_RAID_TB_BOMB,
|
|
|
|
// VEHICLE SOUNDS
|
|
S_VECH1_MOVE,
|
|
S_VECH1_ON,
|
|
S_VECH1_OFF,
|
|
S_VECH1_INTO,
|
|
|
|
S_DRYFIRE1,
|
|
|
|
// IMPACT SOUNDS
|
|
S_WOOD_IMPACT1,
|
|
S_WOOD_IMPACT2,
|
|
S_WOOD_IMPACT3,
|
|
S_PORCELAIN_IMPACT1,
|
|
S_RUBBER_IMPACT1,
|
|
S_STONE_IMPACT1,
|
|
S_WATER_IMPACT1,
|
|
S_VEG_IMPACT1,
|
|
S_METAL_IMPACT1,
|
|
S_METAL_IMPACT2,
|
|
S_METAL_IMPACT3,
|
|
|
|
S_SLAP_IMPACT,
|
|
|
|
// WEAPON RELOAD
|
|
S_RELOAD_REVOLVER,
|
|
S_RELOAD_PISTOL,
|
|
S_RELOAD_SMG,
|
|
S_RELOAD_RIFLE,
|
|
S_RELOAD_SHOTGUN,
|
|
S_RELOAD_LMG,
|
|
|
|
// WEAPON LOCKNLOAD
|
|
S_LNL_REVOLVER,
|
|
S_LNL_PISTOL,
|
|
S_LNL_SMG,
|
|
S_LNL_RIFLE,
|
|
S_LNL_SHOTGUN,
|
|
S_LNL_LMG,
|
|
|
|
//WEAPON SHOT SOUNDS
|
|
S_SMALL_ROCKET_LAUNCHER,
|
|
S_GLAUNCHER,
|
|
S_UNDER_GLAUNCHER,
|
|
S_ROCKET_LAUNCHER,
|
|
S_MORTAR_SHOT,
|
|
S_GLOCK17,
|
|
S_GLOCK18,
|
|
S_BERETTA92,
|
|
S_BERETTA93,
|
|
S_SWSPECIAL,
|
|
S_BARRACUDA,
|
|
S_DESERTEAGLE,
|
|
S_M1911,
|
|
S_MP5K,
|
|
S_MAC10,
|
|
S_THOMPSON,
|
|
S_COMMANDO,
|
|
S_MP53,
|
|
S_AKSU74,
|
|
S_P90,
|
|
S_TYPE85,
|
|
S_SKS,
|
|
S_DRAGUNOV,
|
|
S_M24,
|
|
S_AUG,
|
|
S_G41,
|
|
S_RUGERMINI,
|
|
S_C7,
|
|
S_FAMAS,
|
|
S_AK74,
|
|
S_AKM,
|
|
S_M14,
|
|
S_FNFAL,
|
|
S_G3A3,
|
|
S_G11,
|
|
S_M870,
|
|
S_SPAS,
|
|
S_CAWS,
|
|
S_FNMINI,
|
|
S_RPK74,
|
|
S_21E,
|
|
S_THROWKNIFE,
|
|
S_TANK_CANNON,
|
|
S_BURSTTYPE1,
|
|
S_AUTOMAG,
|
|
|
|
S_SILENCER_1,
|
|
S_SILENCER_2,
|
|
|
|
// SWOOSHES.
|
|
SWOOSH_1,
|
|
SWOOSH_2,
|
|
SWOOSH_3,
|
|
SWOOSH_4,
|
|
SWOOSH_5,
|
|
SWOOSH_6,
|
|
|
|
// CREATURE SOUNDS....
|
|
ACR_FALL_1,
|
|
ACR_STEP_1,
|
|
ACR_STEP_2,
|
|
ACR_SWIPE,
|
|
ACR_EATFLESH,
|
|
ACR_CRIPPLED,
|
|
ACR_DIE_PART1,
|
|
ACR_DIE_PART2,
|
|
ACR_LUNGE,
|
|
ACR_SMELL_THREAT,
|
|
ACR_SMEEL_PREY,
|
|
ACR_SPIT,
|
|
//BABY
|
|
BCR_DYING,
|
|
BCR_DRAGGING,
|
|
BCR_SHRIEK,
|
|
BCR_SPITTING,
|
|
// LARVAE
|
|
LCR_MOVEMENT,
|
|
LCR_RUPTURE,
|
|
// QUEEN
|
|
LQ_SHRIEK,
|
|
LQ_DYING,
|
|
LQ_ENRAGED_ATTACK,
|
|
LQ_RUPTURING,
|
|
LQ_CRIPPLED,
|
|
LQ_SMELLS_THREAT,
|
|
LQ_WHIP_ATTACK,
|
|
|
|
THROW_IMPACT_1,
|
|
THROW_IMPACT_2,
|
|
|
|
IDLE_SCRATCH,
|
|
IDLE_ARMPIT,
|
|
IDLE_BACKCRACK,
|
|
|
|
AUTORESOLVE_FINISHFX,
|
|
|
|
//Interface buttons, misc.
|
|
EMAIL_ALERT,
|
|
ENTERING_TEXT,
|
|
REMOVING_TEXT,
|
|
COMPUTER_BEEP2_IN,
|
|
COMPUTER_BEEP2_OUT,
|
|
COMPUTER_SWITCH1_IN,
|
|
COMPUTER_SWITCH1_OUT,
|
|
VSM_SWITCH1_IN,
|
|
VSM_SWITCH1_OUT,
|
|
VSM_SWITCH2_IN,
|
|
VSM_SWITCH2_OUT,
|
|
SM_SWITCH1_IN,
|
|
SM_SWITCH1_OUT,
|
|
SM_SWITCH2_IN,
|
|
SM_SWITCH2_OUT,
|
|
SM_SWITCH3_IN,
|
|
SM_SWITCH3_OUT,
|
|
BIG_SWITCH3_IN,
|
|
BIG_SWITCH3_OUT,
|
|
KLAXON_ALARM,
|
|
BOXING_BELL,
|
|
HELI_CRASH,
|
|
ATTACH_TO_GUN,
|
|
ATTACH_CERAMIC_PLATES,
|
|
ATTACH_DETONATOR,
|
|
|
|
GRAB_ROOF,
|
|
LAND_ON_ROOF,
|
|
|
|
UNSTEALTHY_OUTSIDE_1,
|
|
UNSTEALTHY_OUTSIDE_2,
|
|
UNSTEALTHY_INSIDE_1,
|
|
|
|
OPEN_DEFAULT_OPENABLE,
|
|
CLOSE_DEFAULT_OPENABLE,
|
|
|
|
FIRE_ON_MERC,
|
|
GLASS_CRACK,
|
|
SPIT_RICOCHET,
|
|
|
|
BLOODCAT_HIT_1,
|
|
BLOODCAT_DIE_1,
|
|
SLAP_1,
|
|
|
|
ROBOT_BEEP,
|
|
DOOR_ELECTRICITY,
|
|
SWIM_1,
|
|
SWIM_2,
|
|
KEY_FAILURE,
|
|
TARGET_OUT_OF_RANGE,
|
|
OPEN_STATUE,
|
|
USE_STATUE_REMOTE,
|
|
USE_WIRE_CUTTERS,
|
|
DRINK_CANTEEN_FEMALE,
|
|
BLOODCAT_ATTACK,
|
|
BLOODCAT_ROAR,
|
|
ROBOT_GREETING,
|
|
ROBOT_DEATH,
|
|
GAS_EXPLODE_1,
|
|
AIR_ESCAPING_1,
|
|
|
|
OPEN_DRAWER,
|
|
CLOSE_DRAWER,
|
|
OPEN_LOCKER,
|
|
CLOSE_LOCKER,
|
|
OPEN_WOODEN_BOX,
|
|
CLOSE_WOODEN_BOX,
|
|
ROBOT_STOP,
|
|
|
|
WATER_WALK1_IN,
|
|
WATER_WALK1_OUT,
|
|
WATER_WALK2_IN,
|
|
WATER_WALK2_OUT,
|
|
|
|
PRONE_UP_SOUND,
|
|
PRONE_DOWN_SOUND,
|
|
KNEEL_UP_SOUND,
|
|
KNEEL_DOWN_SOUND,
|
|
PICKING_SOMETHING_UP,
|
|
|
|
COW_FALL,
|
|
|
|
BLOODCAT_GROWL_1,
|
|
BLOODCAT_GROWL_2,
|
|
BLOODCAT_GROWL_3,
|
|
BLOODCAT_GROWL_4,
|
|
CREATURE_GAS_NOISE,
|
|
CREATURE_FALL_PART_2,
|
|
CREATURE_DISSOLVE_1,
|
|
QUEEN_AMBIENT_NOISE,
|
|
CREATURE_FALL,
|
|
CROW_PECKING_AT_FLESH,
|
|
CROW_FLYING_AWAY,
|
|
SLAP_2,
|
|
MORTAR_START,
|
|
MORTAR_WHISTLE,
|
|
MORTAR_LOAD,
|
|
|
|
TURRET_MOVE,
|
|
TURRET_STOP,
|
|
COW_FALL_2,
|
|
KNIFE_IMPACT,
|
|
EXPLOSION_ALT_BLAST_1,
|
|
EXPLOSION_BLAST_2,
|
|
DRINK_CANTEEN_MALE,
|
|
USE_X_RAY_MACHINE,
|
|
CATCH_OBJECT,
|
|
FENCE_OPEN,
|
|
|
|
//MADD MARKER
|
|
S_BARRETT,
|
|
S_VAL,
|
|
//BREAK_LIGHT_IGNITING,
|
|
|
|
NUM_SAMPLES
|
|
};
|
|
|
|
enum AmbientDefines
|
|
{
|
|
LIGHTNING_1 = 0,
|
|
LIGHTNING_2,
|
|
RAIN_1,
|
|
BIRD_1,
|
|
BIRD_2,
|
|
CRICKETS_1,
|
|
CRICKETS_2,
|
|
CRICKET_1,
|
|
CRICKET_2,
|
|
OWL_1,
|
|
OWL_2,
|
|
OWL_3,
|
|
NIGHT_BIRD_1,
|
|
NIGHT_BIRD_2,
|
|
WIND,
|
|
|
|
NUM_AMBIENTS
|
|
};
|
|
|
|
typedef void (*SOUND_STOP_CALLBACK)( void *pData );
|
|
|
|
|
|
extern UINT8 AmbientVols[NUM_AMBIENTS];
|
|
|
|
//extern char szSoundEffects[MAX_SAMPLES][255];
|
|
|
|
|
|
BOOLEAN InitJA2Sound( );
|
|
BOOLEAN ShutdownJA2Sound( );
|
|
UINT32 PlayJA2Sample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
|
UINT32 PlayJA2StreamingSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
|
|
|
UINT32 PlayJA2SampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
|
UINT32 PlayWeaponSound(STR8 szFileName, UINT32 ubVolume, UINT32 uiPan);
|
|
UINT32 PlayJA2StreamingSampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan, SOUND_STOP_CALLBACK EndsCallback );
|
|
|
|
UINT32 PlayJA2Ambient( UINT32 usNum, UINT32 ubVolume, UINT32 ubLoops);
|
|
UINT32 PlayJA2AmbientRandom(UINT32 usNum, UINT32 uiTimeMin, UINT32 uiTimeMax);
|
|
|
|
UINT32 PlaySoldierJA2Sample( UINT16 usID, UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan, BOOLEAN fCheck );
|
|
|
|
|
|
|
|
UINT32 GetSoundEffectsVolume( );
|
|
void SetSoundEffectsVolume( UINT32 uiNewVolume );
|
|
|
|
UINT32 GetSpeechVolume( );
|
|
void SetSpeechVolume( UINT32 uiNewVolume );
|
|
|
|
|
|
//Calculates a volume based on the current Speech Volume level
|
|
UINT32 CalculateSpeechVolume( UINT32 uiVolume );
|
|
|
|
|
|
//Calculates a volume based on the current Sound Effects Volume level
|
|
UINT32 CalculateSoundEffectsVolume( UINT32 uiVolume );
|
|
|
|
INT32 SoundDir( INT32 sGridNo );
|
|
INT32 SoundVolume( INT8 bInitialVolume, INT32 sGridNo );
|
|
|
|
// ATE: Warning! Use this sparingly! NOT very robust - can
|
|
// have only 1 delayed sound at a time, and uses the global custom
|
|
// timer, again, of which can only be one
|
|
void PlayDelayedJA2Sample( UINT32 uiDelay, UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
|
|
|
|
|
#define POSITION_SOUND_FROM_SOLDIER 0x00000001
|
|
#define POSITION_SOUND_STATIONATY_OBJECT 0x00000002
|
|
|
|
INT32 NewPositionSnd( INT32 sGridNo, UINT32 uiFlags, UINT32 uiData, UINT32 iSoundToPlay );
|
|
void DeletePositionSnd( INT32 iPositionSndIndex );
|
|
void SetPositionSndsActive( );
|
|
void SetPositionSndsInActive( );
|
|
void SetPositionSndsVolumeAndPanning( );
|
|
void SetPositionSndGridNo( INT32 iPositionSndIndex, INT32 sGridNo );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|