raze/source/core/raze_sound.h
Christoph Oelckers 8a0f79141b code cleanup
* gave reverb functions the proper 'S_' prefix for consistency.
* Blood: fixed license of 4 files which do not contain any NBlood code anymore (sound code was completely rewritten, and all such code has long been moved out of d_menu.cpp)
* Blood: renamed VIEWPOS_* constants
2023-09-26 23:30:38 +02:00

51 lines
1.4 KiB
C++

#pragma once
#include "s_soundinternal.h"
#include "m_fixed.h"
#include "vectors.h"
#include "build.h"
inline FVector3 GetSoundPos(const DVector3& pos)
{
return { float(pos.X), float(-pos.Z), float(-pos.Y) };
}
enum
{
SOURCE_Actor = SOURCE_None+1, // Sound is coming from an actor.
SOURCE_Ambient, // Sound is coming from a blood ambient definition.
SOURCE_Player, // SW player sound (player in SW maintains its own position separately from the sprite so needs to be special.)
SOURCE_Swirly, // Special stuff for Exhumed. (local sound with custom panning)
SOURCE_EXBoss, // Another special case for Exhumed.
};
inline void FX_StopAllSounds(void)
{
soundEngine->StopAllChannels();
}
void S_SetReverb(int strength);
inline void FX_SetReverbDelay(int delay)
{
}
int S_LookupSound(const char* fn);
class FSerializer;
void S_SerializeSounds(FSerializer& arc);
int S_ReserveSoundSlot(const char* logicalname, int slotnum, int limit = 6);
void S_CacheAllSounds(void);
class RazeSoundEngine : public SoundEngine
{
public:
RazeSoundEngine()
{
// add the empty sound right now.
AddSoundLump("no_sound", fileSystem.CheckNumForFullName("engine/dsempty.lmp"), 0);
}
virtual bool SourceIsActor(FSoundChan* chan) { return chan->SourceType == SOURCE_Actor; }
virtual int SoundSourceIndex(FSoundChan* chan) { return 0; }
virtual void SetSource(FSoundChan* chan, int index) {}
std::vector<uint8_t> ReadSound(int lumpnum) override;
};