mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-26 22:11:18 +00:00
* OpenAL now respatializes using the player entity origin instead of the view
origin by default. The old behaviour is available by setting s_alSpatEntOrigin to 0.
This commit is contained in:
parent
3e803b40d2
commit
932ca8027c
2 changed files with 16 additions and 5 deletions
1
README
1
README
|
@ -105,6 +105,7 @@ New cvars
|
||||||
s_alMinDistance - the value of AL_REFERENCE_DISTANCE for each source
|
s_alMinDistance - the value of AL_REFERENCE_DISTANCE for each source
|
||||||
s_alRolloff - the value of AL_ROLLOFF_FACTOR for each source
|
s_alRolloff - the value of AL_ROLLOFF_FACTOR for each source
|
||||||
s_alMaxSpeakerDistance - ET_SPEAKERS beyond this distance are culled
|
s_alMaxSpeakerDistance - ET_SPEAKERS beyond this distance are culled
|
||||||
|
s_alSpatEntOrigin - spatialize entity origin instead of view origin
|
||||||
s_alDriver - which OpenAL library to use
|
s_alDriver - which OpenAL library to use
|
||||||
|
|
||||||
s_sdlBits - SDL bit resolution
|
s_sdlBits - SDL bit resolution
|
||||||
|
|
|
@ -39,6 +39,7 @@ cvar_t *s_alMinDistance;
|
||||||
cvar_t *s_alRolloff;
|
cvar_t *s_alRolloff;
|
||||||
cvar_t *s_alDriver;
|
cvar_t *s_alDriver;
|
||||||
cvar_t *s_alMaxSpeakerDistance;
|
cvar_t *s_alMaxSpeakerDistance;
|
||||||
|
cvar_t *s_alSpatEntOrigin;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
=================
|
=================
|
||||||
|
@ -1460,10 +1461,18 @@ S_AL_Respatialize
|
||||||
static
|
static
|
||||||
void S_AL_Respatialize( int entityNum, const vec3_t origin, vec3_t axis[3], int inwater )
|
void S_AL_Respatialize( int entityNum, const vec3_t origin, vec3_t axis[3], int inwater )
|
||||||
{
|
{
|
||||||
float velocity[3] = {0.0f, 0.0f, 0.0f};
|
float velocity[3] = {0.0f, 0.0f, 0.0f};
|
||||||
float orientation[6];
|
float orientation[6];
|
||||||
|
vec3_t sorigin;
|
||||||
|
|
||||||
|
if( s_alSpatEntOrigin->integer && entityNum )
|
||||||
|
VectorCopy( entityList[ entityNum ].origin, sorigin );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VectorCopy( origin, sorigin );
|
||||||
|
S_AL_SanitiseVector( sorigin );
|
||||||
|
}
|
||||||
|
|
||||||
S_AL_SanitiseVector( (vec_t *)origin );
|
|
||||||
S_AL_SanitiseVector( axis[ 0 ] );
|
S_AL_SanitiseVector( axis[ 0 ] );
|
||||||
S_AL_SanitiseVector( axis[ 1 ] );
|
S_AL_SanitiseVector( axis[ 1 ] );
|
||||||
S_AL_SanitiseVector( axis[ 2 ] );
|
S_AL_SanitiseVector( axis[ 2 ] );
|
||||||
|
@ -1471,10 +1480,10 @@ void S_AL_Respatialize( int entityNum, const vec3_t origin, vec3_t axis[3], int
|
||||||
orientation[0] = axis[0][0]; orientation[1] = axis[0][1]; orientation[2] = axis[0][2];
|
orientation[0] = axis[0][0]; orientation[1] = axis[0][1]; orientation[2] = axis[0][2];
|
||||||
orientation[3] = axis[2][0]; orientation[4] = axis[2][1]; orientation[5] = axis[2][2];
|
orientation[3] = axis[2][0]; orientation[4] = axis[2][1]; orientation[5] = axis[2][2];
|
||||||
|
|
||||||
VectorCopy( origin, lastListenerOrigin );
|
VectorCopy( sorigin, lastListenerOrigin );
|
||||||
|
|
||||||
// Set OpenAL listener paramaters
|
// Set OpenAL listener paramaters
|
||||||
qalListenerfv(AL_POSITION, (ALfloat *)origin);
|
qalListenerfv(AL_POSITION, (ALfloat *)sorigin);
|
||||||
qalListenerfv(AL_VELOCITY, velocity);
|
qalListenerfv(AL_VELOCITY, velocity);
|
||||||
qalListenerfv(AL_ORIENTATION, orientation);
|
qalListenerfv(AL_ORIENTATION, orientation);
|
||||||
}
|
}
|
||||||
|
@ -1631,6 +1640,7 @@ qboolean S_AL_Init( soundInterface_t *si )
|
||||||
s_alMinDistance = Cvar_Get( "s_alMinDistance", "120", CVAR_CHEAT );
|
s_alMinDistance = Cvar_Get( "s_alMinDistance", "120", CVAR_CHEAT );
|
||||||
s_alRolloff = Cvar_Get( "s_alRolloff", "0.8", CVAR_CHEAT );
|
s_alRolloff = Cvar_Get( "s_alRolloff", "0.8", CVAR_CHEAT );
|
||||||
s_alMaxSpeakerDistance = Cvar_Get( "s_alMaxSpeakerDistance", "1024", CVAR_ARCHIVE );
|
s_alMaxSpeakerDistance = Cvar_Get( "s_alMaxSpeakerDistance", "1024", CVAR_ARCHIVE );
|
||||||
|
s_alSpatEntOrigin = Cvar_Get( "s_alSpatEntOrigin", "1", CVAR_ARCHIVE );
|
||||||
|
|
||||||
s_alDriver = Cvar_Get( "s_alDriver", ALDRIVER_DEFAULT, CVAR_ARCHIVE );
|
s_alDriver = Cvar_Get( "s_alDriver", ALDRIVER_DEFAULT, CVAR_ARCHIVE );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue