OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Functions | Variables
newgrf_sound.cpp File Reference

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

## Detailed Description

Handling NewGRF provided sounds.

Definition in file newgrf_sound.cpp.

## Function Documentation

SoundEntry* AllocateSound | ( | uint | num | ) |

Allocate sound slots.

Parameters

  num | Number of slots to allocate.

Returns
  First allocated slot.

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.

Parameters

  file | NewGRF to get sound from.
  sound_id | GRF-specific sound ID. (GRF-local for IDs above ORIGINAL_SAMPLE_COUNT)

Returns
  Translated (global) sound ID, or INVALID_SOUND.

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.

Parameters

  sound | Sound to load.

Returns
  True if a valid sound was loaded.

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().

void PlayTileSound | ( | const GRFFile * | file,
|  | SoundID | sound_id,
|  | TileIndex | tile
| ) |  |

Play a NewGRF sound effect at the location of a specific tile.

Parameters

  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.

Parameters

  v | Vehicle to play sound effect for.
  event | Trigger for the sound effect.

Returns
  false if the default sound effect shall be played instead.

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().