2019-09-19 22:42:45 +00:00
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
/*
|
|
|
|
Copyright (C) 2010-2019 EDuke32 developers and contributors
|
|
|
|
Copyright (C) 2019 Nuke.YKT
|
|
|
|
|
|
|
|
This file is part of NBlood.
|
|
|
|
|
|
|
|
NBlood is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License version 2
|
|
|
|
as published by the Free Software Foundation.
|
|
|
|
|
|
|
|
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.
|
|
|
|
*/
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
|
2020-07-25 18:34:40 +00:00
|
|
|
#include "misc.h"
|
2020-04-12 06:07:48 +00:00
|
|
|
#include "raze_music.h"
|
2020-09-05 17:20:25 +00:00
|
|
|
#include "s_soundinternal.h"
|
2019-09-22 06:39:22 +00:00
|
|
|
|
|
|
|
BEGIN_BLD_NS
|
|
|
|
|
2019-09-19 22:42:45 +00:00
|
|
|
struct SFX
|
|
|
|
{
|
2021-12-29 21:56:21 +00:00
|
|
|
int relVol;
|
|
|
|
int pitch;
|
|
|
|
int pitchRange;
|
|
|
|
int format;
|
|
|
|
int loopStart;
|
|
|
|
char rawName[9];
|
2019-09-19 22:42:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
int sndGetRate(int format);
|
2020-11-07 04:13:45 +00:00
|
|
|
bool sndCheckPlaying(unsigned int nSound);
|
|
|
|
void sndStopSample(unsigned int nSound);
|
2021-12-29 21:56:21 +00:00
|
|
|
void sndStartSample(const char* pzSound, int nVolume, int nChannel = -1);
|
2020-09-05 17:20:25 +00:00
|
|
|
void sndStartSample(unsigned int nSound, int nVolume, int nChannel = -1, bool bLoop = false, EChanFlags soundflags = CHANF_NONE);
|
2019-09-19 22:42:45 +00:00
|
|
|
void sndStartWavID(unsigned int nSound, int nVolume, int nChannel = -1);
|
2021-12-29 21:56:21 +00:00
|
|
|
void sndStartWavDisk(const char* pzFile, int nVolume, int nChannel = -1);
|
2019-09-19 22:42:45 +00:00
|
|
|
void sndKillAllSounds(void);
|
|
|
|
void sndProcess(void);
|
|
|
|
void sndTerm(void);
|
|
|
|
void sndInit(void);
|
|
|
|
|
2022-08-20 15:11:15 +00:00
|
|
|
void sfxPlay3DSound(const DVector3& pos, int soundId, sectortype* pSector);
|
|
|
|
inline void sfxPlay3DSound(int x, int y, int z, int soundId, sectortype* pSector)
|
|
|
|
{
|
|
|
|
DVector3 pos(x * inttoworld, y * inttoworld, z * zinttoworld);
|
|
|
|
sfxPlay3DSound(pos, soundId, pSector);
|
|
|
|
}
|
2021-12-29 21:56:21 +00:00
|
|
|
void sfxPlay3DSound(DBloodActor* pSprite, int soundId, int a3 = -1, int a4 = 0);
|
2021-11-28 09:24:42 +00:00
|
|
|
void sfxPlay3DSoundCP(DBloodActor* pSprite, int soundId, int a3 = -1, int a4 = 0, int pitch = 0, int volume = 0);
|
2021-12-29 21:56:21 +00:00
|
|
|
void sfxKill3DSound(DBloodActor* pSprite, int a2 = -1, int a3 = -1);
|
2020-07-25 16:53:44 +00:00
|
|
|
void sfxKillAllSounds(void);
|
|
|
|
void sfxSetReverb(bool toggle);
|
|
|
|
void sfxSetReverb2(bool toggle);
|
|
|
|
|
|
|
|
void ambProcess(void);
|
|
|
|
void ambKillAll(void);
|
|
|
|
void ambInit(void);
|
|
|
|
|
2020-12-05 11:17:28 +00:00
|
|
|
enum EPlayFlags
|
|
|
|
{
|
2021-12-29 21:56:21 +00:00
|
|
|
FX_GlobalChannel = 1,
|
|
|
|
FX_SoundMatch = 2,
|
|
|
|
FX_ChannelMatch = 4,
|
2020-12-05 11:17:28 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2019-09-22 06:39:22 +00:00
|
|
|
END_BLD_NS
|