OpenTTD Source 20241224-master-gee860a5c8e
sound.cpp File Reference

Handling of playing sounds. More...

#include "stdafx.h"
#include "landscape.h"
#include "sound_type.h"
#include "soundloader_func.h"
#include "mixer.h"
#include "newgrf_sound.h"
#include "random_access_file_type.h"
#include "window_func.h"
#include "window_gui.h"
#include "vehicle_base.h"
#include "base_media_func.h"
#include "safeguards.h"

Go to the source code of this file.

Macros

#define SET_TYPE   "sounds"
 

Functions

static void OpenBankFile (const std::string &filename)
 
static bool SetBankSource (MixerChannel *mc, SoundEntry *sound, SoundID sound_id)
 
void InitializeSound ()
 
static void StartSound (SoundID sound_id, float pan, uint volume)
 
void SndCopyToPool ()
 
void ChangeSoundSet (int index)
 Change the configured sound set and reset sounds.
 
static void SndPlayScreenCoordFx (SoundID sound, int left, int right, int top, int bottom)
 Decide 'where' (between left and right speaker) to play the sound effect.
 
void SndPlayTileFx (SoundID sound, TileIndex tile)
 
void SndPlayVehicleFx (SoundID sound, const Vehicle *v)
 
void SndPlayFx (SoundID sound)
 

Variables

static std::array< SoundEntry, ORIGINAL_SAMPLE_COUNT_original_sounds
 
static const uint8_t _vol_factor_by_zoom [] = {255, 255, 255, 190, 134, 87}
 
static const uint8_t _sound_base_vol []
 
static const uint8_t _sound_idx []
 
static const char *const _sound_file_names [] = { "samples" }
 Names corresponding to the sound set's files.
 

Detailed Description

Handling of playing sounds.

Definition in file sound.cpp.

Macro Definition Documentation

◆ SET_TYPE

#define SET_TYPE   "sounds"

Definition at line 22 of file sound.cpp.

Function Documentation

◆ ChangeSoundSet()

void ChangeSoundSet ( int  index)

◆ InitializeSound()

void InitializeSound ( )

Definition at line 92 of file sound.cpp.

◆ OpenBankFile()

static void OpenBankFile ( const std::string &  filename)
static

The sound file for the original sounds, i.e. those not defined/overridden by a NewGRF. Needs to be kept alive during the game as _original_sounds[n].file refers to this.

Definition at line 29 of file sound.cpp.

References BASESET_DIR, ClrBit(), Debug, GB(), HasBit(), and ORIGINAL_SAMPLE_COUNT.

◆ SetBankSource()

static bool SetBankSource ( MixerChannel mc,
SoundEntry sound,
SoundID  sound_id 
)
static

Definition at line 71 of file sound.cpp.

◆ SndCopyToPool()

void SndCopyToPool ( )

Definition at line 155 of file sound.cpp.

◆ SndPlayFx()

void SndPlayFx ( SoundID  sound)

Definition at line 247 of file sound.cpp.

◆ SndPlayScreenCoordFx()

static void SndPlayScreenCoordFx ( SoundID  sound,
int  left,
int  right,
int  top,
int  bottom 
)
static

Decide 'where' (between left and right speaker) to play the sound effect.

Note: Callers must determine if sound effects are enabled. This plays a sound regardless of the setting.

Parameters
soundSound effect to play
leftLeft edge of virtual coordinates where the sound is produced
rightRight edge of virtual coordinates where the sound is produced
topTop edge of virtual coordinates where the sound is produced
bottomBottom edge of virtual coordinates where the sound is produced

Definition at line 204 of file sound.cpp.

References Viewport::virtual_height, Viewport::virtual_left, Viewport::virtual_top, Viewport::virtual_width, and Viewport::zoom.

◆ SndPlayTileFx()

void SndPlayTileFx ( SoundID  sound,
TileIndex  tile 
)

Definition at line 227 of file sound.cpp.

◆ SndPlayVehicleFx()

void SndPlayVehicleFx ( SoundID  sound,
const Vehicle v 
)

Definition at line 239 of file sound.cpp.

◆ StartSound()

static void StartSound ( SoundID  sound_id,
float  pan,
uint  volume 
)
static

Definition at line 100 of file sound.cpp.

Variable Documentation

◆ _original_sounds

std::array<SoundEntry, ORIGINAL_SAMPLE_COUNT> _original_sounds
static

Definition at line 27 of file sound.cpp.

◆ _sound_base_vol

const uint8_t _sound_base_vol[]
static
Initial value:
= {
128, 90, 128, 128, 128, 128, 128, 128,
128, 90, 90, 128, 128, 128, 128, 128,
128, 128, 128, 80, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 90, 90, 90, 128, 90, 128,
128, 90, 128, 128, 128, 90, 128, 128,
128, 128, 128, 128, 90, 128, 128, 128,
128, 90, 128, 128, 128, 128, 128, 128,
128, 128, 90, 90, 90, 128, 128, 128,
90,
}

Definition at line 129 of file sound.cpp.

◆ _sound_file_names

const char* const _sound_file_names[] = { "samples" }
static

Names corresponding to the sound set's files.

Definition at line 255 of file sound.cpp.

◆ _sound_idx

const uint8_t _sound_idx[]
static
Initial value:
= {
2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 0,
1, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71,
72,
}

Definition at line 142 of file sound.cpp.

◆ _vol_factor_by_zoom

const uint8_t _vol_factor_by_zoom[] = {255, 255, 255, 190, 134, 87}
static

Definition at line 126 of file sound.cpp.