mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 15:22:04 +00:00
move to static initialization for plugin info
This commit is contained in:
parent
49571b257d
commit
e4ba0ad5e5
1 changed files with 73 additions and 61 deletions
|
@ -60,8 +60,6 @@ int total_channels;
|
||||||
int snd_blocked = 0;
|
int snd_blocked = 0;
|
||||||
static qboolean snd_ambient = 1;
|
static qboolean snd_ambient = 1;
|
||||||
|
|
||||||
// pointer should go away
|
|
||||||
|
|
||||||
vec3_t listener_origin;
|
vec3_t listener_origin;
|
||||||
vec3_t listener_forward;
|
vec3_t listener_forward;
|
||||||
vec3_t listener_right;
|
vec3_t listener_right;
|
||||||
|
@ -89,13 +87,15 @@ cvar_t *snd_phasesep;
|
||||||
cvar_t *snd_show;
|
cvar_t *snd_show;
|
||||||
cvar_t *snd_volumesep;
|
cvar_t *snd_volumesep;
|
||||||
|
|
||||||
static plugin_t plugin_info;
|
|
||||||
static plugin_data_t plugin_info_data;
|
|
||||||
static plugin_funcs_t plugin_info_funcs;
|
|
||||||
static general_data_t plugin_info_general_data;
|
static general_data_t plugin_info_general_data;
|
||||||
static general_funcs_t plugin_info_general_funcs;
|
static snd_render_data_t render_data = {
|
||||||
static snd_render_data_t plugin_info_snd_render_data;
|
0,
|
||||||
static snd_render_funcs_t plugin_info_snd_render_funcs;
|
0,
|
||||||
|
0,
|
||||||
|
&soundtime,
|
||||||
|
&paintedtime,
|
||||||
|
0,
|
||||||
|
};
|
||||||
|
|
||||||
static snd_output_funcs_t *snd_output_funcs;
|
static snd_output_funcs_t *snd_output_funcs;
|
||||||
|
|
||||||
|
@ -246,8 +246,8 @@ SND_PickChannel (int entnum, int entchannel)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// don't let monster sounds override player sounds
|
// don't let monster sounds override player sounds
|
||||||
if (channels[ch_idx].entnum == *plugin_info_snd_render_data.viewentity
|
if (channels[ch_idx].entnum == *render_data.viewentity
|
||||||
&& entnum != *plugin_info_snd_render_data.viewentity
|
&& entnum != *render_data.viewentity
|
||||||
&& channels[ch_idx].sfx)
|
&& channels[ch_idx].sfx)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ SND_Spatialize (channel_t *ch)
|
||||||
vec3_t source_vec;
|
vec3_t source_vec;
|
||||||
|
|
||||||
// anything coming from the view entity will always be full volume
|
// anything coming from the view entity will always be full volume
|
||||||
if (ch->entnum == *plugin_info_snd_render_data.viewentity) {
|
if (ch->entnum == *render_data.viewentity) {
|
||||||
ch->leftvol = ch->master_vol;
|
ch->leftvol = ch->master_vol;
|
||||||
ch->rightvol = ch->master_vol;
|
ch->rightvol = ch->master_vol;
|
||||||
ch->phase = 0;
|
ch->phase = 0;
|
||||||
|
@ -492,11 +492,10 @@ SND_UpdateAmbientSounds (void)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// calc ambient sound levels
|
// calc ambient sound levels
|
||||||
if (!*plugin_info_snd_render_data.worldmodel)
|
if (!*render_data.worldmodel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
l = Mod_PointInLeaf (listener_origin,
|
l = Mod_PointInLeaf (listener_origin, *render_data.worldmodel);
|
||||||
*plugin_info_snd_render_data.worldmodel);
|
|
||||||
if (!l || !ambient_level->value) {
|
if (!l || !ambient_level->value) {
|
||||||
for (ambient_channel = 0; ambient_channel < NUM_AMBIENTS;
|
for (ambient_channel = 0; ambient_channel < NUM_AMBIENTS;
|
||||||
ambient_channel++)
|
ambient_channel++)
|
||||||
|
@ -515,12 +514,12 @@ SND_UpdateAmbientSounds (void)
|
||||||
|
|
||||||
// don't adjust volume too fast
|
// don't adjust volume too fast
|
||||||
if (chan->master_vol < vol) {
|
if (chan->master_vol < vol) {
|
||||||
chan->master_vol += *plugin_info_snd_render_data.host_frametime
|
chan->master_vol += *render_data.host_frametime
|
||||||
* ambient_fade->value;
|
* ambient_fade->value;
|
||||||
if (chan->master_vol > vol)
|
if (chan->master_vol > vol)
|
||||||
chan->master_vol = vol;
|
chan->master_vol = vol;
|
||||||
} else if (chan->master_vol > vol) {
|
} else if (chan->master_vol > vol) {
|
||||||
chan->master_vol -= *plugin_info_snd_render_data.host_frametime
|
chan->master_vol -= *render_data.host_frametime
|
||||||
* ambient_fade->value;
|
* ambient_fade->value;
|
||||||
if (chan->master_vol < vol)
|
if (chan->master_vol < vol)
|
||||||
chan->master_vol = vol;
|
chan->master_vol = vol;
|
||||||
|
@ -776,8 +775,7 @@ SND_LocalSound (const char *sound)
|
||||||
Sys_Printf ("S_LocalSound: can't cache %s\n", sound);
|
Sys_Printf ("S_LocalSound: can't cache %s\n", sound);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SND_StartSound (*plugin_info_snd_render_data.viewentity, -1, sfx,
|
SND_StartSound (*render_data.viewentity, -1, sfx, vec3_origin, 1, 1);
|
||||||
vec3_origin, 1, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -850,7 +848,7 @@ SND_Init_Cvars (void)
|
||||||
void
|
void
|
||||||
SND_Init (void)
|
SND_Init (void)
|
||||||
{
|
{
|
||||||
snd_output_funcs = plugin_info_snd_render_data.output->functions->snd_output;
|
snd_output_funcs = render_data.output->functions->snd_output;
|
||||||
Sys_Printf ("\nSound Initialization\n");
|
Sys_Printf ("\nSound Initialization\n");
|
||||||
|
|
||||||
Cmd_AddCommand ("play", SND_Play,
|
Cmd_AddCommand ("play", SND_Play,
|
||||||
|
@ -938,51 +936,65 @@ SND_Shutdown (void)
|
||||||
shm = 0;
|
shm = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static general_funcs_t plugin_info_general_funcs = {
|
||||||
|
SND_Init,
|
||||||
|
SND_Shutdown,
|
||||||
|
};
|
||||||
|
|
||||||
|
static snd_render_funcs_t plugin_info_render_funcs = {
|
||||||
|
SND_AmbientOff,
|
||||||
|
SND_AmbientOn,
|
||||||
|
SND_TouchSound,
|
||||||
|
SND_StaticSound,
|
||||||
|
SND_StartSound,
|
||||||
|
SND_StopSound,
|
||||||
|
SND_PrecacheSound,
|
||||||
|
SND_ClearPrecache,
|
||||||
|
SND_Update,
|
||||||
|
SND_StopAllSounds,
|
||||||
|
SND_BeginPrecaching,
|
||||||
|
SND_EndPrecaching,
|
||||||
|
SND_ExtraUpdate,
|
||||||
|
SND_LocalSound,
|
||||||
|
SND_BlockSound,
|
||||||
|
SND_UnblockSound,
|
||||||
|
};
|
||||||
|
|
||||||
|
static plugin_funcs_t plugin_info_funcs = {
|
||||||
|
&plugin_info_general_funcs,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
&plugin_info_render_funcs,
|
||||||
|
};
|
||||||
|
|
||||||
|
static plugin_data_t plugin_info_data = {
|
||||||
|
&plugin_info_general_data,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
&render_data,
|
||||||
|
};
|
||||||
|
|
||||||
|
static plugin_t plugin_info = {
|
||||||
|
qfp_snd_render,
|
||||||
|
0,
|
||||||
|
QFPLUGIN_VERSION,
|
||||||
|
"0.1",
|
||||||
|
"Sound Renderer",
|
||||||
|
"Copyright (C) 1996-1997 id Software, Inc.\n"
|
||||||
|
"Copyright (C) 1999,2000,2001 contributors of the QuakeForge "
|
||||||
|
"project\n"
|
||||||
|
"Please see the file \"AUTHORS\" for a list of contributors",
|
||||||
|
&plugin_info_funcs,
|
||||||
|
&plugin_info_data,
|
||||||
|
};
|
||||||
|
|
||||||
QFPLUGIN plugin_t *PLUGIN_INFO(snd_render, default) (void);
|
QFPLUGIN plugin_t *PLUGIN_INFO(snd_render, default) (void);
|
||||||
QFPLUGIN plugin_t *
|
QFPLUGIN plugin_t *
|
||||||
PLUGIN_INFO(snd_render, default) (void)
|
PLUGIN_INFO(snd_render, default) (void)
|
||||||
{
|
{
|
||||||
plugin_info.type = qfp_snd_render;
|
|
||||||
plugin_info.api_version = QFPLUGIN_VERSION;
|
|
||||||
plugin_info.plugin_version = "0.1";
|
|
||||||
plugin_info.description = "Sound Renderer";
|
|
||||||
plugin_info.copyright = "Copyright (C) 1996-1997 id Software, Inc.\n"
|
|
||||||
"Copyright (C) 1999,2000,2001 contributors of the QuakeForge "
|
|
||||||
"project\n"
|
|
||||||
"Please see the file \"AUTHORS\" for a list of contributors";
|
|
||||||
plugin_info.functions = &plugin_info_funcs;
|
|
||||||
plugin_info.data = &plugin_info_data;
|
|
||||||
|
|
||||||
plugin_info_data.general = &plugin_info_general_data;
|
|
||||||
plugin_info_data.input = NULL;
|
|
||||||
plugin_info_data.snd_render = &plugin_info_snd_render_data;
|
|
||||||
|
|
||||||
plugin_info_snd_render_data.soundtime = &soundtime;
|
|
||||||
plugin_info_snd_render_data.paintedtime = &paintedtime;
|
|
||||||
|
|
||||||
plugin_info_funcs.general = &plugin_info_general_funcs;
|
|
||||||
plugin_info_funcs.input = NULL;
|
|
||||||
plugin_info_funcs.snd_render = &plugin_info_snd_render_funcs;
|
|
||||||
|
|
||||||
plugin_info_general_funcs.p_Init = SND_Init;
|
|
||||||
plugin_info_general_funcs.p_Shutdown = SND_Shutdown;
|
|
||||||
|
|
||||||
plugin_info_snd_render_funcs.pS_AmbientOff = SND_AmbientOff;
|
|
||||||
plugin_info_snd_render_funcs.pS_AmbientOn = SND_AmbientOn;
|
|
||||||
plugin_info_snd_render_funcs.pS_TouchSound = SND_TouchSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_StaticSound = SND_StaticSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_StartSound = SND_StartSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_StopSound = SND_StopSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_PrecacheSound = SND_PrecacheSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_ClearPrecache = SND_ClearPrecache;
|
|
||||||
plugin_info_snd_render_funcs.pS_Update = SND_Update;
|
|
||||||
plugin_info_snd_render_funcs.pS_StopAllSounds = SND_StopAllSounds;
|
|
||||||
plugin_info_snd_render_funcs.pS_BeginPrecaching = SND_BeginPrecaching;
|
|
||||||
plugin_info_snd_render_funcs.pS_EndPrecaching = SND_EndPrecaching;
|
|
||||||
plugin_info_snd_render_funcs.pS_ExtraUpdate = SND_ExtraUpdate;
|
|
||||||
plugin_info_snd_render_funcs.pS_LocalSound = SND_LocalSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_BlockSound = SND_BlockSound;
|
|
||||||
plugin_info_snd_render_funcs.pS_UnblockSound = SND_UnblockSound;
|
|
||||||
|
|
||||||
return &plugin_info;
|
return &plugin_info;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue