diff options
author | Thomas Fach-Pedersen | 2015-02-06 15:31:43 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2016-09-29 22:33:37 +0200 |
commit | 74a8b530f196233b287c9775e9c80774c4811058 (patch) | |
tree | 8f18bad0598332da0c39528315dfb6866422f4f2 /engines/bladerunner/ambient_sounds.h | |
parent | c8f5ded6d94863e3c1deb58961e543703bc934f8 (diff) | |
download | scummvm-rg350-74a8b530f196233b287c9775e9c80774c4811058.tar.gz scummvm-rg350-74a8b530f196233b287c9775e9c80774c4811058.tar.bz2 scummvm-rg350-74a8b530f196233b287c9775e9c80774c4811058.zip |
BLADERUNNER: Add support for ambient sounds, game flags and variables, and use VQA z-buffer when rendering.
Diffstat (limited to 'engines/bladerunner/ambient_sounds.h')
-rw-r--r-- | engines/bladerunner/ambient_sounds.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/engines/bladerunner/ambient_sounds.h b/engines/bladerunner/ambient_sounds.h new file mode 100644 index 0000000000..e5428e9f80 --- /dev/null +++ b/engines/bladerunner/ambient_sounds.h @@ -0,0 +1,120 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef BLADERUNNER_AMBIENT_SOUNDS_H +#define BLADERUNNER_AMBIENT_SOUNDS_H + +#include "audio/audiostream.h" + +namespace BladeRunner { + +class BladeRunnerEngine; + +class AmbientSounds { + BladeRunnerEngine *_vm; + + struct NonLoopingSound { + bool isActive; + char name[13]; + int32 hash; + int32 audio_player_track; + int32 time1; + int32 time2; + uint32 nextPlayTime; + int32 volume1; + int32 volume2; + int32 volume; + int32 pan1begin; + int32 pan1end; + int32 pan2begin; + int32 pan2end; + int32 priority; + }; + + struct LoopingSound { + bool isActive; + char name[13]; + int32 hash; + int32 volume; + }; + + NonLoopingSound *_nonLoopingSounds; + LoopingSound *_loopingSounds; + int _ambientVolume; + +public: + AmbientSounds(BladeRunnerEngine *vm); + ~AmbientSounds(); + + void addSound( + int id, + int timeRangeBegin, int timeRangeEnd, + int volumeRangeBegin, int volumeRangeEnd, + int pan1begin, int pan1end, + int pan2begin, int pan2end, + int priority, int unk3 + ); + // removeSound + // addSpeechSound + // removeSpeechSound + // playSound + // playSpeech + // removeAllNonLoopingSounds + + // addLoopingSound + void addLoopingSound(int sfx_id, int volume, int unk, int fadeInTime); + // adjustLoopingSound + // removeLoopingSound + // removeAllLoopingSounds + + void tick(); + + // setVolume + // getVolume + +private: + int findAvailableNonLoopingTrack(); + int findNonLoopingTrackByHash(int32 hash); + + int findAvailableLoopingTrack(); + int findLoopingTrackByHash(int32 hash); + + // stopNonLoopingTrack + // stopLoopingTrack + + // saveToSaveGame + // initFromSaveGame + // addSoundByName + // playVolumeAdjustSound + + void addSoundByName( + const char *name, + int timeRangeBegin, int timeRangeEnd, + int volumeRangeBegin, int volumeRangeEnd, + int unk1RangeBegin, int unk1RangeEnd, + int unk2RangeBegin, int unk2RangeEnd, + int priority, int unk3); +}; + +} // End of namespace BladeRunner + +#endif |