OpenTTD Source 20241224-master-gf74b0cf984
|
Handling NewGRF provided sounds. More...
#include "stdafx.h"
#include "engine_base.h"
#include "newgrf.h"
#include "newgrf_engine.h"
#include "newgrf_sound.h"
#include "vehicle_base.h"
#include "sound_func.h"
#include "soundloader_func.h"
#include "string_func.h"
#include "random_access_file_type.h"
#include "debug.h"
#include "settings_type.h"
#include "safeguards.h"
Go to the source code of this file.
Functions | |
SoundEntry * | AllocateSound (uint num) |
Allocate sound slots. | |
void | InitializeSoundPool () |
SoundEntry * | GetSound (SoundID index) |
uint | GetNumSounds () |
size_t | GetSoundPoolAllocatedMemory () |
Get size of memory allocated to sound effects. | |
bool | LoadNewGRFSound (SoundEntry &sound, SoundID sound_id) |
Extract meta data from a NewGRF sound. | |
SoundID | GetNewGRFSoundID (const GRFFile *file, SoundID sound_id) |
Resolve NewGRF sound ID. | |
bool | PlayVehicleSound (const Vehicle *v, VehicleSoundEvent event, bool force) |
Checks whether a NewGRF wants to play a different vehicle sound effect. | |
void | PlayTileSound (const GRFFile *file, SoundID sound_id, TileIndex tile) |
Play a NewGRF sound effect at the location of a specific tile. | |
Variables | |
static std::vector< SoundEntry > | _sounds |
Handling NewGRF provided sounds.
Definition in file newgrf_sound.cpp.
SoundEntry * AllocateSound | ( | uint | num | ) |
Allocate sound slots.
num | Number of slots to allocate. |
Definition at line 33 of file newgrf_sound.cpp.
SoundID GetNewGRFSoundID | ( | const GRFFile * | file, |
SoundID | sound_id | ||
) |
Resolve NewGRF sound ID.
file | NewGRF to get sound from. |
sound_id | GRF-specific sound ID. (GRF-local for IDs above ORIGINAL_SAMPLE_COUNT) |
Definition at line 125 of file newgrf_sound.cpp.
References ORIGINAL_SAMPLE_COUNT.
Referenced by AircraftVehicleChangeInfo(), PlayTileSound(), PlayVehicleSound(), RoadVehicleChangeInfo(), and ShipVehicleChangeInfo().
uint GetNumSounds | ( | ) |
Definition at line 57 of file newgrf_sound.cpp.
SoundEntry * GetSound | ( | SoundID | index | ) |
Definition at line 50 of file newgrf_sound.cpp.
size_t GetSoundPoolAllocatedMemory | ( | ) |
Get size of memory allocated to sound effects.
Definition at line 66 of file newgrf_sound.cpp.
void InitializeSoundPool | ( | ) |
Definition at line 41 of file newgrf_sound.cpp.
bool LoadNewGRFSound | ( | SoundEntry & | sound, |
SoundID | sound_id | ||
) |
Extract meta data from a NewGRF sound.
sound | Sound to load. |
Definition at line 83 of file newgrf_sound.cpp.
References Debug, RandomAccessFile::GetSimplifiedFilename(), SoundEntry::grf_container_ver, RandomAccessFile::ReadBlock(), RandomAccessFile::ReadByte(), RandomAccessFile::ReadDword(), RandomAccessFile::ReadWord(), RandomAccessFile::SeekTo(), and StrMakeValid().
Play a NewGRF sound effect at the location of a specific tile.
file | NewGRF triggering the sound effect. |
sound_id | Sound effect the NewGRF wants to play. |
tile | Location of the effect. |
Definition at line 176 of file newgrf_sound.cpp.
References GetNewGRFSoundID().
Referenced by AmbientSoundEffectCallback(), AnimationBase< Tbase, Tspec, Tobj, Textra, GetCallback, Tframehelper >::AnimateTile(), and AnimationBase< Tbase, Tspec, Tobj, Textra, GetCallback, Tframehelper >::ChangeAnimationFrame().
bool PlayVehicleSound | ( | const Vehicle * | v, |
VehicleSoundEvent | event, | ||
bool | force | ||
) |
Checks whether a NewGRF wants to play a different vehicle sound effect.
v | Vehicle to play sound effect for. |
event | Trigger for the sound effect. |
force | Should we play the sound effect even if vehicle sound effects are muted? |
Definition at line 143 of file newgrf_sound.cpp.
References _settings_client, CALLBACK_FAILED, EngineInfo::callback_mask, CBID_VEHICLE_SOUND_EFFECT, CBM_VEHICLE_SOUND_EFFECT, Vehicle::engine_type, Vehicle::GetGRF(), GetNewGRFSoundID(), GetVehicleCallback(), HasBit(), ClientSettings::sound, and SoundSettings::vehicle.
Referenced by AircraftController(), AircraftLandAirplane(), Vehicle::HandleBreakdown(), Ship::PlayLeaveStationSound(), Train::PlayLeaveStationSound(), and Vehicle::ShowVisualEffect().
|
static |
Definition at line 25 of file newgrf_sound.cpp.