2023-08-13 20:20:17 +02:00
|
|
|
/*
|
|
|
|
===========================================================================
|
|
|
|
Copyright (C) 2023 the OpenMoHAA team
|
|
|
|
|
|
|
|
This file is part of OpenMoHAA source code.
|
|
|
|
|
|
|
|
OpenMoHAA source code 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.
|
|
|
|
|
|
|
|
OpenMoHAA source code 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 OpenMoHAA source code; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
===========================================================================
|
|
|
|
*/
|
|
|
|
|
2023-05-24 19:40:09 +02:00
|
|
|
#include "../snd_local.h"
|
2024-06-15 16:38:02 +02:00
|
|
|
#include "../client.h"
|
2023-05-24 19:40:09 +02:00
|
|
|
|
2024-08-21 18:35:06 +02:00
|
|
|
#if defined(NO_MODERN_DMA) && NO_MODERN_DMA
|
2024-01-07 19:47:58 +01:00
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
qboolean s_bSoundPaused = qfalse;
|
|
|
|
|
2023-05-24 21:45:26 +02:00
|
|
|
void S_Init2()
|
|
|
|
{
|
|
|
|
S_Init();
|
|
|
|
SND_setup();
|
2024-01-01 23:17:09 +01:00
|
|
|
|
|
|
|
// HACK: S_RegisterSound returns 0 when unsuccessful, or it returns the the sfx handle
|
|
|
|
// But the first sfx handle is also 0...
|
|
|
|
S_RegisterSound("sound/null.wav", qfalse);
|
2024-07-01 16:10:37 +02:00
|
|
|
|
|
|
|
Cmd_AddCommand("tmstart", S_TriggeredMusic_Start);
|
|
|
|
Cmd_AddCommand("tmstartloop", S_TriggeredMusic_StartLoop);
|
|
|
|
Cmd_AddCommand("tmstop", S_TriggeredMusic_Stop);
|
2023-05-24 21:45:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_StartSound
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_StartSound(const vec3_t origin, int entNum, int entChannel, sfxHandle_t sfxHandle, float volume, float minDist, float pitch, float maxDist, qboolean streamed)
|
|
|
|
{
|
|
|
|
S_StartSound((float*)origin, entNum, entChannel, sfxHandle);
|
|
|
|
// FIXME: partially implemented
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_AddLoopingSound
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_AddLoopingSound(const vec3_t origin, const vec3_t velocity, sfxHandle_t sfxHandle, float volume, float minDist, float maxDist, float pitch, int flags)
|
|
|
|
{
|
2024-02-20 22:42:54 +01:00
|
|
|
if (!sfxHandle) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-05-24 21:45:26 +02:00
|
|
|
// FIXME: unimplemented
|
2024-06-15 16:38:02 +02:00
|
|
|
|
|
|
|
if (VectorCompare(origin, vec3_origin)) {
|
|
|
|
// Consider it to be a local sound, uses the player origin
|
|
|
|
S_AddLoopingSound(cl.snap.ps.clientNum, cl.snap.ps.origin, velocity, sfxHandle);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-05-24 21:45:26 +02:00
|
|
|
S_AddLoopingSound(ENTITYNUM_WORLD, origin, velocity, sfxHandle);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_StopAllSounds
|
|
|
|
=================
|
|
|
|
*/
|
2023-09-05 20:17:38 +02:00
|
|
|
void S_StopAllSounds2(qboolean stop_music)
|
2023-05-24 21:45:26 +02:00
|
|
|
{
|
|
|
|
// Call the original function
|
|
|
|
S_StopAllSounds();
|
|
|
|
// FIXME: stop music
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_ClearLoopingSounds
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_ClearLoopingSounds(void)
|
|
|
|
{
|
|
|
|
S_ClearLoopingSounds(qtrue);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_Respatialize
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_Respatialize(int entityNum, const vec3_t origin,
|
|
|
|
vec3_t axis[3])
|
|
|
|
{
|
|
|
|
S_Respatialize(entityNum, origin, axis, 0);
|
|
|
|
}
|
2023-10-02 21:11:16 +02:00
|
|
|
|
2023-05-24 21:45:26 +02:00
|
|
|
/*
|
|
|
|
=================
|
2023-10-02 21:11:16 +02:00
|
|
|
S_StartLocalSoundChannel
|
2023-05-24 21:45:26 +02:00
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_StartLocalSound(const char* sound_name, qboolean force_load)
|
|
|
|
{
|
2024-01-01 23:17:09 +01:00
|
|
|
sfxHandle_t h;
|
|
|
|
|
|
|
|
h = S_RegisterSound(sound_name, qfalse);
|
|
|
|
|
|
|
|
if (h) {
|
|
|
|
S_StartLocalSound(h, CHAN_LOCAL_SOUND);
|
|
|
|
}
|
2023-05-24 21:45:26 +02:00
|
|
|
}
|
|
|
|
|
2023-10-02 21:11:16 +02:00
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_StartLocalSound
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_StartLocalSoundChannel(const char* sound_name, qboolean force_load, int channel)
|
|
|
|
{
|
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
|
|
|
|
2023-05-24 21:45:26 +02:00
|
|
|
sfxHandle_t S_RegisterSound(const char* sample, qboolean compressed, qboolean streamed) {
|
|
|
|
return S_RegisterSound(sample, compressed);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_StopSound
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_StopSound(int entnum, int channel)
|
|
|
|
{
|
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
|
|
|
|
2023-05-24 19:40:09 +02:00
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_IsSoundPlaying
|
|
|
|
=================
|
|
|
|
*/
|
2023-08-13 20:20:17 +02:00
|
|
|
qboolean S_IsSoundPlaying(int channelNumber, const char* name)
|
2023-05-24 19:40:09 +02:00
|
|
|
{
|
2023-08-13 20:20:17 +02:00
|
|
|
channel_t* v;
|
|
|
|
if (channelNumber >= MAX_CHANNELS) {
|
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
|
|
|
|
v = &s_channels[channelNumber];
|
|
|
|
|
|
|
|
return v->thesfx ? qtrue : qfalse;
|
2023-05-24 19:40:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_Pause
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_Pause()
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_Unpause
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_Unpause()
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_LoadSoundtrackFile
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
qboolean MUSIC_LoadSoundtrackFile(const char* filename)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_SongValid
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
qboolean MUSIC_SongValid(const char* mood)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_Loaded
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
qboolean MUSIC_Loaded(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
Music_Update
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void Music_Update(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_SongEnded
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_SongEnded(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_StartSound
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_NewSoundtrack(const char* name)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_UpdateMood
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_UpdateMood(int current, int fallback)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
//STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_UpdateVolume
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_UpdateVolume(float volume, float fade_time)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_StopAllSongs
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_StopAllSongs(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_FreeAllSongs
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_FreeAllSongs(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_Playing
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
qboolean MUSIC_Playing(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_FindSong
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
int MUSIC_FindSong(const char* name)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_CurrentSongChannel
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
int MUSIC_CurrentSongChannel(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_StopChannel
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_StopChannel(int channel_number)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_PlaySong
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
qboolean MUSIC_PlaySong(const char* alias)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_UpdateMusicVolumes
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_UpdateMusicVolumes(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
MUSIC_CheckForStoppedSongs
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void MUSIC_CheckForStoppedSongs(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
2024-08-05 19:14:30 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_CurrentSoundtrack
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
const char* S_CurrentSoundtrack()
|
|
|
|
{
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
2023-05-24 19:40:09 +02:00
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_IsSoundRegistered
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
qboolean S_IsSoundRegistered(const char* name)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
return qfalse;
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_GetSoundTime
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
float S_GetSoundTime(sfxHandle_t handle)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
return 0.0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_SetGlobalAmbientVolumeLevel
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_SetGlobalAmbientVolumeLevel(float volume)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_SetReverb
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_SetReverb(int reverb_type, float reverb_level)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
STUB();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
=================
|
|
|
|
S_EndRegistration
|
|
|
|
=================
|
|
|
|
*/
|
|
|
|
void S_EndRegistration(void)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void S_UpdateEntity(int entityNum, const vec3_t origin, const vec3_t velocity, qboolean use_listener)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
2023-05-24 19:40:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void S_FadeSound(float fTime)
|
|
|
|
{
|
2023-07-21 20:30:11 +02:00
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
|
|
|
|
2024-07-01 16:10:37 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_TriggeredMusic_Start
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_TriggeredMusic_Start()
|
|
|
|
{
|
|
|
|
if (Cmd_Argc() != 2) {
|
|
|
|
Com_Printf("tmstart <sound file>\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
S_StartBackgroundTrack(Cmd_Argv(1), "");
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_TriggeredMusic_StartLoop
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_TriggeredMusic_StartLoop()
|
|
|
|
{
|
|
|
|
if (Cmd_Argc() != 2) {
|
|
|
|
Com_Printf("tmstartloop <sound file>\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
S_StartBackgroundTrack(Cmd_Argv(1), Cmd_Argv(1));
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_TriggeredMusic_Stop
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_TriggeredMusic_Stop()
|
|
|
|
{
|
|
|
|
S_StopBackgroundTrack();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_TriggeredMusic_PlayIntroMusic
|
|
|
|
==============
|
|
|
|
*/
|
2023-07-21 20:30:11 +02:00
|
|
|
void S_TriggeredMusic_PlayIntroMusic() {
|
2024-07-01 16:10:37 +02:00
|
|
|
S_StartBackgroundTrack("sound/music/mus_MainTheme.mp3", "");
|
2023-08-13 20:20:17 +02:00
|
|
|
}
|
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_TriggeredMusic_SetupHandle
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_TriggeredMusic_SetupHandle(const char* pszName, int iLoopCount, int iOffset, qboolean autostart) {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
|
|
|
|
2024-07-22 20:07:32 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_GetMusicFilename
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
const char* S_GetMusicFilename() {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_GetMusicLoopCount
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
int S_GetMusicLoopCount() {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_GetMusicOffset
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
unsigned int S_GetMusicOffset() {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
callbackServer
|
|
|
|
==============
|
|
|
|
*/
|
2023-08-13 20:20:17 +02:00
|
|
|
void callbackServer(int entnum, int channel_number, const char* name) {
|
|
|
|
if (com_sv_running->integer) {
|
|
|
|
SV_SoundCallback(entnum, channel_number, name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_ChannelFree_Callback
|
|
|
|
==============
|
|
|
|
*/
|
2023-08-13 20:20:17 +02:00
|
|
|
void S_ChannelFree_Callback(channel_t* v) {
|
|
|
|
if (v->entnum & S_FLAG_DO_CALLBACK) {
|
|
|
|
callbackServer(v->entnum & ~S_FLAG_DO_CALLBACK, v - s_channels, v->thesfx->soundName);
|
|
|
|
}
|
2023-08-16 18:13:30 +02:00
|
|
|
}
|
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_LoadData
|
|
|
|
==============
|
|
|
|
*/
|
2023-08-16 18:13:30 +02:00
|
|
|
void S_LoadData(soundsystemsavegame_t* pSave) {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
2023-09-05 20:17:51 +02:00
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_SaveData
|
|
|
|
==============
|
|
|
|
*/
|
2023-09-05 20:17:51 +02:00
|
|
|
void S_SaveData(soundsystemsavegame_t* pSave) {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
2024-01-07 19:47:58 +01:00
|
|
|
|
2024-07-22 19:15:52 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_ReLoad
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_ReLoad(soundsystemsavegame_t* pSave) {
|
|
|
|
// FIXME: unimplemented
|
|
|
|
}
|
|
|
|
|
2024-09-18 20:49:38 +02:00
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_StopMovieAudio
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_StopMovieAudio() {
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_CurrentMoviePosition
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
int S_CurrentMoviePosition() {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==============
|
|
|
|
S_SetupMovieAudio
|
|
|
|
==============
|
|
|
|
*/
|
|
|
|
void S_SetupMovieAudio(const char* pszMovieName) {
|
|
|
|
}
|
|
|
|
|
2024-01-07 19:47:58 +01:00
|
|
|
#endif
|