OpenTTD
|
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 "fileio_func.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 () |
bool | LoadNewGRFSound (SoundEntry *sound) |
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) |
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 SmallVector< SoundEntry, 8 > | _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.
References SmallVector< T, S >::Append(), and MemSetT().
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 170 of file newgrf_sound.cpp.
References ORIGINAL_SAMPLE_COUNT.
Referenced by AircraftVehicleChangeInfo(), PlayTileSound(), PlayVehicleSound(), RoadVehicleChangeInfo(), and ShipVehicleChangeInfo().
bool LoadNewGRFSound | ( | SoundEntry * | sound | ) |
Extract meta data from a NewGRF sound.
sound | Sound to load. |
Definition at line 68 of file newgrf_sound.cpp.
References AllocaM, BSWAP32(), DEBUG, FioGetFilename(), FioGetPos(), FioReadBlock(), FioReadByte(), FioReadDword(), FioReadWord(), FioSeekToFile(), FioSkipBytes(), SoundEntry::grf_container_ver, and MemSetT().
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 220 of file newgrf_sound.cpp.
References GetNewGRFSoundID().
Referenced by AmbientSoundEffectCallback(), AnimationBase< IndustryAnimationBase, IndustryTileSpec, Industry, int, GetSimpleIndustryCallback >::AnimateTile(), and AnimationBase< IndustryAnimationBase, IndustryTileSpec, Industry, int, GetSimpleIndustryCallback >::ChangeAnimationFrame().
bool PlayVehicleSound | ( | const Vehicle * | v, |
VehicleSoundEvent | event | ||
) |
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. |
Definition at line 187 of file newgrf_sound.cpp.
References _settings_client, CALLBACK_FAILED, 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(), Train::PlayLeaveStationSound(), and Vehicle::ShowVisualEffect().