OpenTTD Source: src/newgrf_sound.cpp File Reference

OpenTTD Source 14.0-beta1

Functions | Variables
newgrf_sound.cpp File Reference
`#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 "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. More...
void | InitializeSoundPool ()
SoundEntry * | GetSound (SoundID index)
uint | GetNumSounds ()
bool | LoadNewGRFSound (SoundEntry *sound)
| Extract meta data from a NewGRF sound. More...
SoundID | GetNewGRFSoundID (const GRFFile *file, SoundID sound_id)
| Resolve NewGRF sound ID. More...
bool | PlayVehicleSound (const Vehicle *v, VehicleSoundEvent event, bool force)
| Checks whether a NewGRF wants to play a different vehicle sound effect. More...
void | PlayTileSound (const GRFFile *file, SoundID sound_id, TileIndex tile)
| Play a NewGRF sound effect at the location of a specific tile. More...

## Variables
static std::vector< SoundEntry > | _sounds

## Detailed Description

Handling NewGRF provided sounds.

Definition in file newgrf_sound.cpp.

## Function Documentation

## ◆ AllocateSound()

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

Allocate sound slots.

Parameters

  num | Number of slots to allocate.

Returns
  First allocated slot.

Definition at line 31 of file newgrf_sound.cpp.

## ◆ GetNewGRFSoundID()

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 169 of file newgrf_sound.cpp.

References ORIGINAL_SAMPLE_COUNT.

Referenced by PlayTileSound().

## ◆ LoadNewGRFSound()

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 66 of file newgrf_sound.cpp.

References BSWAP32(), Debug, RandomAccessFile::GetPos(), RandomAccessFile::GetSimplifiedFilename(), SoundEntry::grf_container_ver, MemSetT(), RandomAccessFile::ReadBlock(), RandomAccessFile::ReadByte(), RandomAccessFile::ReadDword(), RandomAccessFile::ReadWord(), RandomAccessFile::SeekTo(), and RandomAccessFile::SkipBytes().

## ◆ PlayTileSound()

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

## ◆ PlayVehicleSound()

bool PlayVehicleSound | ( | const Vehicle * | v,
|  | VehicleSoundEvent | event,
|  | bool | force
| ) |  |

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.
  force | Should we play the sound effect even if vehicle sound effects are muted?

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

Definition at line 187 of file newgrf_sound.cpp.

References _settings_client, Vehicle::GetGRF(), ClientSettings::sound, and SoundSettings::vehicle.

Referenced by Vehicle::HandleBreakdown(), and Train::PlayLeaveStationSound().