OpenTTD Source: src/newgrf_sound.h File Reference

OpenTTD Source 15.3

Enumerations | Functions
newgrf_sound.h File Reference

Functions related to NewGRF provided sounds. More...

`#include "sound_type.h"`
`#include "tile_type.h"`
`#include "vehicle_type.h"`

Go to the source code of this file.

## Enumerations
enum | VehicleSoundEvent : uint8_t { VSE_START = 1 , VSE_TUNNEL = 2 , VSE_BREAKDOWN = 3 , VSE_RUNNING = 4 , VSE_TOUCHDOWN = 5 , VSE_VISUAL_EFFECT = 6 , VSE_RUNNING_16 = 7 , VSE_STOPPED_16 = 8 , VSE_LOAD_UNLOAD = 9 }
| Events at which a sound might be played. More...

## Functions
SoundEntry * | AllocateSound (uint num)
| Allocate sound slots.
void | InitializeSoundPool ()
bool | LoadNewGRFSound (SoundEntry &sound, SoundID sound_id)
| Extract meta data from a NewGRF sound.
SoundID | GetNewGRFSoundID (const struct GRFFile *file, SoundID sound_id)
SoundEntry * | GetSound (SoundID sound_id)
uint | GetNumSounds ()
size_t | GetSoundPoolAllocatedMemory ()
| Get size of memory allocated to sound effects.
bool | PlayVehicleSound (const Vehicle *v, VehicleSoundEvent event, bool force=false)
| Checks whether a NewGRF wants to play a different vehicle sound effect.
void | PlayTileSound (const struct GRFFile *file, SoundID sound_id, TileIndex tile)

## Detailed Description

Functions related to NewGRF provided sounds.

Definition in file newgrf_sound.h.

## Enumeration Type Documentation

## ◆ VehicleSoundEvent

enum VehicleSoundEvent : uint8_t

Events at which a sound might be played.

Enumerator
VSE_START | Vehicle starting, i.e. leaving, the station.
VSE_TUNNEL | Train entering a tunnel.
VSE_BREAKDOWN | Vehicle breaking down.
VSE_RUNNING | Vehicle running normally.
VSE_TOUCHDOWN | Whenever a plane touches down.
VSE_VISUAL_EFFECT | Vehicle visual effect (steam, diesel smoke or electric spark) is shown.
VSE_RUNNING_16 | Every 16 ticks while the vehicle is running (speed > 0).
VSE_STOPPED_16 | Every 16 ticks while the vehicle is stopped (speed == 0).
VSE_LOAD_UNLOAD | Whenever cargo payment is made for a vehicle.

Definition at line 18 of file newgrf_sound.h.

## Function Documentation

## ◆ AllocateSound()

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.

## ◆ GetNumSounds()

uint GetNumSounds | ( |  | ) |

Definition at line 57 of file newgrf_sound.cpp.

## ◆ GetSound()

SoundEntry * GetSound | ( | SoundID | sound_id | ) |

Definition at line 50 of file newgrf_sound.cpp.

## ◆ GetSoundPoolAllocatedMemory()

size_t GetSoundPoolAllocatedMemory | ( |  | ) |

Get size of memory allocated to sound effects.

Returns
  Approximate memory allocated by loaded sound effects.

Definition at line 66 of file newgrf_sound.cpp.

## ◆ InitializeSoundPool()

void InitializeSoundPool | ( |  | ) |

Definition at line 41 of file newgrf_sound.cpp.

## ◆ LoadNewGRFSound()

bool LoadNewGRFSound | ( | SoundEntry & | sound,
|  | SoundID | sound_id
| ) |  |

Extract meta data from a NewGRF sound.

Parameters

  sound | Sound to load.

Returns
  True if a valid sound was loaded.

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

## ◆ 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 143 of file newgrf_sound.cpp.

References _settings_client, CALLBACK_FAILED, EngineInfo::callback_mask, CBID_VEHICLE_SOUND_EFFECT, Vehicle::engine_type, Vehicle::GetGRF(), GetNewGRFSoundID(), GetVehicleCallback(), ClientSettings::sound, SoundEffect, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and SoundSettings::vehicle.

Referenced by AircraftController(), AircraftLandAirplane(), Vehicle::HandleBreakdown(), Ship::PlayLeaveStationSound(), Train::PlayLeaveStationSound(), and Vehicle::ShowVisualEffect().