commit
a890a8a3b4
706
eax/eax-util.cpp
Normal file
706
eax/eax-util.cpp
Normal file
@ -0,0 +1,706 @@
|
||||
/***********************************************************************************************\
|
||||
* *
|
||||
* EAX-UTIL.CPP - utilities for EAX 3.0 *
|
||||
* Function declaration for EAX Morphing *
|
||||
* String names of the all the presets defined in eax-util.h *
|
||||
* Arrays grouping together all the EAX presets in a scenario *
|
||||
* *
|
||||
************************************************************************************************/
|
||||
|
||||
#include "eax-util.h"
|
||||
#include <math.h>
|
||||
|
||||
// Function prototypes used by EAX3ListenerInterpolate
|
||||
void Clamp(EAXVECTOR *eaxVector);
|
||||
bool CheckEAX3LP(LPEAXLISTENERPROPERTIES lpEAX3LP);
|
||||
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* Definition of the EAXMorph function - EAX3ListenerInterpolate
|
||||
*
|
||||
\***********************************************************************************************/
|
||||
|
||||
/*
|
||||
EAX3ListenerInterpolate
|
||||
lpStart - Initial EAX 3 Listener parameters
|
||||
lpFinish - Final EAX 3 Listener parameters
|
||||
flRatio - Ratio Destination : Source (0.0 == Source, 1.0 == Destination)
|
||||
lpResult - Interpolated EAX 3 Listener parameters
|
||||
bCheckValues - Check EAX 3.0 parameters are in range, default = false (no checking)
|
||||
*/
|
||||
bool EAX3ListenerInterpolate(LPEAXLISTENERPROPERTIES lpStart, LPEAXLISTENERPROPERTIES lpFinish,
|
||||
float flRatio, LPEAXLISTENERPROPERTIES lpResult, bool bCheckValues)
|
||||
{
|
||||
EAXVECTOR StartVector, FinalVector;
|
||||
|
||||
float flInvRatio;
|
||||
|
||||
if (bCheckValues)
|
||||
{
|
||||
if (!CheckEAX3LP(lpStart))
|
||||
return false;
|
||||
|
||||
if (!CheckEAX3LP(lpFinish))
|
||||
return false;
|
||||
}
|
||||
|
||||
if (flRatio >= 1.0f)
|
||||
{
|
||||
memcpy(lpResult, lpFinish, sizeof(EAXLISTENERPROPERTIES));
|
||||
return true;
|
||||
}
|
||||
else if (flRatio <= 0.0f)
|
||||
{
|
||||
memcpy(lpResult, lpStart, sizeof(EAXLISTENERPROPERTIES));
|
||||
return true;
|
||||
}
|
||||
|
||||
flInvRatio = (1.0f - flRatio);
|
||||
|
||||
// Environment
|
||||
lpResult->ulEnvironment = 26; // (UNDEFINED environment)
|
||||
|
||||
// Environment Size
|
||||
if (lpStart->flEnvironmentSize == lpFinish->flEnvironmentSize)
|
||||
lpResult->flEnvironmentSize = lpStart->flEnvironmentSize;
|
||||
else
|
||||
lpResult->flEnvironmentSize = (float)exp( (log(lpStart->flEnvironmentSize) * flInvRatio) + (log(lpFinish->flEnvironmentSize) * flRatio) );
|
||||
|
||||
// Environment Diffusion
|
||||
if (lpStart->flEnvironmentDiffusion == lpFinish->flEnvironmentDiffusion)
|
||||
lpResult->flEnvironmentDiffusion = lpStart->flEnvironmentDiffusion;
|
||||
else
|
||||
lpResult->flEnvironmentDiffusion = (lpStart->flEnvironmentDiffusion * flInvRatio) + (lpFinish->flEnvironmentDiffusion * flRatio);
|
||||
|
||||
// Room
|
||||
if (lpStart->lRoom == lpFinish->lRoom)
|
||||
lpResult->lRoom = lpStart->lRoom;
|
||||
else
|
||||
lpResult->lRoom = (int)( ((float)lpStart->lRoom * flInvRatio) + ((float)lpFinish->lRoom * flRatio) );
|
||||
|
||||
// Room HF
|
||||
if (lpStart->lRoomHF == lpFinish->lRoomHF)
|
||||
lpResult->lRoomHF = lpStart->lRoomHF;
|
||||
else
|
||||
lpResult->lRoomHF = (int)( ((float)lpStart->lRoomHF * flInvRatio) + ((float)lpFinish->lRoomHF * flRatio) );
|
||||
|
||||
// Room LF
|
||||
if (lpStart->lRoomLF == lpFinish->lRoomLF)
|
||||
lpResult->lRoomLF = lpStart->lRoomLF;
|
||||
else
|
||||
lpResult->lRoomLF = (int)( ((float)lpStart->lRoomLF * flInvRatio) + ((float)lpFinish->lRoomLF * flRatio) );
|
||||
|
||||
// Decay Time
|
||||
if (lpStart->flDecayTime == lpFinish->flDecayTime)
|
||||
lpResult->flDecayTime = lpStart->flDecayTime;
|
||||
else
|
||||
lpResult->flDecayTime = (float)exp( (log(lpStart->flDecayTime) * flInvRatio) + (log(lpFinish->flDecayTime) * flRatio) );
|
||||
|
||||
// Decay HF Ratio
|
||||
if (lpStart->flDecayHFRatio == lpFinish->flDecayHFRatio)
|
||||
lpResult->flDecayHFRatio = lpStart->flDecayHFRatio;
|
||||
else
|
||||
lpResult->flDecayHFRatio = (float)exp( (log(lpStart->flDecayHFRatio) * flInvRatio) + (log(lpFinish->flDecayHFRatio) * flRatio) );
|
||||
|
||||
// Decay LF Ratio
|
||||
if (lpStart->flDecayLFRatio == lpFinish->flDecayLFRatio)
|
||||
lpResult->flDecayLFRatio = lpStart->flDecayLFRatio;
|
||||
else
|
||||
lpResult->flDecayLFRatio = (float)exp( (log(lpStart->flDecayLFRatio) * flInvRatio) + (log(lpFinish->flDecayLFRatio) * flRatio) );
|
||||
|
||||
// Reflections
|
||||
if (lpStart->lReflections == lpFinish->lReflections)
|
||||
lpResult->lReflections = lpStart->lReflections;
|
||||
else
|
||||
lpResult->lReflections = (int)( ((float)lpStart->lReflections * flInvRatio) + ((float)lpFinish->lReflections * flRatio) );
|
||||
|
||||
// Reflections Delay
|
||||
if (lpStart->flReflectionsDelay == lpFinish->flReflectionsDelay)
|
||||
lpResult->flReflectionsDelay = lpStart->flReflectionsDelay;
|
||||
else
|
||||
lpResult->flReflectionsDelay = (float)exp( (log(lpStart->flReflectionsDelay+0.0001) * flInvRatio) + (log(lpFinish->flReflectionsDelay+0.0001) * flRatio) );
|
||||
|
||||
// Reflections Pan
|
||||
|
||||
// To interpolate the vector correctly we need to ensure that both the initial and final vectors vectors are clamped to a length of 1.0f
|
||||
StartVector = lpStart->vReflectionsPan;
|
||||
FinalVector = lpFinish->vReflectionsPan;
|
||||
|
||||
Clamp(&StartVector);
|
||||
Clamp(&FinalVector);
|
||||
|
||||
if (lpStart->vReflectionsPan.x == lpFinish->vReflectionsPan.x)
|
||||
lpResult->vReflectionsPan.x = lpStart->vReflectionsPan.x;
|
||||
else
|
||||
lpResult->vReflectionsPan.x = FinalVector.x + (flInvRatio * (StartVector.x - FinalVector.x));
|
||||
|
||||
if (lpStart->vReflectionsPan.y == lpFinish->vReflectionsPan.y)
|
||||
lpResult->vReflectionsPan.y = lpStart->vReflectionsPan.y;
|
||||
else
|
||||
lpResult->vReflectionsPan.y = FinalVector.y + (flInvRatio * (StartVector.y - FinalVector.y));
|
||||
|
||||
if (lpStart->vReflectionsPan.z == lpFinish->vReflectionsPan.z)
|
||||
lpResult->vReflectionsPan.z = lpStart->vReflectionsPan.z;
|
||||
else
|
||||
lpResult->vReflectionsPan.z = FinalVector.z + (flInvRatio * (StartVector.z - FinalVector.z));
|
||||
|
||||
// Reverb
|
||||
if (lpStart->lReverb == lpFinish->lReverb)
|
||||
lpResult->lReverb = lpStart->lReverb;
|
||||
else
|
||||
lpResult->lReverb = (int)( ((float)lpStart->lReverb * flInvRatio) + ((float)lpFinish->lReverb * flRatio) );
|
||||
|
||||
// Reverb Delay
|
||||
if (lpStart->flReverbDelay == lpFinish->flReverbDelay)
|
||||
lpResult->flReverbDelay = lpStart->flReverbDelay;
|
||||
else
|
||||
lpResult->flReverbDelay = (float)exp( (log(lpStart->flReverbDelay+0.0001) * flInvRatio) + (log(lpFinish->flReverbDelay+0.0001) * flRatio) );
|
||||
|
||||
// Reverb Pan
|
||||
|
||||
// To interpolate the vector correctly we need to ensure that both the initial and final vectors are clamped to a length of 1.0f
|
||||
StartVector = lpStart->vReverbPan;
|
||||
FinalVector = lpFinish->vReverbPan;
|
||||
|
||||
Clamp(&StartVector);
|
||||
Clamp(&FinalVector);
|
||||
|
||||
if (lpStart->vReverbPan.x == lpFinish->vReverbPan.x)
|
||||
lpResult->vReverbPan.x = lpStart->vReverbPan.x;
|
||||
else
|
||||
lpResult->vReverbPan.x = FinalVector.x + (flInvRatio * (StartVector.x - FinalVector.x));
|
||||
|
||||
if (lpStart->vReverbPan.y == lpFinish->vReverbPan.y)
|
||||
lpResult->vReverbPan.y = lpStart->vReverbPan.y;
|
||||
else
|
||||
lpResult->vReverbPan.y = FinalVector.y + (flInvRatio * (StartVector.y - FinalVector.y));
|
||||
|
||||
if (lpStart->vReverbPan.z == lpFinish->vReverbPan.z)
|
||||
lpResult->vReverbPan.z = lpStart->vReverbPan.z;
|
||||
else
|
||||
lpResult->vReverbPan.z = FinalVector.z + (flInvRatio * (StartVector.z - FinalVector.z));
|
||||
|
||||
// Echo Time
|
||||
if (lpStart->flEchoTime == lpFinish->flEchoTime)
|
||||
lpResult->flEchoTime = lpStart->flEchoTime;
|
||||
else
|
||||
lpResult->flEchoTime = (float)exp( (log(lpStart->flEchoTime) * flInvRatio) + (log(lpFinish->flEchoTime) * flRatio) );
|
||||
|
||||
// Echo Depth
|
||||
if (lpStart->flEchoDepth == lpFinish->flEchoDepth)
|
||||
lpResult->flEchoDepth = lpStart->flEchoDepth;
|
||||
else
|
||||
lpResult->flEchoDepth = (lpStart->flEchoDepth * flInvRatio) + (lpFinish->flEchoDepth * flRatio);
|
||||
|
||||
// Modulation Time
|
||||
if (lpStart->flModulationTime == lpFinish->flModulationTime)
|
||||
lpResult->flModulationTime = lpStart->flModulationTime;
|
||||
else
|
||||
lpResult->flModulationTime = (float)exp( (log(lpStart->flModulationTime) * flInvRatio) + (log(lpFinish->flModulationTime) * flRatio) );
|
||||
|
||||
// Modulation Depth
|
||||
if (lpStart->flModulationDepth == lpFinish->flModulationDepth)
|
||||
lpResult->flModulationDepth = lpStart->flModulationDepth;
|
||||
else
|
||||
lpResult->flModulationDepth = (lpStart->flModulationDepth * flInvRatio) + (lpFinish->flModulationDepth * flRatio);
|
||||
|
||||
// Air Absorption HF
|
||||
if (lpStart->flAirAbsorptionHF == lpFinish->flAirAbsorptionHF)
|
||||
lpResult->flAirAbsorptionHF = lpStart->flAirAbsorptionHF;
|
||||
else
|
||||
lpResult->flAirAbsorptionHF = (lpStart->flAirAbsorptionHF * flInvRatio) + (lpFinish->flAirAbsorptionHF * flRatio);
|
||||
|
||||
// HF Reference
|
||||
if (lpStart->flHFReference == lpFinish->flHFReference)
|
||||
lpResult->flHFReference = lpStart->flHFReference;
|
||||
else
|
||||
lpResult->flHFReference = (float)exp( (log(lpStart->flHFReference) * flInvRatio) + (log(lpFinish->flHFReference) * flRatio) );
|
||||
|
||||
// LF Reference
|
||||
if (lpStart->flLFReference == lpFinish->flLFReference)
|
||||
lpResult->flLFReference = lpStart->flLFReference;
|
||||
else
|
||||
lpResult->flLFReference = (float)exp( (log(lpStart->flLFReference) * flInvRatio) + (log(lpFinish->flLFReference) * flRatio) );
|
||||
|
||||
// Room Rolloff Factor
|
||||
if (lpStart->flRoomRolloffFactor == lpFinish->flRoomRolloffFactor)
|
||||
lpResult->flRoomRolloffFactor = lpStart->flRoomRolloffFactor;
|
||||
else
|
||||
lpResult->flRoomRolloffFactor = (lpStart->flRoomRolloffFactor * flInvRatio) + (lpFinish->flRoomRolloffFactor * flRatio);
|
||||
|
||||
// Flags
|
||||
lpResult->ulFlags = (lpStart->ulFlags & lpFinish->ulFlags);
|
||||
|
||||
// Clamp Delays
|
||||
if (lpResult->flReflectionsDelay > EAXLISTENER_MAXREFLECTIONSDELAY)
|
||||
lpResult->flReflectionsDelay = EAXLISTENER_MAXREFLECTIONSDELAY;
|
||||
|
||||
if (lpResult->flReverbDelay > EAXLISTENER_MAXREVERBDELAY)
|
||||
lpResult->flReverbDelay = EAXLISTENER_MAXREVERBDELAY;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
CheckEAX3LP
|
||||
Checks that the parameters in the EAX 3 Listener Properties structure are in-range
|
||||
*/
|
||||
bool CheckEAX3LP(LPEAXLISTENERPROPERTIES lpEAX3LP)
|
||||
{
|
||||
if ( (lpEAX3LP->lRoom < EAXLISTENER_MINROOM) || (lpEAX3LP->lRoom > EAXLISTENER_MAXROOM) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->lRoomHF < EAXLISTENER_MINROOMHF) || (lpEAX3LP->lRoomHF > EAXLISTENER_MAXROOMHF) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->lRoomLF < EAXLISTENER_MINROOMLF) || (lpEAX3LP->lRoomLF > EAXLISTENER_MAXROOMLF) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->ulEnvironment < EAXLISTENER_MINENVIRONMENT) || (lpEAX3LP->ulEnvironment > EAXLISTENER_MAXENVIRONMENT) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flEnvironmentSize < EAXLISTENER_MINENVIRONMENTSIZE) || (lpEAX3LP->flEnvironmentSize > EAXLISTENER_MAXENVIRONMENTSIZE) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flEnvironmentDiffusion < EAXLISTENER_MINENVIRONMENTDIFFUSION) || (lpEAX3LP->flEnvironmentDiffusion > EAXLISTENER_MAXENVIRONMENTDIFFUSION) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flDecayTime < EAXLISTENER_MINDECAYTIME) || (lpEAX3LP->flDecayTime > EAXLISTENER_MAXDECAYTIME) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flDecayHFRatio < EAXLISTENER_MINDECAYHFRATIO) || (lpEAX3LP->flDecayHFRatio > EAXLISTENER_MAXDECAYHFRATIO) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flDecayLFRatio < EAXLISTENER_MINDECAYLFRATIO) || (lpEAX3LP->flDecayLFRatio > EAXLISTENER_MAXDECAYLFRATIO) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->lReflections < EAXLISTENER_MINREFLECTIONS) || (lpEAX3LP->lReflections > EAXLISTENER_MAXREFLECTIONS) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flReflectionsDelay < EAXLISTENER_MINREFLECTIONSDELAY) || (lpEAX3LP->flReflectionsDelay > EAXLISTENER_MAXREFLECTIONSDELAY) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->lReverb < EAXLISTENER_MINREVERB) || (lpEAX3LP->lReverb > EAXLISTENER_MAXREVERB) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flReverbDelay < EAXLISTENER_MINREVERBDELAY) || (lpEAX3LP->flReverbDelay > EAXLISTENER_MAXREVERBDELAY) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flEchoTime < EAXLISTENER_MINECHOTIME) || (lpEAX3LP->flEchoTime > EAXLISTENER_MAXECHOTIME) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flEchoDepth < EAXLISTENER_MINECHODEPTH) || (lpEAX3LP->flEchoDepth > EAXLISTENER_MAXECHODEPTH) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flModulationTime < EAXLISTENER_MINMODULATIONTIME) || (lpEAX3LP->flModulationTime > EAXLISTENER_MAXMODULATIONTIME) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flModulationDepth < EAXLISTENER_MINMODULATIONDEPTH) || (lpEAX3LP->flModulationDepth > EAXLISTENER_MAXMODULATIONDEPTH) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flAirAbsorptionHF < EAXLISTENER_MINAIRABSORPTIONHF) || (lpEAX3LP->flAirAbsorptionHF > EAXLISTENER_MAXAIRABSORPTIONHF) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flHFReference < EAXLISTENER_MINHFREFERENCE) || (lpEAX3LP->flHFReference > EAXLISTENER_MAXHFREFERENCE) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flLFReference < EAXLISTENER_MINLFREFERENCE) || (lpEAX3LP->flLFReference > EAXLISTENER_MAXLFREFERENCE) )
|
||||
return false;
|
||||
|
||||
if ( (lpEAX3LP->flRoomRolloffFactor < EAXLISTENER_MINROOMROLLOFFFACTOR) || (lpEAX3LP->flRoomRolloffFactor > EAXLISTENER_MAXROOMROLLOFFFACTOR) )
|
||||
return false;
|
||||
|
||||
if (lpEAX3LP->ulFlags & EAXLISTENERFLAGS_RESERVED)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
Clamp
|
||||
Clamps the length of the vector to 1.0f
|
||||
*/
|
||||
void Clamp(EAXVECTOR *eaxVector)
|
||||
{
|
||||
float flMagnitude;
|
||||
float flInvMagnitude;
|
||||
|
||||
flMagnitude = (float)sqrt((eaxVector->x*eaxVector->x) + (eaxVector->y*eaxVector->y) + (eaxVector->z*eaxVector->z));
|
||||
|
||||
if (flMagnitude <= 1.0f)
|
||||
return;
|
||||
|
||||
flInvMagnitude = 1.0f / flMagnitude;
|
||||
|
||||
eaxVector->x *= flInvMagnitude;
|
||||
eaxVector->y *= flInvMagnitude;
|
||||
eaxVector->z *= flInvMagnitude;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* To assist those developers wishing to add EAX effects to their level editors, each of the
|
||||
|
||||
* List of string names of the various EAX 3.0 presets defined in eax-util.h
|
||||
* Arrays to group together presets of the same scenario
|
||||
*
|
||||
\***********************************************************************************************/
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of scenario names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_SCENARIO_NAMES[] =
|
||||
{
|
||||
"Castle",
|
||||
"Factory",
|
||||
"IcePalace",
|
||||
"SpaceStation",
|
||||
"WoodenShip",
|
||||
"Sports",
|
||||
"Prefab",
|
||||
"Domes and Pipes",
|
||||
"Outdoors",
|
||||
"Mood",
|
||||
"Driving",
|
||||
"City",
|
||||
"Miscellaneous",
|
||||
"Original"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of standardised location names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_LOCATION_NAMES[] =
|
||||
{
|
||||
"Hall",
|
||||
"Large Room",
|
||||
"Medium Room",
|
||||
"Small Room",
|
||||
"Cupboard",
|
||||
"Alcove",
|
||||
"Long Passage",
|
||||
"Short Passage",
|
||||
"Courtyard"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Standardised Location effects can be accessed //
|
||||
// from a matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_STANDARD_PRESETS[EAX30_NUM_STANDARD_SCENARIOS][EAX30_NUM_LOCATIONS]=
|
||||
{
|
||||
{EAX30_PRESET_CASTLE_HALL, EAX30_PRESET_CASTLE_LARGEROOM, EAX30_PRESET_CASTLE_MEDIUMROOM, EAX30_PRESET_CASTLE_SMALLROOM, EAX30_PRESET_CASTLE_CUPBOARD, EAX30_PRESET_CASTLE_ALCOVE, EAX30_PRESET_CASTLE_LONGPASSAGE, EAX30_PRESET_CASTLE_SHORTPASSAGE, EAX30_PRESET_CASTLE_COURTYARD},
|
||||
{EAX30_PRESET_FACTORY_HALL, EAX30_PRESET_FACTORY_LARGEROOM, EAX30_PRESET_FACTORY_MEDIUMROOM, EAX30_PRESET_FACTORY_SMALLROOM, EAX30_PRESET_FACTORY_CUPBOARD, EAX30_PRESET_FACTORY_ALCOVE, EAX30_PRESET_FACTORY_LONGPASSAGE, EAX30_PRESET_FACTORY_SHORTPASSAGE, EAX30_PRESET_FACTORY_COURTYARD},
|
||||
{EAX30_PRESET_ICEPALACE_HALL, EAX30_PRESET_ICEPALACE_LARGEROOM, EAX30_PRESET_ICEPALACE_MEDIUMROOM, EAX30_PRESET_ICEPALACE_SMALLROOM, EAX30_PRESET_ICEPALACE_CUPBOARD, EAX30_PRESET_ICEPALACE_ALCOVE, EAX30_PRESET_ICEPALACE_LONGPASSAGE, EAX30_PRESET_ICEPALACE_SHORTPASSAGE, EAX30_PRESET_ICEPALACE_COURTYARD},
|
||||
{EAX30_PRESET_SPACESTATION_HALL,EAX30_PRESET_SPACESTATION_LARGEROOM,EAX30_PRESET_SPACESTATION_MEDIUMROOM, EAX30_PRESET_SPACESTATION_SMALLROOM,EAX30_PRESET_SPACESTATION_CUPBOARD, EAX30_PRESET_SPACESTATION_ALCOVE, EAX30_PRESET_SPACESTATION_LONGPASSAGE, EAX30_PRESET_SPACESTATION_SHORTPASSAGE, EAX30_PRESET_SPACESTATION_HALL},
|
||||
{EAX30_PRESET_WOODEN_HALL, EAX30_PRESET_WOODEN_LARGEROOM, EAX30_PRESET_WOODEN_MEDIUMROOM, EAX30_PRESET_WOODEN_SMALLROOM, EAX30_PRESET_WOODEN_CUPBOARD, EAX30_PRESET_WOODEN_ALCOVE, EAX30_PRESET_WOODEN_LONGPASSAGE, EAX30_PRESET_WOODEN_SHORTPASSAGE, EAX30_PRESET_WOODEN_COURTYARD},
|
||||
};
|
||||
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of original environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_ORIGINAL_PRESET_NAMES[] =
|
||||
{
|
||||
"Generic",
|
||||
"Padded Cell",
|
||||
"Room",
|
||||
"Bathroom",
|
||||
"Living Room",
|
||||
"Stone Room",
|
||||
"Auditorium",
|
||||
"Concert Hall",
|
||||
"Cave",
|
||||
"Arena",
|
||||
"Hangar",
|
||||
"Carpetted Hallway",
|
||||
"Hallway",
|
||||
"Stone Corridor",
|
||||
"Alley",
|
||||
"Forest",
|
||||
"City",
|
||||
"Mountains",
|
||||
"Quarry",
|
||||
"Plain",
|
||||
"Parking Lot",
|
||||
"Sewer Pipe",
|
||||
"Underwater",
|
||||
"Drugged",
|
||||
"Dizzy",
|
||||
"Psychotic"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Sports effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_ORIGINAL_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_GENERIC,
|
||||
EAX30_PRESET_PADDEDCELL,
|
||||
EAX30_PRESET_ROOM,
|
||||
EAX30_PRESET_BATHROOM,
|
||||
EAX30_PRESET_LIVINGROOM,
|
||||
EAX30_PRESET_STONEROOM,
|
||||
EAX30_PRESET_AUDITORIUM,
|
||||
EAX30_PRESET_CONCERTHALL,
|
||||
EAX30_PRESET_CAVE,
|
||||
EAX30_PRESET_ARENA,
|
||||
EAX30_PRESET_HANGAR,
|
||||
EAX30_PRESET_CARPETTEDHALLWAY,
|
||||
EAX30_PRESET_HALLWAY,
|
||||
EAX30_PRESET_STONECORRIDOR,
|
||||
EAX30_PRESET_ALLEY,
|
||||
EAX30_PRESET_FOREST,
|
||||
EAX30_PRESET_CITY,
|
||||
EAX30_PRESET_MOUNTAINS,
|
||||
EAX30_PRESET_QUARRY,
|
||||
EAX30_PRESET_PLAIN,
|
||||
EAX30_PRESET_PARKINGLOT,
|
||||
EAX30_PRESET_SEWERPIPE,
|
||||
EAX30_PRESET_UNDERWATER,
|
||||
EAX30_PRESET_DRUGGED,
|
||||
EAX30_PRESET_DIZZY,
|
||||
EAX30_PRESET_PSYCHOTIC
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of sport environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_SPORTS_PRESET_NAMES[] =
|
||||
{
|
||||
"Empty Stadium",
|
||||
"Full Stadium",
|
||||
"Stadium Tannoy",
|
||||
"Squash Court",
|
||||
"Small Swimming Pool",
|
||||
"Large Swimming Pool",
|
||||
"Gymnasium"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Sports effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_SPORTS_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_SPORT_EMPTYSTADIUM,
|
||||
EAX30_PRESET_SPORT_FULLSTADIUM,
|
||||
EAX30_PRESET_SPORT_STADIUMTANNOY,
|
||||
EAX30_PRESET_SPORT_SQUASHCOURT,
|
||||
EAX30_PRESET_SPORT_SMALLSWIMMINGPOOL,
|
||||
EAX30_PRESET_SPORT_LARGESWIMMINGPOOL,
|
||||
EAX30_PRESET_SPORT_GYMNASIUM
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of prefab environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_PREFAB_PRESET_NAMES[] =
|
||||
{
|
||||
"Workshop",
|
||||
"School Room",
|
||||
"Practise Room",
|
||||
"Outhouse",
|
||||
"Caravan"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Prefab effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_PREFAB_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_PREFAB_WORKSHOP,
|
||||
EAX30_PRESET_PREFAB_SCHOOLROOM,
|
||||
EAX30_PRESET_PREFAB_PRACTISEROOM,
|
||||
EAX30_PRESET_PREFAB_OUTHOUSE,
|
||||
EAX30_PRESET_PREFAB_CARAVAN
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Domes & Pipes environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_DOMESNPIPES_PRESET_NAMES[] =
|
||||
{
|
||||
"Domed Tomb",
|
||||
"Saint Paul's Dome",
|
||||
"Small Pipe",
|
||||
"Long Thin Pipe",
|
||||
"Large Pipe",
|
||||
"Resonant Pipe"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Domes & Pipes effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_DOMESNPIPES_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_DOME_TOMB,
|
||||
EAX30_PRESET_DOME_SAINTPAULS,
|
||||
EAX30_PRESET_PIPE_SMALL,
|
||||
EAX30_PRESET_PIPE_LONGTHIN,
|
||||
EAX30_PRESET_PIPE_LARGE,
|
||||
EAX30_PRESET_PIPE_RESONANT
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Outdoors environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_OUTDOORS_PRESET_NAMES[] =
|
||||
{
|
||||
"Backyard",
|
||||
"Rolling Plains",
|
||||
"Deep Canyon",
|
||||
"Creek",
|
||||
"Valley"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Outdoors effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_OUTDOORS_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_OUTDOORS_BACKYARD,
|
||||
EAX30_PRESET_OUTDOORS_ROLLINGPLAINS,
|
||||
EAX30_PRESET_OUTDOORS_DEEPCANYON,
|
||||
EAX30_PRESET_OUTDOORS_CREEK,
|
||||
EAX30_PRESET_OUTDOORS_VALLEY
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Mood environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_MOOD_PRESET_NAMES[] =
|
||||
{
|
||||
"Heaven",
|
||||
"Hell",
|
||||
"Memory"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Mood effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_MOOD_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_MOOD_HEAVEN,
|
||||
EAX30_PRESET_MOOD_HELL,
|
||||
EAX30_PRESET_MOOD_MEMORY
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of driving environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_DRIVING_PRESET_NAMES[] =
|
||||
{
|
||||
"Race Commentator",
|
||||
"Pit Garage",
|
||||
"In-car (Stripped out racer)",
|
||||
"In-car (Sportscar)",
|
||||
"In-car (Luxury)",
|
||||
"Full Grandstand",
|
||||
"Empty Grandstand",
|
||||
"Tunnel"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Driving effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_DRIVING_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_DRIVING_COMMENTATOR,
|
||||
EAX30_PRESET_DRIVING_PITGARAGE,
|
||||
EAX30_PRESET_DRIVING_INCAR_RACER,
|
||||
EAX30_PRESET_DRIVING_INCAR_SPORTS,
|
||||
EAX30_PRESET_DRIVING_INCAR_LUXURY,
|
||||
EAX30_PRESET_DRIVING_FULLGRANDSTAND,
|
||||
EAX30_PRESET_DRIVING_EMPTYGRANDSTAND,
|
||||
EAX30_PRESET_DRIVING_TUNNEL
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of City environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_CITY_PRESET_NAMES[] =
|
||||
{
|
||||
"City Streets",
|
||||
"Subway",
|
||||
"Museum",
|
||||
"Library",
|
||||
"Underpass",
|
||||
"Abandoned City"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// City effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_CITY_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_CITY_STREETS,
|
||||
EAX30_PRESET_CITY_SUBWAY,
|
||||
EAX30_PRESET_CITY_MUSEUM,
|
||||
EAX30_PRESET_CITY_LIBRARY,
|
||||
EAX30_PRESET_CITY_UNDERPASS,
|
||||
EAX30_PRESET_CITY_ABANDONED
|
||||
};
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Misc environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_MISC_PRESET_NAMES[] =
|
||||
{
|
||||
"Dusty Box Room",
|
||||
"Chapel",
|
||||
"Small Water Room"
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Misc effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
EAXLISTENERPROPERTIES EAX30_MISC_PRESETS[] =
|
||||
{
|
||||
EAX30_PRESET_DUSTYROOM,
|
||||
EAX30_PRESET_CHAPEL,
|
||||
EAX30_PRESET_SMALLWATERROOM
|
||||
};
|
||||
|
765
eax/eax-util.h
Normal file
765
eax/eax-util.h
Normal file
@ -0,0 +1,765 @@
|
||||
/*******************************************************************\
|
||||
* *
|
||||
* EAX-UTIL.H - utilities for Environmental Audio Extensions v. 3.0 *
|
||||
* Definitions of the Original 26 EAX Presets *
|
||||
* Definitions for some new EAX Presets *
|
||||
* Definitions of some Material Presets *
|
||||
* Function declaration for EAX Morphing *
|
||||
* *
|
||||
\*******************************************************************/
|
||||
|
||||
#ifndef EAXUTIL_INCLUDED
|
||||
#define EAXUTIL_INCLUDED
|
||||
|
||||
#include <eax.h>
|
||||
|
||||
/***********************************************************************************************
|
||||
* Function : EAX3ListenerInterpolate
|
||||
* Params : lpStart - Initial EAX 3 Listener parameters
|
||||
* : lpFinish - Final EAX 3 Listener parameters
|
||||
* : flRatio - Ratio Destination : Source (0.0 == Source, 1.0 == Destination)
|
||||
* : lpResult - Interpolated EAX 3 Listener parameters
|
||||
* : bCheckValues - Check EAX 3.0 parameters are in range,
|
||||
- default == false (no checking)
|
||||
************************************************************************************************/
|
||||
bool EAX3ListenerInterpolate(EAXLISTENERPROPERTIES *lpStartEAX3LP, EAXLISTENERPROPERTIES *lpFinishEAX3LP,
|
||||
float flRatio, EAXLISTENERPROPERTIES *lpResultEAX3LP, bool bCheckValues = false);
|
||||
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* Legacy environment presets for use with DSPROPERTY_EAXLISTENER_ALLPARAMETERS.
|
||||
* Each array conforms to the DSPROPSETID_EAX30_ListenerProperties structure defined in EAX.H.
|
||||
*
|
||||
************************************************************************************************/
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_GENERIC \
|
||||
{0, 7.5f, 1.000f, -1000, -100, 0, 1.49f, 0.83f, 1.00f, -2602, 0.007f, 0.00f,0.00f,0.00f, 200, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_PADDEDCELL \
|
||||
{1, 1.4f, 1.000f, -1000, -6000, 0, 0.17f, 0.10f, 1.00f, -1204, 0.001f, 0.00f,0.00f,0.00f, 207, 0.002f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_ROOM \
|
||||
{2, 1.9f, 1.000f, -1000, -454, 0, 0.40f, 0.83f, 1.00f, -1646, 0.002f, 0.00f,0.00f,0.00f, 53, 0.003f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_BATHROOM \
|
||||
{3, 1.4f, 1.000f, -1000, -1200, 0, 1.49f, 0.54f, 1.00f, -370, 0.007f, 0.00f,0.00f,0.00f, 1030, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_LIVINGROOM \
|
||||
{4, 2.5f, 1.000f, -1000, -6000, 0, 0.50f, 0.10f, 1.00f, -1376, 0.003f, 0.00f,0.00f,0.00f, -1104, 0.004f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_STONEROOM \
|
||||
{5, 11.6f, 1.000f, -1000, -300, 0, 2.31f, 0.64f, 1.00f, -711, 0.012f, 0.00f,0.00f,0.00f, 83, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_AUDITORIUM \
|
||||
{6, 21.6f, 1.000f, -1000, -476, 0, 4.32f, 0.59f, 1.00f, -789, 0.020f, 0.00f,0.00f,0.00f, -289, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_CONCERTHALL \
|
||||
{7, 19.6f, 1.000f, -1000, -500, 0, 3.92f, 0.70f, 1.00f, -1230, 0.020f, 0.00f,0.00f,0.00f, -02, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_CAVE \
|
||||
{8, 14.6f, 1.000f, -1000, 0, 0, 2.91f, 1.30f, 1.00f, -602, 0.015f, 0.00f,0.00f,0.00f, -302, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_ARENA \
|
||||
{9, 36.2f, 1.000f, -1000, -698, 0, 7.24f, 0.33f, 1.00f, -1166, 0.020f, 0.00f,0.00f,0.00f, 16, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_HANGAR \
|
||||
{10, 50.3f, 1.000f, -1000, -1000, 0, 10.05f, 0.23f, 1.00f, -602, 0.020f, 0.00f,0.00f,0.00f, 198, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_CARPETTEDHALLWAY \
|
||||
{11, 1.9f, 1.000f, -1000, -4000, 0, 0.30f, 0.10f, 1.00f, -1831, 0.002f, 0.00f,0.00f,0.00f, -1630, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_HALLWAY \
|
||||
{12, 1.8f, 1.000f, -1000, -300, 0, 1.49f, 0.59f, 1.00f, -1219, 0.007f, 0.00f,0.00f,0.00f, 441, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_STONECORRIDOR \
|
||||
{13, 13.5f, 1.000f, -1000, -237, 0, 2.70f, 0.79f, 1.00f, -1214, 0.013f, 0.00f,0.00f,0.00f, 395, 0.020f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_ALLEY \
|
||||
{14, 7.5f, 0.300f, -1000, -270, 0, 1.49f, 0.86f, 1.00f, -1204, 0.007f, 0.00f,0.00f,0.00f, -4, 0.011f, 0.00f,0.00f,0.00f, 0.125f, 0.950f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_FOREST \
|
||||
{15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f,0.00f,0.00f, -229, 0.088f, 0.00f,0.00f,0.00f, 0.125f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_CITY \
|
||||
{16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1.00f, -2273, 0.007f, 0.00f,0.00f,0.00f, -1691, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_MOUNTAINS \
|
||||
{17, 100.0f, 0.270f, -1000, -2500, 0, 1.49f, 0.21f, 1.00f, -2780, 0.300f, 0.00f,0.00f,0.00f, -1434, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_QUARRY \
|
||||
{18, 17.5f, 1.000f, -1000, -1000, 0, 1.49f, 0.83f, 1.00f, -10000, 0.061f, 0.00f,0.00f,0.00f, 500, 0.025f, 0.00f,0.00f,0.00f, 0.125f, 0.700f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_PLAIN \
|
||||
{19, 42.5f, 0.210f, -1000, -2000, 0, 1.49f, 0.50f, 1.00f, -2466, 0.179f, 0.00f,0.00f,0.00f, -1926, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_PARKINGLOT \
|
||||
{20, 8.3f, 1.000f, -1000, 0, 0, 1.65f, 1.50f, 1.00f, -1363, 0.008f, 0.00f,0.00f,0.00f, -1153, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_SEWERPIPE \
|
||||
{21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1.00f, 429, 0.014f, 0.00f,0.00f,0.00f, 1023, 0.021f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_UNDERWATER \
|
||||
{22, 1.8f, 1.000f, -1000, -4000, 0, 1.49f, 0.10f, 1.00f, -449, 0.007f, 0.00f,0.00f,0.00f, 1700, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 1.180f, 0.348f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_DRUGGED \
|
||||
{23, 1.9f, 0.500f, -1000, 0, 0, 8.39f, 1.39f, 1.00f, -115, 0.002f, 0.00f,0.00f,0.00f, 985, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_DIZZY \
|
||||
{24, 1.8f, 0.600f, -1000, -400, 0, 17.23f, 0.56f, 1.00f, -1713, 0.020f, 0.00f,0.00f,0.00f, -613, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.810f, 0.310f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_PSYCHOTIC \
|
||||
{25, 1.0f, 0.500f, -1000, -151, 0, 7.56f, 0.91f, 1.00f, -626, 0.020f, 0.00f,0.00f,0.00f, 774, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 4.000f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* New environment presets for use with DSPROPERTY_EAXLISTENER_ALLPARAMETERS.
|
||||
* Each array conforms to the DSPROPSETID_EAX30_ListenerProperties structure defined in EAX.H.
|
||||
*
|
||||
************************************************************************************************/
|
||||
|
||||
// STANDARDISED-LOCATION SCENARIOS
|
||||
|
||||
// CASTLE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_CASTLE_SMALLROOM \
|
||||
{ 26, 8.3f, 0.890f, -1100, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0.00f,0.00f,0.00f, 0, 0.011f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_SHORTPASSAGE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -1000, -2000, 2.32f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, -500, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_MEDIUMROOM \
|
||||
{ 26, 8.3f, 0.930f, -1000, -1100, -2000, 2.04f, 0.83f, 0.46f, -300, 0.022f, 0.00f,0.00f,0.00f, -200, 0.011f, 0.00f,0.00f,0.00f, 0.155f, 0.030f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_LONGPASSAGE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 3.42f, 0.83f, 0.31f, -200, 0.007f, 0.00f,0.00f,0.00f, -600, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_LARGEROOM \
|
||||
{ 26, 8.3f, 0.820f, -1000, -1100, -1800, 2.53f, 0.83f, 0.50f, -900, 0.034f, 0.00f,0.00f,0.00f, -400, 0.016f, 0.00f,0.00f,0.00f, 0.185f, 0.070f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_HALL \
|
||||
{ 26, 8.3f, 0.810f, -1000, -1100, -1500, 3.14f, 0.79f, 0.62f, -1300, 0.056f, 0.00f,0.00f,0.00f, -500, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_CUPBOARD \
|
||||
{ 26, 8.3f, 0.890f, -1000, -1100, -2000, 0.67f, 0.87f, 0.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 300, 0.007f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CASTLE_COURTYARD \
|
||||
{ 26, 8.3f, 0.420f, -1100, -700, -900, 2.13f, 0.61f, 0.23f, -2300, 0.112f, 0.00f,0.00f,0.00f, -1500, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.370f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_CASTLE_ALCOVE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -600, -2000, 1.64f, 0.87f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, -500, 0.034f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// FACTORY PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_FACTORY_ALCOVE \
|
||||
{ 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0.00f,0.00f,0.00f, -1200, 0.038f, 0.00f,0.00f,0.00f, 0.114f, 0.100f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_SHORTPASSAGE \
|
||||
{ 26, 1.8f, 0.640f, -1200, -200, -600, 2.53f, 0.65f, 1.31f, 0, 0.010f, 0.00f,0.00f,0.00f, -600, 0.038f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_MEDIUMROOM \
|
||||
{ 26, 1.9f, 0.820f, -1200, -200, -600, 2.76f, 0.65f, 1.31f, -1100, 0.022f, 0.00f,0.00f,0.00f, -400, 0.023f, 0.00f,0.00f,0.00f, 0.174f, 0.070f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_LONGPASSAGE \
|
||||
{ 26, 1.8f, 0.640f, -1200, -200, -600, 4.06f, 0.65f, 1.31f, 0, 0.020f, 0.00f,0.00f,0.00f, -900, 0.037f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_LARGEROOM \
|
||||
{ 26, 1.9f, 0.750f, -1200, -300, -400, 4.24f, 0.51f, 1.31f, -1500, 0.039f, 0.00f,0.00f,0.00f, -600, 0.023f, 0.00f,0.00f,0.00f, 0.231f, 0.070f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_HALL \
|
||||
{ 26, 1.9f, 0.750f, -1000, -300, -400, 7.43f, 0.51f, 1.31f, -2400, 0.073f, 0.00f,0.00f,0.00f, -500, 0.027f, 0.00f,0.00f,0.00f, 0.250f, 0.070f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_CUPBOARD \
|
||||
{ 26, 1.7f, 0.630f, -1200, -200, -600, 0.49f, 0.65f, 1.31f, 200, 0.010f, 0.00f,0.00f,0.00f, 200, 0.032f, 0.00f,0.00f,0.00f, 0.107f, 0.070f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_COURTYARD \
|
||||
{ 26, 1.7f, 0.570f, -1000, -1000, -400, 2.32f, 0.29f, 0.56f, -2400, 0.090f, 0.00f,0.00f,0.00f, -2000, 0.039f, 0.00f,0.00f,0.00f, 0.250f, 0.290f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_FACTORY_SMALLROOM \
|
||||
{ 26, 1.8f, 0.820f, -1200, -200, -600, 1.72f, 0.65f, 1.31f, -300, 0.010f, 0.00f,0.00f,0.00f, -200, 0.024f, 0.00f,0.00f,0.00f, 0.119f, 0.070f, 0.250f, 0.000f, -0.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
|
||||
// ICE PALACE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_ICEPALACE_ALCOVE \
|
||||
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0.00f,0.00f,0.00f, -1200, 0.030f, 0.00f,0.00f,0.00f, 0.161f, 0.090f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_SHORTPASSAGE \
|
||||
{ 26, 2.7f, 0.750f, -1000, -500, -1100, 1.79f, 1.46f, 0.28f, -600, 0.010f, 0.00f,0.00f,0.00f, -700, 0.019f, 0.00f,0.00f,0.00f, 0.177f, 0.090f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_MEDIUMROOM \
|
||||
{ 26, 2.7f, 0.870f, -1000, -500, -700, 2.22f, 1.53f, 0.32f, -800, 0.039f, 0.00f,0.00f,0.00f, -1200, 0.027f, 0.00f,0.00f,0.00f, 0.186f, 0.120f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_LONGPASSAGE \
|
||||
{ 26, 2.7f, 0.770f, -1000, -500, -800, 3.01f, 1.46f, 0.28f, -200, 0.012f, 0.00f,0.00f,0.00f, -800, 0.025f, 0.00f,0.00f,0.00f, 0.186f, 0.040f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_LARGEROOM \
|
||||
{ 26, 2.9f, 0.810f, -1000, -500, -700, 3.14f, 1.53f, 0.32f, -1200, 0.039f, 0.00f,0.00f,0.00f, -1300, 0.027f, 0.00f,0.00f,0.00f, 0.214f, 0.110f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_HALL \
|
||||
{ 26, 2.9f, 0.760f, -1000, -700, -500, 5.49f, 1.53f, 0.38f, -1900, 0.054f, 0.00f,0.00f,0.00f, -1400, 0.052f, 0.00f,0.00f,0.00f, 0.226f, 0.110f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_CUPBOARD \
|
||||
{ 26, 2.7f, 0.830f, -1000, -600, -1300, 0.76f, 1.53f, 0.26f, 100, 0.012f, 0.00f,0.00f,0.00f, 100, 0.016f, 0.00f,0.00f,0.00f, 0.143f, 0.080f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_COURTYARD \
|
||||
{ 26, 2.9f, 0.590f, -1000, -1100, -1000, 2.04f, 1.20f, 0.38f, -2000, 0.073f, 0.00f,0.00f,0.00f, -2200, 0.043f, 0.00f,0.00f,0.00f, 0.235f, 0.480f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_ICEPALACE_SMALLROOM \
|
||||
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 1.51f, 1.53f, 0.27f, -100, 0.010f, 0.00f,0.00f,0.00f, -900, 0.011f, 0.00f,0.00f,0.00f, 0.164f, 0.140f, 0.250f, 0.000f, -0.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
|
||||
// SPACE STATION PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_SPACESTATION_ALCOVE \
|
||||
{ 26, 1.5f, 0.780f, -1100, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, -500, 0.018f, 0.00f,0.00f,0.00f, 0.192f, 0.210f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_MEDIUMROOM \
|
||||
{ 26, 1.5f, 0.750f, -1000, -400, -100, 3.01f, 0.50f, 0.55f, -1000, 0.034f, 0.00f,0.00f,0.00f, -700, 0.035f, 0.00f,0.00f,0.00f, 0.209f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_SHORTPASSAGE \
|
||||
{ 26, 1.5f, 0.870f, -1000, -400, -100, 3.57f, 0.50f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, -600, 0.016f, 0.00f,0.00f,0.00f, 0.172f, 0.200f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_LONGPASSAGE \
|
||||
{ 26, 1.9f, 0.820f, -1000, -400, -100, 4.62f, 0.62f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, -800, 0.031f, 0.00f,0.00f,0.00f, 0.250f, 0.230f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_LARGEROOM \
|
||||
{ 26, 1.8f, 0.810f, -1000, -400, -100, 3.89f, 0.38f, 0.61f, -1200, 0.056f, 0.00f,0.00f,0.00f, -800, 0.035f, 0.00f,0.00f,0.00f, 0.233f, 0.280f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_HALL \
|
||||
{ 26, 1.9f, 0.870f, -1000, -400, -100, 7.11f, 0.38f, 0.61f, -1500, 0.100f, 0.00f,0.00f,0.00f, -1000, 0.047f, 0.00f,0.00f,0.00f, 0.250f, 0.250f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_CUPBOARD \
|
||||
{ 26, 1.4f, 0.560f, -1000, -300, -100, 0.79f, 0.81f, 0.55f, 200, 0.007f, 0.00f,0.00f,0.00f, 400, 0.018f, 0.00f,0.00f,0.00f, 0.181f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPACESTATION_SMALLROOM \
|
||||
{ 26, 1.5f, 0.700f, -1000, -300, -100, 1.72f, 0.82f, 0.55f, -400, 0.007f, 0.00f,0.00f,0.00f, -500, 0.013f, 0.00f,0.00f,0.00f, 0.188f, 0.260f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
|
||||
// WOODEN GALLEON PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_WOODEN_ALCOVE \
|
||||
{ 26, 7.5f, 1.000f, -1100, -1800, -1000, 1.22f, 0.62f, 0.91f, -100, 0.012f, 0.00f,0.00f,0.00f, -600, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_SHORTPASSAGE \
|
||||
{ 26, 7.5f, 1.000f, -1100, -1800, -1000, 1.45f, 0.50f, 0.87f, -300, 0.012f, 0.00f,0.00f,0.00f, -700, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_MEDIUMROOM \
|
||||
{ 26, 7.5f, 1.000f, -1200, -2000, -1100, 1.07f, 0.42f, 0.82f, -300, 0.039f, 0.00f,0.00f,0.00f, -400, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_LONGPASSAGE \
|
||||
{ 26, 7.5f, 1.000f, -1100, -2000, -1000, 1.79f, 0.40f, 0.79f, -200, 0.020f, 0.00f,0.00f,0.00f, -1000, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_LARGEROOM \
|
||||
{ 26, 7.5f, 1.000f, -1200, -2100, -1100, 1.45f, 0.33f, 0.82f, -300, 0.056f, 0.00f,0.00f,0.00f, -500, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_HALL \
|
||||
{ 26, 7.5f, 1.000f, -1200, -2200, -1100, 1.95f, 0.30f, 0.82f, -300, 0.068f, 0.00f,0.00f,0.00f, -500, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_CUPBOARD \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1700, -1000, 0.56f, 0.46f, 0.91f, -100, 0.012f, 0.00f,0.00f,0.00f, -100, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_SMALLROOM \
|
||||
{ 26, 7.5f, 1.000f, -1200, -1900, -1000, 0.79f, 0.32f, 0.87f, -200, 0.032f, 0.00f,0.00f,0.00f, -300, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_WOODEN_COURTYARD \
|
||||
{ 26, 7.5f, 0.650f, -1700, -2200, -1000, 1.79f, 0.35f, 0.79f, -700, 0.063f, 0.00f,0.00f,0.00f, -2300, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
|
||||
|
||||
// OTHER SCENARIOS
|
||||
|
||||
// SPORTS PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_SPORT_EMPTYSTADIUM \
|
||||
{ 26, 7.2f, 1.000f, -1300, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0.00f,0.00f,0.00f, -1100, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPORT_SQUASHCOURT \
|
||||
{ 26, 7.5f, 0.750f, -1100, -1000, -200, 2.22f, 0.91f, 1.16f, -700, 0.007f, 0.00f,0.00f,0.00f, -300, 0.011f, 0.00f,0.00f,0.00f, 0.126f, 0.190f, 0.250f, 0.000f, -0.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPORT_SMALLSWIMMINGPOOL \
|
||||
{ 26, 36.2f, 0.700f, -1400, -200, -100, 2.76f, 1.25f, 1.14f, -400, 0.020f, 0.00f,0.00f,0.00f, -300, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_SPORT_LARGESWIMMINGPOOL\
|
||||
{ 26, 36.2f, 0.820f, -1200, -200, 0, 5.49f, 1.31f, 1.14f, -700, 0.039f, 0.00f,0.00f,0.00f, -800, 0.049f, 0.00f,0.00f,0.00f, 0.222f, 0.550f, 1.159f, 0.210f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_SPORT_GYMNASIUM \
|
||||
{ 26, 7.5f, 0.810f, -1200, -700, -100, 3.14f, 1.06f, 1.35f, -800, 0.029f, 0.00f,0.00f,0.00f, -700, 0.045f, 0.00f,0.00f,0.00f, 0.146f, 0.140f, 0.250f, 0.000f, -0.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPORT_FULLSTADIUM \
|
||||
{ 26, 7.2f, 1.000f, -1300, -2300, -200, 5.25f, 0.17f, 0.80f, -2000, 0.188f, 0.00f,0.00f,0.00f, -1300, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_SPORT_STADIUMTANNOY \
|
||||
{ 26, 3.0f, 0.780f, -900, -500, -600, 2.53f, 0.88f, 0.68f, -1100, 0.230f, 0.00f,0.00f,0.00f, -600, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
|
||||
// PREFAB PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_PREFAB_WORKSHOP \
|
||||
{ 26, 1.9f, 1.000f, -1000, -1700, -800, 0.76f, 1.00f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, -200, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_PREFAB_SCHOOLROOM \
|
||||
{ 26, 1.86f, 0.690f, -1100, -400, -600, 0.98f, 0.45f, 0.18f, 300, 0.017f, 0.00f,0.00f,0.00f, 0, 0.015f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -0.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_PREFAB_PRACTISEROOM \
|
||||
{ 26, 1.86f, 0.870f, -1000, -800, -600, 1.12f, 0.56f, 0.18f, 200, 0.010f, 0.00f,0.00f,0.00f, -200, 0.011f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -0.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_PREFAB_OUTHOUSE \
|
||||
{ 26, 80.3f, 0.820f, -1100, -1900, -1600, 1.38f, 0.38f, 0.35f, -100, 0.024f, 0.00f,0.00f,-0.00f, -800, 0.044f, 0.00f,0.00f,0.00f, 0.121f, 0.170f, 0.250f, 0.000f, -0.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_PREFAB_CARAVAN \
|
||||
{ 26, 8.3f, 1.000f, -1000, -2100, -1800, 0.43f, 1.50f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 400, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
// for US developers, a caravan is the same as a trailer =o)
|
||||
|
||||
|
||||
// DOME AND PIPE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_DOME_TOMB \
|
||||
{ 26, 51.8f, 0.790f, -1000, -900, -1300, 4.18f, 0.21f, 0.10f, -825, 0.030f, 0.00f,0.00f,0.00f, -125, 0.022f, 0.00f,0.00f,0.00f, 0.177f, 0.190f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_PIPE_SMALL \
|
||||
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 5.04f, 0.10f, 0.10f, -600, 0.032f, 0.00f,0.00f,0.00f, 400, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_DOME_SAINTPAULS \
|
||||
{ 26, 50.3f, 0.870f, -1000, -900, -1300, 10.48f, 0.19f, 0.10f, -1500, 0.090f, 0.00f,0.00f,0.00f, -500, 0.042f, 0.00f,0.00f,0.00f, 0.250f, 0.120f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_PIPE_LONGTHIN \
|
||||
{ 26, 1.6f, 0.910f, -1200, -700, -1100, 9.21f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, -1000, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_PIPE_LARGE \
|
||||
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 8.45f, 0.10f, 0.10f, -800, 0.046f, 0.00f,0.00f,0.00f, 0, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_PIPE_RESONANT \
|
||||
{ 26, 1.3f, 0.910f, -1200, -700, -1100, 6.81f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, -700, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
|
||||
// OUTDOORS PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_OUTDOORS_BACKYARD \
|
||||
{ 26, 80.3f, 0.450f, -1100, -1200, -600, 1.12f, 0.34f, 0.46f, -1100, 0.049f, 0.00f,0.00f,-0.00f, -1300, 0.023f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_OUTDOORS_ROLLINGPLAINS \
|
||||
{ 26, 80.3f, 0.000f, -1100, -3900, -400, 2.13f, 0.21f, 0.46f, -2000, 0.300f, 0.00f,0.00f,-0.00f, -1500, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_OUTDOORS_DEEPCANYON \
|
||||
{ 26, 80.3f, 0.740f, -1100, -1500, -400, 3.89f, 0.21f, 0.46f, -2000, 0.193f, 0.00f,0.00f,-0.00f, -1100, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_OUTDOORS_CREEK \
|
||||
{ 26, 80.3f, 0.350f, -1100, -1500, -600, 2.13f, 0.21f, 0.46f, -1700, 0.115f, 0.00f,0.00f,-0.00f, -1100, 0.031f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_OUTDOORS_VALLEY \
|
||||
{ 26, 80.3f, 0.280f, -1100, -3100, -1600, 2.88f, 0.26f, 0.35f, -3200, 0.163f, 0.00f,0.00f,-0.00f, -1000, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 0.340f, 0.250f, 0.000f, -0.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// MOOD PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_MOOD_HEAVEN \
|
||||
{ 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0.00f,0.00f,0.00f, -200, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.080f, 2.742f, 0.050f, -2.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_MOOD_HELL \
|
||||
{ 26, 100.0f, 0.570f, -1000, -900, -700, 3.57f, 0.49f, 2.00f, -10000, 0.020f, 0.00f,0.00f,0.00f, 100, 0.030f, 0.00f,0.00f,0.00f, 0.110f, 0.040f, 2.109f, 0.520f, -5.0f, 5000.0f, 139.5f, 0.00f, 0x40 }
|
||||
#define EAX30_PRESET_MOOD_MEMORY \
|
||||
{ 26, 8.0f, 0.850f, -1000, -400, -900, 4.06f, 0.82f, 0.56f, -2800, 0.000f, 0.00f,0.00f,0.00f, -500, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.474f, 0.450f, -2.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
|
||||
// DRIVING SIMULATION PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_DRIVING_COMMENTATOR \
|
||||
{ 26, 3.0f, 0.000f, -900, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0.00f,0.00f,0.00f, -1200, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_DRIVING_PITGARAGE \
|
||||
{ 26, 1.9f, 0.590f, -1400, -300, -500, 1.72f, 0.93f, 0.87f, -500, 0.000f, 0.00f,0.00f,0.00f, 0, 0.016f, 0.00f,0.00f,0.00f, 0.250f, 0.110f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_DRIVING_INCAR_RACER \
|
||||
{ 26, 1.1f, 0.800f, -700, 0, -200, 0.17f, 2.00f, 0.41f, 500, 0.007f, 0.00f,0.00f,0.00f, -500, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -0.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_DRIVING_INCAR_SPORTS \
|
||||
{ 26, 1.1f, 0.800f, -900, -400, 0, 0.17f, 0.75f, 0.41f, 0, 0.010f, 0.00f,0.00f,0.00f, -600, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -0.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_DRIVING_INCAR_LUXURY \
|
||||
{ 26, 1.6f, 1.000f, -800, -2000, -600, 0.13f, 0.41f, 0.46f, -200, 0.010f, 0.00f,0.00f,0.00f, 300, 0.010f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -0.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_DRIVING_FULLGRANDSTAND \
|
||||
{ 26, 8.3f, 1.000f, -1100, -1100, -400, 3.01f, 1.37f, 1.28f, -900, 0.090f, 0.00f,0.00f,0.00f, -1700, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_DRIVING_EMPTYGRANDSTAND \
|
||||
{ 26, 8.3f, 1.000f, -700, 0, -200, 4.62f, 1.75f, 1.40f, -1363, 0.090f, 0.00f,0.00f,0.00f, -1900, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
|
||||
#define EAX30_PRESET_DRIVING_TUNNEL \
|
||||
{ 26, 3.1f, 0.810f, -900, -800, -100, 3.42f, 0.94f, 1.31f, -300, 0.051f, 0.00f,0.00f,0.00f, -500, 0.047f, 0.00f,0.00f,0.00f, 0.214f, 0.050f, 0.250f, 0.000f, -0.0f, 5000.0f, 155.3f, 0.00f, 0x20 }
|
||||
|
||||
// CITY PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_CITY_STREETS \
|
||||
{ 26, 3.0f, 0.780f, -1100, -300, -100, 1.79f, 1.12f, 0.91f, -1700, 0.046f, 0.00f,0.00f,0.00f, -2800, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CITY_SUBWAY \
|
||||
{ 26, 3.0f, 0.740f, -1100, -300, -100, 3.01f, 1.23f, 0.91f, -700, 0.046f, 0.00f,0.00f,0.00f, -1000, 0.028f, 0.00f,0.00f,0.00f, 0.125f, 0.210f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CITY_MUSEUM \
|
||||
{ 26, 80.3f, 0.820f, -1100, -1500, -1500, 3.28f, 1.40f, 0.57f, -1600, 0.039f, 0.00f,0.00f,-0.00f, -600, 0.034f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -0.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_CITY_LIBRARY \
|
||||
{ 26, 80.3f, 0.820f, -1100, -1100, -2100, 2.76f, 0.89f, 0.41f, -1100, 0.029f, 0.00f,0.00f,-0.00f, -500, 0.020f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -0.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define EAX30_PRESET_CITY_UNDERPASS \
|
||||
{ 26, 3.0f, 0.820f, -1500, -700, -100, 3.57f, 1.12f, 0.91f, -1500, 0.059f, 0.00f,0.00f,0.00f, -1100, 0.037f, 0.00f,0.00f,0.00f, 0.250f, 0.140f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CITY_ABANDONED \
|
||||
{ 26, 3.0f, 0.690f, -1100, -200, -100, 3.28f, 1.17f, 0.91f, -1400, 0.044f, 0.00f,0.00f,0.00f, -2400, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -0.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
|
||||
// MISC ROOMS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define EAX30_PRESET_DUSTYROOM \
|
||||
{ 26, 1.8f, 0.560f, -1100, -200, -300, 1.79f, 0.38f, 0.21f, -600, 0.002f, 0.00f,0.00f,0.00f, 200, 0.006f, 0.00f,0.00f,0.00f, 0.202f, 0.050f, 0.250f, 0.000f, -3.0f, 13046.0f, 163.3f, 0.00f, 0x20 }
|
||||
#define EAX30_PRESET_CHAPEL \
|
||||
{ 26, 19.6f, 0.840f, -1000, -500, 0, 4.62f, 0.64f, 1.23f, -700, 0.032f, 0.00f,0.00f,0.00f, -800, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.110f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define EAX30_PRESET_SMALLWATERROOM \
|
||||
{ 26, 36.2f, 0.700f, -1200, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0.00f,0.00f,0.00f, 200, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Effect Scenarios enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EAX30_SCENARIO_CASTLE = 0,
|
||||
EAX30_SCENARIO_FACTORY,
|
||||
EAX30_SCENARIO_ICEPALACE,
|
||||
EAX30_SCENARIO_SPACESTATION,
|
||||
EAX30_SCENARIO_WOODGALLEON,
|
||||
EAX30_SCENARIO_SPORTS,
|
||||
EAX30_SCENARIO_PREFAB,
|
||||
EAX30_SCENARIO_DOMESNPIPES,
|
||||
EAX30_SCENARIO_OUTDOORS,
|
||||
EAX30_SCENARIO_MOOD,
|
||||
EAX30_SCENARIO_DRIVING,
|
||||
EAX30_SCENARIO_CITY,
|
||||
EAX30_SCENARIO_MISC,
|
||||
EAX30_SCENARIO_ORIGINAL
|
||||
}
|
||||
EAX30_SCENARIO;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Number of Effect Scenarios //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
#define EAX30_NUM_SCENARIOS 14
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Number of Effect Scenarios with standardised //
|
||||
// locations //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
#define EAX30_NUM_STANDARD_SCENARIOS 5
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of scenario names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_SCENARIO_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Standardised Locations enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EAX30_LOCATION_HALL = 0,
|
||||
EAX30_LOCATION_LARGEROOM,
|
||||
EAX30_LOCATION_MEDIUMROOM,
|
||||
EAX30_LOCATION_SMALLROOM,
|
||||
EAX30_LOCATION_CUPBOARD,
|
||||
EAX30_LOCATION_ALCOVE,
|
||||
EAX30_LOCATION_LONGPASSAGE,
|
||||
EAX30_LOCATION_SHORTPASSAGE,
|
||||
EAX30_LOCATION_COURTYARD
|
||||
}
|
||||
EAX30_LOCATION;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Number of Standardised Locations //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
#define EAX30_NUM_LOCATIONS 9
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of standardised location names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_LOCATION_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Number of effects in each scenario //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
#define EAX30_NUM_ORIGINAL_PRESETS 26
|
||||
#define EAX30_NUM_CASTLE_PRESETS EAX30_NUM_LOCATIONS
|
||||
#define EAX30_NUM_FACTORY_PRESETS EAX30_NUM_LOCATIONS
|
||||
#define EAX30_NUM_ICEPALACE_PRESETS EAX30_NUM_LOCATIONS
|
||||
#define EAX30_NUM_SPACESTATION_PRESETS EAX30_NUM_LOCATIONS
|
||||
#define EAX30_NUM_WOODGALLEON_PRESETS EAX30_NUM_LOCATIONS
|
||||
#define EAX30_NUM_SPORTS_PRESETS 7
|
||||
#define EAX30_NUM_PREFAB_PRESETS 5
|
||||
#define EAX30_NUM_DOMESNPIPES_PRESETS 6
|
||||
#define EAX30_NUM_OUTDOORS_PRESETS 5
|
||||
#define EAX30_NUM_MOOD_PRESETS 3
|
||||
#define EAX30_NUM_DRIVING_PRESETS 8
|
||||
#define EAX30_NUM_CITY_PRESETS 6
|
||||
#define EAX30_NUM_MISC_PRESETS 3
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Standardised Location effects can be accessed //
|
||||
// from a matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_STANDARD_PRESETS[EAX30_NUM_STANDARD_SCENARIOS][EAX30_NUM_LOCATIONS];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Original Preset effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ORIGINAL_GENERIC = 0,
|
||||
ORIGINAL_PADDEDCELL,
|
||||
ORIGINAL_ROOM,
|
||||
ORIGINAL_BATHROOM,
|
||||
ORIGINAL_LIVINGROOM,
|
||||
ORIGINAL_STONEROOM,
|
||||
ORIGINAL_AUDITORIUM,
|
||||
ORIGINAL_CONCERTHALL,
|
||||
ORIGINAL_CAVE,
|
||||
ORIGINAL_ARENA,
|
||||
ORIGINAL_HANGAR,
|
||||
ORIGINAL_CARPETTEDHALLWAY,
|
||||
ORIGINAL_HALLWAY,
|
||||
ORIGINAL_STONECORRIDOR,
|
||||
ORIGINAL_ALLEY,
|
||||
ORIGINAL_FOREST,
|
||||
ORIGINAL_CITY,
|
||||
ORIGINAL_MOUNTAINS,
|
||||
ORIGINAL_QUARRY,
|
||||
ORIGINAL_PLAIN,
|
||||
ORIGINAL_PARKINGLOT,
|
||||
ORIGINAL_SEWERPIPE,
|
||||
ORIGINAL_UNDERWATER,
|
||||
ORIGINAL_DRUGGED,
|
||||
ORIGINAL_DIZZY,
|
||||
ORIGINAL_PSYCHOTIC
|
||||
}
|
||||
EAX30_ORIGINAL_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of original environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_ORIGINAL_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Original effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_ORIGINAL_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Sports scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SPORT_EMPTYSTADIUM=0,
|
||||
SPORT_FULLSTADIUM,
|
||||
SPORT_STADIUMTANNOY,
|
||||
SPORT_SQUASHCOURT,
|
||||
SPORT_SMALLSWIMMINGPOOL,
|
||||
SPORT_LARGESWIMMINGPOOL,
|
||||
SPORT_GYMNASIUM
|
||||
}
|
||||
EAX30_SPORTS_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of sport environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_SPORTS_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Sports effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_SPORTS_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Prefab scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PREFAB_WORKSHOP,
|
||||
PREFAB_SCHOOLROOM,
|
||||
PREFAB_PRACTISEROOM,
|
||||
PREFAB_OUTHOUSE,
|
||||
PREFAB_CARAVAN
|
||||
}
|
||||
EAX30_PREFAB_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of prefab environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
char* EAX30_PREFAB_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Prefab effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_PREFAB_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Domes & Pipes effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DOME_TOMB,
|
||||
DOME_SAINTPAULS,
|
||||
PIPE_SMALL,
|
||||
PIPE_LONGTHIN,
|
||||
PIPE_LARGE,
|
||||
PIPE_RESONANT
|
||||
}
|
||||
EAX30_DOMESNPIPES_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Domes & Pipes environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_DOMESNPIPES_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Domes & Pipes effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_DOMESNPIPES_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Outdoors scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
OUTDOORS_BACKYARD,
|
||||
OUTDOORS_ROLLINGPLAINS,
|
||||
OUTDOORS_DEEPCANYON,
|
||||
OUTDOORS_CREEK,
|
||||
OUTDOORS_VALLEY
|
||||
}
|
||||
EAX30_OUTDOORS_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Outdoors environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_OUTDOORS_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Outdoors effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_OUTDOORS_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Mood scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MOOD_HEAVEN,
|
||||
MOOD_HELL,
|
||||
MOOD_MEMORY
|
||||
}
|
||||
EAX30_MOOD_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Mood environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_MOOD_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Mood effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_MOOD_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Driving scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DRIVING_COMMENTATOR,
|
||||
DRIVING_PITGARAGE,
|
||||
DRIVING_INCAR_RACER,
|
||||
DRIVING_INCAR_SPORTS,
|
||||
DRIVING_INCAR_LUXURY,
|
||||
DRIVING_FULLGRANDSTAND,
|
||||
DRIVING_EMPTYGRANDSTAND,
|
||||
DRIVING_TUNNEL
|
||||
}
|
||||
EAX30_DRIVING_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of driving environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_DRIVING_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Driving effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_DRIVING_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// City scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CITY_STREETS,
|
||||
CITY_SUBWAY,
|
||||
CITY_MUSEUM,
|
||||
CITY_LIBRARY,
|
||||
CITY_UNDERPASS,
|
||||
CITY_ABANDONED
|
||||
}
|
||||
EAX30_CITY_PRESET_ENUMS;
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of City environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_CITY_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// City effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_CITY_PRESETS[];
|
||||
|
||||
/********************************************************************************************************/
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Misc scenario effects enumerated //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DUSTYROOM,
|
||||
CHAPEL,
|
||||
SMALLWATERROOM
|
||||
}
|
||||
EAX30_MISC_PRESET_ENUMS;
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Array of Misc environment names //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern char* EAX30_MISC_PRESET_NAMES[];
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Misc effects matrix //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
extern EAXLISTENERPROPERTIES EAX30_MISC_PRESETS[];
|
||||
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* Material transmission presets
|
||||
*
|
||||
* Three values in this order :-
|
||||
*
|
||||
* 1. Occlusion (or Obstruction)
|
||||
* 2. Occlusion LF Ratio (or Obstruction LF Ratio)
|
||||
* 3. Occlusion Room Ratio
|
||||
*
|
||||
************************************************************************************************/
|
||||
|
||||
|
||||
// Single window material preset
|
||||
#define EAX_MATERIAL_SINGLEWINDOW (-2800)
|
||||
#define EAX_MATERIAL_SINGLEWINDOWLF 0.71f
|
||||
#define EAX_MATERIAL_SINGLEWINDOWROOMRATIO 0.43f
|
||||
|
||||
// Double window material preset
|
||||
#define EAX_MATERIAL_DOUBLEWINDOW (-5000)
|
||||
#define EAX_MATERIAL_DOUBLEWINDOWLF 0.40f
|
||||
#define EAX_MATERIAL_DOUBLEWINDOWROOMRATIO 0.24f
|
||||
|
||||
// Thin door material preset
|
||||
#define EAX_MATERIAL_THINDOOR (-1800)
|
||||
#define EAX_MATERIAL_THINDOORLF 0.66f
|
||||
#define EAX_MATERIAL_THINDOORROOMRATIO 0.66f
|
||||
|
||||
// Thick door material preset
|
||||
#define EAX_MATERIAL_THICKDOOR (-4400)
|
||||
#define EAX_MATERIAL_THICKDOORLF 0.64f
|
||||
#define EAX_MATERIAL_THICKDOORROOMRATIO 0.27f
|
||||
|
||||
// Wood wall material preset
|
||||
#define EAX_MATERIAL_WOODWALL (-4000)
|
||||
#define EAX_MATERIAL_WOODWALLLF 0.50f
|
||||
#define EAX_MATERIAL_WOODWALLROOMRATIO 0.30f
|
||||
|
||||
// Brick wall material preset
|
||||
#define EAX_MATERIAL_BRICKWALL (-5000)
|
||||
#define EAX_MATERIAL_BRICKWALLLF 0.60f
|
||||
#define EAX_MATERIAL_BRICKWALLROOMRATIO 0.24f
|
||||
|
||||
// Stone wall material preset
|
||||
#define EAX_MATERIAL_STONEWALL (-6000)
|
||||
#define EAX_MATERIAL_STONEWALLLF 0.68f
|
||||
#define EAX_MATERIAL_STONEWALLROOMRATIO 0.20f
|
||||
|
||||
// Curtain material preset
|
||||
#define EAX_MATERIAL_CURTAIN (-1200)
|
||||
#define EAX_MATERIAL_CURTAINLF 0.15f
|
||||
#define EAX_MATERIAL_CURTAINROOMRATIO 1.00f
|
||||
|
||||
|
||||
#endif // EAXUTIL_INCLUDED
|
535
eax/eax.h
Normal file
535
eax/eax.h
Normal file
@ -0,0 +1,535 @@
|
||||
/*******************************************************************\
|
||||
* *
|
||||
* EAX.H - Environmental Audio Extensions version 3.0 *
|
||||
* for OpenAL and DirectSound3D *
|
||||
* *
|
||||
********************************************************************/
|
||||
|
||||
#ifndef EAX_H_INCLUDED
|
||||
#define EAX_H_INCLUDED
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif // __cplusplus
|
||||
|
||||
#ifndef OPENAL
|
||||
#include <dsound.h>
|
||||
|
||||
/*
|
||||
* EAX Wrapper Interface (using Direct X 7) {4FF53B81-1CE0-11d3-AAB8-00A0C95949D5}
|
||||
*/
|
||||
DEFINE_GUID(CLSID_EAXDirectSound,
|
||||
0x4ff53b81,
|
||||
0x1ce0,
|
||||
0x11d3,
|
||||
0xaa, 0xb8, 0x0, 0xa0, 0xc9, 0x59, 0x49, 0xd5);
|
||||
|
||||
/*
|
||||
* EAX Wrapper Interface (using Direct X 8) {CA503B60-B176-11d4-A094-D0C0BF3A560C}
|
||||
*/
|
||||
DEFINE_GUID(CLSID_EAXDirectSound8,
|
||||
0xca503b60,
|
||||
0xb176,
|
||||
0x11d4,
|
||||
0xa0, 0x94, 0xd0, 0xc0, 0xbf, 0x3a, 0x56, 0xc);
|
||||
|
||||
|
||||
|
||||
#ifdef DIRECTSOUND_VERSION
|
||||
#if DIRECTSOUND_VERSION >= 0x0800
|
||||
__declspec(dllimport) HRESULT WINAPI EAXDirectSoundCreate8(GUID*, LPDIRECTSOUND8*, IUnknown FAR *);
|
||||
typedef HRESULT (FAR PASCAL *LPEAXDIRECTSOUNDCREATE8)(GUID*, LPDIRECTSOUND8*, IUnknown FAR*);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
__declspec(dllimport) HRESULT WINAPI EAXDirectSoundCreate(GUID*, LPDIRECTSOUND*, IUnknown FAR *);
|
||||
typedef HRESULT (FAR PASCAL *LPEAXDIRECTSOUNDCREATE)(GUID*, LPDIRECTSOUND*, IUnknown FAR*);
|
||||
|
||||
__declspec(dllimport) void CDECL GetCurrentVersion(LPDWORD major, LPDWORD minor);
|
||||
typedef void (CDECL *LPGETCURRENTVERSION)(LPDWORD major, LPDWORD minor);
|
||||
|
||||
|
||||
#else // OPENAL
|
||||
#include <al.h>
|
||||
|
||||
#ifndef GUID_DEFINED
|
||||
#define GUID_DEFINED
|
||||
typedef struct _GUID
|
||||
{
|
||||
unsigned long Data1;
|
||||
unsigned short Data2;
|
||||
unsigned short Data3;
|
||||
unsigned char Data4[8];
|
||||
} GUID;
|
||||
#endif // !GUID_DEFINED
|
||||
|
||||
#ifndef DEFINE_GUID
|
||||
#ifndef INITGUID
|
||||
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
|
||||
extern const GUID /*FAR*/ name
|
||||
#else
|
||||
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
|
||||
extern const GUID name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
|
||||
#endif // INITGUID
|
||||
#endif // DEFINE_GUID
|
||||
|
||||
|
||||
/*
|
||||
* EAX OpenAL Extension
|
||||
*/
|
||||
typedef ALenum (*EAXSet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
|
||||
typedef ALenum (*EAXGet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
|
||||
#endif
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
/*
|
||||
* EAX 3.0 listener property set {A8FA6880-B476-11d3-BDB9-00C0F02DDF87}
|
||||
*/
|
||||
DEFINE_GUID(DSPROPSETID_EAX30_ListenerProperties,
|
||||
0xa8fa6882,
|
||||
0xb476,
|
||||
0x11d3,
|
||||
0xbd, 0xb9, 0x00, 0xc0, 0xf0, 0x2d, 0xdf, 0x87);
|
||||
|
||||
// For compatibility with future EAX versions:
|
||||
#define DSPROPSETID_EAX_ListenerProperties DSPROPSETID_EAX30_ListenerProperties
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DSPROPERTY_EAXLISTENER_NONE,
|
||||
DSPROPERTY_EAXLISTENER_ALLPARAMETERS,
|
||||
DSPROPERTY_EAXLISTENER_ENVIRONMENT,
|
||||
DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE,
|
||||
DSPROPERTY_EAXLISTENER_ENVIRONMENTDIFFUSION,
|
||||
DSPROPERTY_EAXLISTENER_ROOM,
|
||||
DSPROPERTY_EAXLISTENER_ROOMHF,
|
||||
DSPROPERTY_EAXLISTENER_ROOMLF,
|
||||
DSPROPERTY_EAXLISTENER_DECAYTIME,
|
||||
DSPROPERTY_EAXLISTENER_DECAYHFRATIO,
|
||||
DSPROPERTY_EAXLISTENER_DECAYLFRATIO,
|
||||
DSPROPERTY_EAXLISTENER_REFLECTIONS,
|
||||
DSPROPERTY_EAXLISTENER_REFLECTIONSDELAY,
|
||||
DSPROPERTY_EAXLISTENER_REFLECTIONSPAN,
|
||||
DSPROPERTY_EAXLISTENER_REVERB,
|
||||
DSPROPERTY_EAXLISTENER_REVERBDELAY,
|
||||
DSPROPERTY_EAXLISTENER_REVERBPAN,
|
||||
DSPROPERTY_EAXLISTENER_ECHOTIME,
|
||||
DSPROPERTY_EAXLISTENER_ECHODEPTH,
|
||||
DSPROPERTY_EAXLISTENER_MODULATIONTIME,
|
||||
DSPROPERTY_EAXLISTENER_MODULATIONDEPTH,
|
||||
DSPROPERTY_EAXLISTENER_AIRABSORPTIONHF,
|
||||
DSPROPERTY_EAXLISTENER_HFREFERENCE,
|
||||
DSPROPERTY_EAXLISTENER_LFREFERENCE,
|
||||
DSPROPERTY_EAXLISTENER_ROOMROLLOFFFACTOR,
|
||||
DSPROPERTY_EAXLISTENER_FLAGS
|
||||
} DSPROPERTY_EAX_LISTENERPROPERTY;
|
||||
|
||||
// OR these flags with property id
|
||||
#define DSPROPERTY_EAXLISTENER_IMMEDIATE 0x00000000 // changes take effect immediately
|
||||
#define DSPROPERTY_EAXLISTENER_DEFERRED 0x80000000 // changes take effect later
|
||||
#define DSPROPERTY_EAXLISTENER_COMMITDEFERREDSETTINGS (DSPROPERTY_EAXLISTENER_NONE | \
|
||||
DSPROPERTY_EAXLISTENER_IMMEDIATE)
|
||||
|
||||
typedef struct _EAXVECTOR {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
} EAXVECTOR;
|
||||
|
||||
// Use this structure for DSPROPERTY_EAXLISTENER_ALLPARAMETERS
|
||||
// - all levels are hundredths of decibels
|
||||
// - all times and delays are in seconds
|
||||
//
|
||||
// NOTE: This structure may change in future EAX versions.
|
||||
// It is recommended to initialize fields by name:
|
||||
// myListener.lRoom = -1000;
|
||||
// myListener.lRoomHF = -100;
|
||||
// ...
|
||||
// myListener.dwFlags = myFlags /* see EAXLISTENERFLAGS below */ ;
|
||||
// instead of:
|
||||
// myListener = { -1000, -100, ... , 0x00000009 };
|
||||
// If you want to save and load presets in binary form, you
|
||||
// should define your own structure to insure future compatibility.
|
||||
//
|
||||
typedef struct _EAXLISTENERPROPERTIES
|
||||
{
|
||||
unsigned long ulEnvironment; // sets all listener properties
|
||||
float flEnvironmentSize; // environment size in meters
|
||||
float flEnvironmentDiffusion; // environment diffusion
|
||||
long lRoom; // room effect level (at mid frequencies)
|
||||
long lRoomHF; // relative room effect level at high frequencies
|
||||
long lRoomLF; // relative room effect level at low frequencies
|
||||
float flDecayTime; // reverberation decay time at mid frequencies
|
||||
float flDecayHFRatio; // high-frequency to mid-frequency decay time ratio
|
||||
float flDecayLFRatio; // low-frequency to mid-frequency decay time ratio
|
||||
long lReflections; // early reflections level relative to room effect
|
||||
float flReflectionsDelay; // initial reflection delay time
|
||||
EAXVECTOR vReflectionsPan; // early reflections panning vector
|
||||
long lReverb; // late reverberation level relative to room effect
|
||||
float flReverbDelay; // late reverberation delay time relative to initial reflection
|
||||
EAXVECTOR vReverbPan; // late reverberation panning vector
|
||||
float flEchoTime; // echo time
|
||||
float flEchoDepth; // echo depth
|
||||
float flModulationTime; // modulation time
|
||||
float flModulationDepth; // modulation depth
|
||||
float flAirAbsorptionHF; // change in level per meter at high frequencies
|
||||
float flHFReference; // reference high frequency
|
||||
float flLFReference; // reference low frequency
|
||||
float flRoomRolloffFactor; // like DS3D flRolloffFactor but for room effect
|
||||
unsigned long ulFlags; // modifies the behavior of properties
|
||||
} EAXLISTENERPROPERTIES, *LPEAXLISTENERPROPERTIES;
|
||||
|
||||
// used by DSPROPERTY_EAXLISTENER_ENVIRONMENT
|
||||
enum
|
||||
{
|
||||
EAX_ENVIRONMENT_GENERIC,
|
||||
EAX_ENVIRONMENT_PADDEDCELL,
|
||||
EAX_ENVIRONMENT_ROOM,
|
||||
EAX_ENVIRONMENT_BATHROOM,
|
||||
EAX_ENVIRONMENT_LIVINGROOM,
|
||||
EAX_ENVIRONMENT_STONEROOM,
|
||||
EAX_ENVIRONMENT_AUDITORIUM,
|
||||
EAX_ENVIRONMENT_CONCERTHALL,
|
||||
EAX_ENVIRONMENT_CAVE,
|
||||
EAX_ENVIRONMENT_ARENA,
|
||||
EAX_ENVIRONMENT_HANGAR,
|
||||
EAX_ENVIRONMENT_CARPETEDHALLWAY,
|
||||
EAX_ENVIRONMENT_HALLWAY,
|
||||
EAX_ENVIRONMENT_STONECORRIDOR,
|
||||
EAX_ENVIRONMENT_ALLEY,
|
||||
EAX_ENVIRONMENT_FOREST,
|
||||
EAX_ENVIRONMENT_CITY,
|
||||
EAX_ENVIRONMENT_MOUNTAINS,
|
||||
EAX_ENVIRONMENT_QUARRY,
|
||||
EAX_ENVIRONMENT_PLAIN,
|
||||
EAX_ENVIRONMENT_PARKINGLOT,
|
||||
EAX_ENVIRONMENT_SEWERPIPE,
|
||||
EAX_ENVIRONMENT_UNDERWATER,
|
||||
EAX_ENVIRONMENT_DRUGGED,
|
||||
EAX_ENVIRONMENT_DIZZY,
|
||||
EAX_ENVIRONMENT_PSYCHOTIC,
|
||||
|
||||
EAX_ENVIRONMENT_UNDEFINED,
|
||||
|
||||
EAX_ENVIRONMENT_COUNT
|
||||
};
|
||||
|
||||
// Used by DSPROPERTY_EAXLISTENER_FLAGS
|
||||
//
|
||||
// Note: The number and order of flags may change in future EAX versions.
|
||||
// It is recommended to use the flag defines as follows:
|
||||
// myFlags = EAXLISTENERFLAGS_DECAYTIMESCALE | EAXLISTENERFLAGS_REVERBSCALE;
|
||||
// instead of:
|
||||
// myFlags = 0x00000009;
|
||||
//
|
||||
// These flags determine what properties are affected by environment size.
|
||||
#define EAXLISTENERFLAGS_DECAYTIMESCALE 0x00000001 // reverberation decay time
|
||||
#define EAXLISTENERFLAGS_REFLECTIONSSCALE 0x00000002 // reflection level
|
||||
#define EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE 0x00000004 // initial reflection delay time
|
||||
#define EAXLISTENERFLAGS_REVERBSCALE 0x00000008 // reflections level
|
||||
#define EAXLISTENERFLAGS_REVERBDELAYSCALE 0x00000010 // late reverberation delay time
|
||||
#define EAXLISTENERFLAGS_ECHOTIMESCALE 0x00000040 // echo time
|
||||
#define EAXLISTENERFLAGS_MODULATIONTIMESCALE 0x00000080 // modulation time
|
||||
|
||||
// This flag limits high-frequency decay time according to air absorption.
|
||||
#define EAXLISTENERFLAGS_DECAYHFLIMIT 0x00000020
|
||||
|
||||
#define EAXLISTENERFLAGS_RESERVED 0xFFFFFF00 // reserved future use
|
||||
|
||||
// Property ranges and defaults:
|
||||
|
||||
#define EAXLISTENER_MINENVIRONMENT 0
|
||||
#define EAXLISTENER_MAXENVIRONMENT (EAX_ENVIRONMENT_COUNT-1)
|
||||
#define EAXLISTENER_DEFAULTENVIRONMENT EAX_ENVIRONMENT_GENERIC
|
||||
|
||||
#define EAXLISTENER_MINENVIRONMENTSIZE 1.0f
|
||||
#define EAXLISTENER_MAXENVIRONMENTSIZE 100.0f
|
||||
#define EAXLISTENER_DEFAULTENVIRONMENTSIZE 7.5f
|
||||
|
||||
#define EAXLISTENER_MINENVIRONMENTDIFFUSION 0.0f
|
||||
#define EAXLISTENER_MAXENVIRONMENTDIFFUSION 1.0f
|
||||
#define EAXLISTENER_DEFAULTENVIRONMENTDIFFUSION 1.0f
|
||||
|
||||
#define EAXLISTENER_MINROOM (-10000)
|
||||
#define EAXLISTENER_MAXROOM 0
|
||||
#define EAXLISTENER_DEFAULTROOM (-1000)
|
||||
|
||||
#define EAXLISTENER_MINROOMHF (-10000)
|
||||
#define EAXLISTENER_MAXROOMHF 0
|
||||
#define EAXLISTENER_DEFAULTROOMHF (-100)
|
||||
|
||||
#define EAXLISTENER_MINROOMLF (-10000)
|
||||
#define EAXLISTENER_MAXROOMLF 0
|
||||
#define EAXLISTENER_DEFAULTROOMLF 0
|
||||
|
||||
#define EAXLISTENER_MINDECAYTIME 0.1f
|
||||
#define EAXLISTENER_MAXDECAYTIME 20.0f
|
||||
#define EAXLISTENER_DEFAULTDECAYTIME 1.49f
|
||||
|
||||
#define EAXLISTENER_MINDECAYHFRATIO 0.1f
|
||||
#define EAXLISTENER_MAXDECAYHFRATIO 2.0f
|
||||
#define EAXLISTENER_DEFAULTDECAYHFRATIO 0.83f
|
||||
|
||||
#define EAXLISTENER_MINDECAYLFRATIO 0.1f
|
||||
#define EAXLISTENER_MAXDECAYLFRATIO 2.0f
|
||||
#define EAXLISTENER_DEFAULTDECAYLFRATIO 1.00f
|
||||
|
||||
#define EAXLISTENER_MINREFLECTIONS (-10000)
|
||||
#define EAXLISTENER_MAXREFLECTIONS 1000
|
||||
#define EAXLISTENER_DEFAULTREFLECTIONS (-2602)
|
||||
|
||||
#define EAXLISTENER_MINREFLECTIONSDELAY 0.0f
|
||||
#define EAXLISTENER_MAXREFLECTIONSDELAY 0.3f
|
||||
#define EAXLISTENER_DEFAULTREFLECTIONSDELAY 0.007f
|
||||
|
||||
#define EAXLISTENER_MINREVERB (-10000)
|
||||
#define EAXLISTENER_MAXREVERB 2000
|
||||
#define EAXLISTENER_DEFAULTREVERB 200
|
||||
|
||||
#define EAXLISTENER_MINREVERBDELAY 0.0f
|
||||
#define EAXLISTENER_MAXREVERBDELAY 0.1f
|
||||
#define EAXLISTENER_DEFAULTREVERBDELAY 0.011f
|
||||
|
||||
#define EAXLISTENER_MINECHOTIME 0.075f
|
||||
#define EAXLISTENER_MAXECHOTIME 0.25f
|
||||
#define EAXLISTENER_DEFAULTECHOTIME 0.25f
|
||||
|
||||
#define EAXLISTENER_MINECHODEPTH 0.0f
|
||||
#define EAXLISTENER_MAXECHODEPTH 1.0f
|
||||
#define EAXLISTENER_DEFAULTECHODEPTH 0.0f
|
||||
|
||||
#define EAXLISTENER_MINMODULATIONTIME 0.04f
|
||||
#define EAXLISTENER_MAXMODULATIONTIME 4.0f
|
||||
#define EAXLISTENER_DEFAULTMODULATIONTIME 0.25f
|
||||
|
||||
#define EAXLISTENER_MINMODULATIONDEPTH 0.0f
|
||||
#define EAXLISTENER_MAXMODULATIONDEPTH 1.0f
|
||||
#define EAXLISTENER_DEFAULTMODULATIONDEPTH 0.0f
|
||||
|
||||
#define EAXLISTENER_MINAIRABSORPTIONHF (-100.0f)
|
||||
#define EAXLISTENER_MAXAIRABSORPTIONHF 0.0f
|
||||
#define EAXLISTENER_DEFAULTAIRABSORPTIONHF (-5.0f)
|
||||
|
||||
#define EAXLISTENER_MINHFREFERENCE 1000.0f
|
||||
#define EAXLISTENER_MAXHFREFERENCE 20000.0f
|
||||
#define EAXLISTENER_DEFAULTHFREFERENCE 5000.0f
|
||||
|
||||
#define EAXLISTENER_MINLFREFERENCE 20.0f
|
||||
#define EAXLISTENER_MAXLFREFERENCE 1000.0f
|
||||
#define EAXLISTENER_DEFAULTLFREFERENCE 250.0f
|
||||
|
||||
#define EAXLISTENER_MINROOMROLLOFFFACTOR 0.0f
|
||||
#define EAXLISTENER_MAXROOMROLLOFFFACTOR 10.0f
|
||||
#define EAXLISTENER_DEFAULTROOMROLLOFFFACTOR 0.0f
|
||||
|
||||
#define EAXLISTENER_DEFAULTFLAGS (EAXLISTENERFLAGS_DECAYTIMESCALE | \
|
||||
EAXLISTENERFLAGS_REFLECTIONSSCALE | \
|
||||
EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE | \
|
||||
EAXLISTENERFLAGS_REVERBSCALE | \
|
||||
EAXLISTENERFLAGS_REVERBDELAYSCALE | \
|
||||
EAXLISTENERFLAGS_DECAYHFLIMIT)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* EAX 3.0 buffer property set {A8FA6881-B476-11d3-BDB9-00C0F02DDF87}
|
||||
*/
|
||||
DEFINE_GUID(DSPROPSETID_EAX30_BufferProperties,
|
||||
0xa8fa6881,
|
||||
0xb476,
|
||||
0x11d3,
|
||||
0xbd, 0xb9, 0x0, 0xc0, 0xf0, 0x2d, 0xdf, 0x87);
|
||||
|
||||
// For compatibility with future EAX versions:
|
||||
#define DSPROPSETID_EAX_BufferProperties DSPROPSETID_EAX30_BufferProperties
|
||||
#define DSPROPSETID_EAX_SourceProperties DSPROPSETID_EAX30_BufferProperties
|
||||
|
||||
typedef enum
|
||||
{
|
||||
DSPROPERTY_EAXBUFFER_NONE,
|
||||
DSPROPERTY_EAXBUFFER_ALLPARAMETERS,
|
||||
DSPROPERTY_EAXBUFFER_OBSTRUCTIONPARAMETERS,
|
||||
DSPROPERTY_EAXBUFFER_OCCLUSIONPARAMETERS,
|
||||
DSPROPERTY_EAXBUFFER_EXCLUSIONPARAMETERS,
|
||||
DSPROPERTY_EAXBUFFER_DIRECT,
|
||||
DSPROPERTY_EAXBUFFER_DIRECTHF,
|
||||
DSPROPERTY_EAXBUFFER_ROOM,
|
||||
DSPROPERTY_EAXBUFFER_ROOMHF,
|
||||
DSPROPERTY_EAXBUFFER_OBSTRUCTION,
|
||||
DSPROPERTY_EAXBUFFER_OBSTRUCTIONLFRATIO,
|
||||
DSPROPERTY_EAXBUFFER_OCCLUSION,
|
||||
DSPROPERTY_EAXBUFFER_OCCLUSIONLFRATIO,
|
||||
DSPROPERTY_EAXBUFFER_OCCLUSIONROOMRATIO,
|
||||
DSPROPERTY_EAXBUFFER_OCCLUSIONDIRECTRATIO,
|
||||
DSPROPERTY_EAXBUFFER_EXCLUSION,
|
||||
DSPROPERTY_EAXBUFFER_EXCLUSIONLFRATIO,
|
||||
DSPROPERTY_EAXBUFFER_OUTSIDEVOLUMEHF,
|
||||
DSPROPERTY_EAXBUFFER_DOPPLERFACTOR,
|
||||
DSPROPERTY_EAXBUFFER_ROLLOFFFACTOR,
|
||||
DSPROPERTY_EAXBUFFER_ROOMROLLOFFFACTOR,
|
||||
DSPROPERTY_EAXBUFFER_AIRABSORPTIONFACTOR,
|
||||
DSPROPERTY_EAXBUFFER_FLAGS
|
||||
} DSPROPERTY_EAX_BUFFERPROPERTY;
|
||||
|
||||
// OR these flags with property id
|
||||
#define DSPROPERTY_EAXBUFFER_IMMEDIATE 0x00000000 // changes take effect immediately
|
||||
#define DSPROPERTY_EAXBUFFER_DEFERRED 0x80000000 // changes take effect later
|
||||
#define DSPROPERTY_EAXBUFFER_COMMITDEFERREDSETTINGS (DSPROPERTY_EAXBUFFER_NONE | \
|
||||
DSPROPERTY_EAXBUFFER_IMMEDIATE)
|
||||
|
||||
// Use this structure for DSPROPERTY_EAXBUFFER_ALLPARAMETERS
|
||||
// - all levels are hundredths of decibels
|
||||
// - all delays are in seconds
|
||||
//
|
||||
// NOTE: This structure may change in future EAX versions.
|
||||
// It is recommended to initialize fields by name:
|
||||
// myBuffer.lDirect = 0;
|
||||
// myBuffer.lDirectHF = -200;
|
||||
// ...
|
||||
// myBuffer.dwFlags = myFlags /* see EAXBUFFERFLAGS below */ ;
|
||||
// instead of:
|
||||
// myBuffer = { 0, -200, ... , 0x00000003 };
|
||||
//
|
||||
typedef struct _EAXBUFFERPROPERTIES
|
||||
{
|
||||
long lDirect; // direct path level (at low and mid frequencies)
|
||||
long lDirectHF; // relative direct path level at high frequencies
|
||||
long lRoom; // room effect level (at low and mid frequencies)
|
||||
long lRoomHF; // relative room effect level at high frequencies
|
||||
long lObstruction; // main obstruction control (attenuation at high frequencies)
|
||||
float flObstructionLFRatio; // obstruction low-frequency level re. main control
|
||||
long lOcclusion; // main occlusion control (attenuation at high frequencies)
|
||||
float flOcclusionLFRatio; // occlusion low-frequency level re. main control
|
||||
float flOcclusionRoomRatio; // relative occlusion control for room effect
|
||||
float flOcclusionDirectRatio; // relative occlusion control for direct path
|
||||
long lExclusion; // main exlusion control (attenuation at high frequencies)
|
||||
float flExclusionLFRatio; // exclusion low-frequency level re. main control
|
||||
long lOutsideVolumeHF; // outside sound cone level at high frequencies
|
||||
float flDopplerFactor; // like DS3D flDopplerFactor but per source
|
||||
float flRolloffFactor; // like DS3D flRolloffFactor but per source
|
||||
float flRoomRolloffFactor; // like DS3D flRolloffFactor but for room effect
|
||||
float flAirAbsorptionFactor; // multiplies DSPROPERTY_EAXLISTENER_AIRABSORPTIONHF
|
||||
unsigned long ulFlags; // modifies the behavior of properties
|
||||
} EAXBUFFERPROPERTIES, *LPEAXBUFFERPROPERTIES;
|
||||
|
||||
// Use this structure for DSPROPERTY_EAXBUFFER_OBSTRUCTION,
|
||||
typedef struct _EAXOBSTRUCTIONPROPERTIES
|
||||
{
|
||||
long lObstruction;
|
||||
float flObstructionLFRatio;
|
||||
} EAXOBSTRUCTIONPROPERTIES, *LPEAXOBSTRUCTIONPROPERTIES;
|
||||
|
||||
// Use this structure for DSPROPERTY_EAXBUFFER_OCCLUSION
|
||||
typedef struct _EAXOCCLUSIONPROPERTIES
|
||||
{
|
||||
long lOcclusion;
|
||||
float flOcclusionLFRatio;
|
||||
float flOcclusionRoomRatio;
|
||||
float flOcclusionDirectRatio;
|
||||
} EAXOCCLUSIONPROPERTIES, *LPEAXOCCLUSIONPROPERTIES;
|
||||
|
||||
// Use this structure for DSPROPERTY_EAXBUFFER_EXCLUSION
|
||||
typedef struct _EAXEXCLUSIONPROPERTIES
|
||||
{
|
||||
long lExclusion;
|
||||
float flExclusionLFRatio;
|
||||
} EAXEXCLUSIONPROPERTIES, *LPEAXEXCLUSIONPROPERTIES;
|
||||
|
||||
// Used by DSPROPERTY_EAXBUFFER_FLAGS
|
||||
// TRUE: value is computed automatically - property is an offset
|
||||
// FALSE: value is used directly
|
||||
//
|
||||
// Note: The number and order of flags may change in future EAX versions.
|
||||
// To insure future compatibility, use flag defines as follows:
|
||||
// myFlags = EAXBUFFERFLAGS_DIRECTHFAUTO | EAXBUFFERFLAGS_ROOMAUTO;
|
||||
// instead of:
|
||||
// myFlags = 0x00000003;
|
||||
//
|
||||
#define EAXBUFFERFLAGS_DIRECTHFAUTO 0x00000001 // affects DSPROPERTY_EAXBUFFER_DIRECTHF
|
||||
#define EAXBUFFERFLAGS_ROOMAUTO 0x00000002 // affects DSPROPERTY_EAXBUFFER_ROOM
|
||||
#define EAXBUFFERFLAGS_ROOMHFAUTO 0x00000004 // affects DSPROPERTY_EAXBUFFER_ROOMHF
|
||||
|
||||
#define EAXBUFFERFLAGS_RESERVED 0xFFFFFFF8 // reserved future use
|
||||
|
||||
// Property ranges and defaults:
|
||||
|
||||
#define EAXBUFFER_MINDIRECT (-10000)
|
||||
#define EAXBUFFER_MAXDIRECT 1000
|
||||
#define EAXBUFFER_DEFAULTDIRECT 0
|
||||
|
||||
#define EAXBUFFER_MINDIRECTHF (-10000)
|
||||
#define EAXBUFFER_MAXDIRECTHF 0
|
||||
#define EAXBUFFER_DEFAULTDIRECTHF 0
|
||||
|
||||
#define EAXBUFFER_MINROOM (-10000)
|
||||
#define EAXBUFFER_MAXROOM 1000
|
||||
#define EAXBUFFER_DEFAULTROOM 0
|
||||
|
||||
#define EAXBUFFER_MINROOMHF (-10000)
|
||||
#define EAXBUFFER_MAXROOMHF 0
|
||||
#define EAXBUFFER_DEFAULTROOMHF 0
|
||||
|
||||
#define EAXBUFFER_MINOBSTRUCTION (-10000)
|
||||
#define EAXBUFFER_MAXOBSTRUCTION 0
|
||||
#define EAXBUFFER_DEFAULTOBSTRUCTION 0
|
||||
|
||||
#define EAXBUFFER_MINOBSTRUCTIONLFRATIO 0.0f
|
||||
#define EAXBUFFER_MAXOBSTRUCTIONLFRATIO 1.0f
|
||||
#define EAXBUFFER_DEFAULTOBSTRUCTIONLFRATIO 0.0f
|
||||
|
||||
#define EAXBUFFER_MINOCCLUSION (-10000)
|
||||
#define EAXBUFFER_MAXOCCLUSION 0
|
||||
#define EAXBUFFER_DEFAULTOCCLUSION 0
|
||||
|
||||
#define EAXBUFFER_MINOCCLUSIONLFRATIO 0.0f
|
||||
#define EAXBUFFER_MAXOCCLUSIONLFRATIO 1.0f
|
||||
#define EAXBUFFER_DEFAULTOCCLUSIONLFRATIO 0.25f
|
||||
|
||||
#define EAXBUFFER_MINOCCLUSIONROOMRATIO 0.0f
|
||||
#define EAXBUFFER_MAXOCCLUSIONROOMRATIO 10.0f
|
||||
#define EAXBUFFER_DEFAULTOCCLUSIONROOMRATIO 1.5f
|
||||
|
||||
#define EAXBUFFER_MINOCCLUSIONDIRECTRATIO 0.0f
|
||||
#define EAXBUFFER_MAXOCCLUSIONDIRECTRATIO 10.0f
|
||||
#define EAXBUFFER_DEFAULTOCCLUSIONDIRECTRATIO 1.0f
|
||||
|
||||
#define EAXBUFFER_MINEXCLUSION (-10000)
|
||||
#define EAXBUFFER_MAXEXCLUSION 0
|
||||
#define EAXBUFFER_DEFAULTEXCLUSION 0
|
||||
|
||||
#define EAXBUFFER_MINEXCLUSIONLFRATIO 0.0f
|
||||
#define EAXBUFFER_MAXEXCLUSIONLFRATIO 1.0f
|
||||
#define EAXBUFFER_DEFAULTEXCLUSIONLFRATIO 1.0f
|
||||
|
||||
#define EAXBUFFER_MINOUTSIDEVOLUMEHF (-10000)
|
||||
#define EAXBUFFER_MAXOUTSIDEVOLUMEHF 0
|
||||
#define EAXBUFFER_DEFAULTOUTSIDEVOLUMEHF 0
|
||||
|
||||
#define EAXBUFFER_MINDOPPLERFACTOR 0.0f
|
||||
#define EAXBUFFER_MAXDOPPLERFACTOR 10.f
|
||||
#define EAXBUFFER_DEFAULTDOPPLERFACTOR 0.0f
|
||||
|
||||
#define EAXBUFFER_MINROLLOFFFACTOR 0.0f
|
||||
#define EAXBUFFER_MAXROLLOFFFACTOR 10.f
|
||||
#define EAXBUFFER_DEFAULTROLLOFFFACTOR 0.0f
|
||||
|
||||
#define EAXBUFFER_MINROOMROLLOFFFACTOR 0.0f
|
||||
#define EAXBUFFER_MAXROOMROLLOFFFACTOR 10.f
|
||||
#define EAXBUFFER_DEFAULTROOMROLLOFFFACTOR 0.0f
|
||||
|
||||
#define EAXBUFFER_MINAIRABSORPTIONFACTOR 0.0f
|
||||
#define EAXBUFFER_MAXAIRABSORPTIONFACTOR 10.0f
|
||||
#define EAXBUFFER_DEFAULTAIRABSORPTIONFACTOR 1.0f
|
||||
|
||||
#define EAXBUFFER_DEFAULTFLAGS (EAXBUFFERFLAGS_DIRECTHFAUTO | \
|
||||
EAXBUFFERFLAGS_ROOMAUTO | \
|
||||
EAXBUFFERFLAGS_ROOMHFAUTO )
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif // __cplusplus
|
||||
|
||||
#endif
|
4805
milessdk/include/mss.h
Normal file
4805
milessdk/include/mss.h
Normal file
File diff suppressed because it is too large
Load Diff
BIN
milessdk/lib/mss32.lib
Normal file
BIN
milessdk/lib/mss32.lib
Normal file
Binary file not shown.
@ -17,6 +17,7 @@ workspace "re3"
|
||||
files { "src/skel/win/*.*" }
|
||||
files { "src/vehicles/*.*" }
|
||||
files { "src/weapons/*.*" }
|
||||
files { "eax/*.*" }
|
||||
|
||||
includedirs { "src" }
|
||||
includedirs { "src/animation" }
|
||||
@ -33,11 +34,15 @@ workspace "re3"
|
||||
includedirs { "src/skel/win" }
|
||||
includedirs { "src/vehicles" }
|
||||
includedirs { "src/weapons" }
|
||||
includedirs { "eax" }
|
||||
|
||||
includedirs { "dxsdk/include" }
|
||||
includedirs { "rwsdk/include/d3d8" }
|
||||
includedirs { "milessdk/include" }
|
||||
includedirs { "eax" }
|
||||
|
||||
libdirs { "dxsdk/lib" }
|
||||
libdirs { "milessdk/lib" }
|
||||
|
||||
pbcommands = {
|
||||
"setlocal EnableDelayedExpansion",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -187,6 +187,24 @@ struct cAudioScriptObject {
|
||||
|
||||
static_assert(sizeof(cAudioScriptObject) == 0x14, "cAudioScriptObject: error");
|
||||
|
||||
enum
|
||||
{
|
||||
/*
|
||||
REFLECTION_YMAX = 0, top
|
||||
REFLECTION_YMIN = 1, bottom
|
||||
REFLECTION_XMIN = 2, left
|
||||
REFLECTION_XMAX = 3, right
|
||||
REFLECTION_ZMAX = 4,
|
||||
*/
|
||||
|
||||
REFLECTION_TOP = 0,
|
||||
REFLECTION_BOTTOM,
|
||||
REFLECTION_LEFT,
|
||||
REFLECTION_RIGHT,
|
||||
REFLECTION_UP,
|
||||
MAX_REFLECTIONS,
|
||||
};
|
||||
|
||||
class cAudioManager
|
||||
{
|
||||
public:
|
||||
@ -234,7 +252,13 @@ public:
|
||||
uint8 m_bUserPause;
|
||||
uint8 m_bPreviousUserPause;
|
||||
uint8 field_19195;
|
||||
int32 m_nTimeOfRecentCrime;
|
||||
uint32 m_FrameCounter;
|
||||
|
||||
inline uint32 GetFrameCounter(void) { return m_FrameCounter; }
|
||||
float GetReflectionsDistance(int32 idx) { return m_afReflectionsDistances[idx]; }
|
||||
int32 GetRandomTabe(int32 idx) { return m_anRandomTable[idx]; }
|
||||
|
||||
//
|
||||
|
||||
void AddDetailsToRequestedOrderList(uint8 sample); /// ok
|
||||
void AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sample, uint8 unk1,
|
||||
@ -243,7 +267,7 @@ public:
|
||||
void AddReleasingSounds(); // todo (difficult)
|
||||
void AddSampleToRequestedQueue(); /// ok
|
||||
void AgeCrimes(); // todo
|
||||
int8 AutoDetect3DProviders(); /// ok
|
||||
int8 GetCurrent3DProviderIndex(); /// ok
|
||||
|
||||
void CalculateDistance(bool *ptr, float dist); /// ok
|
||||
bool CheckForAnAudioFileOnCD(); /// ok
|
||||
@ -283,8 +307,8 @@ public:
|
||||
|
||||
void SetEffectsMasterVolume(uint8 volume);
|
||||
void SetMusicMasterVolume(uint8 volume);
|
||||
void SetEffectsFadeVol(uint8 volume);
|
||||
void SetMusicFadeVol(uint8 volume);
|
||||
void SetEffectsFadeVolume(uint8 volume);
|
||||
void SetMusicFadeVolume(uint8 volume);
|
||||
|
||||
void SetSpeakerConfig(int32 conf);
|
||||
|
||||
@ -324,7 +348,7 @@ public:
|
||||
int32 RandomDisplacement(uint32 seed);
|
||||
|
||||
void ReleaseDigitalHandle();
|
||||
void RequireDigitalHandle();
|
||||
void ReacquireDigitalHandle();
|
||||
void SetDynamicAcousticModelingStatus(bool status);
|
||||
|
||||
bool IsAudioInitialised() const;
|
||||
|
@ -3037,6 +3037,14 @@ enum eAudioSamples : uint32 {
|
||||
AUDIO_SAMPLE_AMMUNATION_WELCOME_3 = 3031,
|
||||
TOTAL_AUDIO_SAMPLES = 3032,
|
||||
NO_SAMPLE = 3033,
|
||||
|
||||
// shorthands
|
||||
SAMPLEBANK_START = AUDIO_SAMPLE_VEHICLE_HORN_0,
|
||||
SAMPLEBANK_END = AUDIO_SAMPLE_PAGER,
|
||||
SAMPLEBANK_MAX = AUDIO_SAMPLE_PAGER+1,
|
||||
SAMPLEBANK_PED_START = AUDIO_SAMPLE_POLICE_COP_1_ARREST_1,
|
||||
SAMPLEBANK_PED_END = AUDIO_SAMPLE_AMMUNATION_WELCOME_3,
|
||||
SAMPLEBANK_PED_MAX = AUDIO_SAMPLE_AMMUNATION_WELCOME_3+1,
|
||||
};
|
||||
|
||||
enum eScriptSounds : int16
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "Camera.h"
|
||||
#include "World.h"
|
||||
#include "ModelIndices.h"
|
||||
#include "SampleManager.h"
|
||||
#include "sampman.h"
|
||||
#include "Replay.h"
|
||||
|
||||
cMusicManager &MusicManager = *(cMusicManager*)0x8F3964;
|
||||
@ -57,7 +57,7 @@ void cMusicManager::DisplayRadioStationName()
|
||||
if (MusicManager.m_bPlayerInCar && !MusicManager.m_bPreviousPlayerInCar)
|
||||
pCurrentStation = nil;
|
||||
|
||||
if (cSampleManager.IsMP3RadioChannelAvailable()) {
|
||||
if (SampleManager.IsMP3RadioChannelAvailable()) {
|
||||
gStreamedSound = MusicManager.m_nCurrentStreamedSound;
|
||||
|
||||
if (gStreamedSound != STREAMED_SOUND_CITY_AMBIENT && gStreamedSound != STREAMED_SOUND_WATER_AMBIENT) {
|
||||
@ -140,7 +140,7 @@ void cMusicManager::DisplayRadioStationName()
|
||||
return;
|
||||
};
|
||||
|
||||
if (pRetune > CHATTERBOX && !CSampleManager::IsMP3RadioChannelAvailable()) {
|
||||
if (pRetune > CHATTERBOX && !SampleManager.IsMP3RadioChannelAvailable()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,15 @@ enum eRadioStation
|
||||
RADIO_OFF,
|
||||
};
|
||||
|
||||
enum eMusicMode
|
||||
{
|
||||
MUSICMODE_FRONTEND = 0,
|
||||
MUSICMODE_GAME,
|
||||
MUSICMODE_CUTSCENE,
|
||||
MUSICMODE_OFF,
|
||||
MUSICMODE_4,
|
||||
};
|
||||
|
||||
enum eStreamedSounds
|
||||
{
|
||||
STREAMED_SOUND_RADIO_HEAD = 0,
|
||||
@ -264,6 +273,10 @@ public:
|
||||
uint8 field_2395;
|
||||
|
||||
public:
|
||||
bool IsInitialised() { return m_bIsInitialised; }
|
||||
uint32 GetMusicMode() { return m_nMusicMode; }
|
||||
uint8 GetCurrentTrack() { return m_nCurrentStreamedSound; }
|
||||
|
||||
void Initialise();
|
||||
void Terminate();
|
||||
|
||||
|
@ -1,176 +0,0 @@
|
||||
#include "SampleManager.h"
|
||||
#include "common.h"
|
||||
#include "patcher.h"
|
||||
|
||||
CSampleManager &cSampleManager = *(CSampleManager *)0x7341E0;
|
||||
|
||||
uint32 &nNumOfMp3Files = *(uint32 *)0x95CC00;
|
||||
uint8 &num3DProvidersAvailable = *(uint8 *)0x734237;
|
||||
char **asName3DProviders = (char **)0x734238;
|
||||
|
||||
bool
|
||||
CSampleManager::IsMP3RadioChannelAvailable()
|
||||
{
|
||||
return nNumOfMp3Files != 0;
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::SetChannelFrequency(int32, int32) { EAXJMP(0x5679D0); }
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::SetChannelEmittingVolume(int32, uint32) { EAXJMP(0x567820); }
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetChannel3DPosition(int32, float, float, float)
|
||||
{
|
||||
EAXJMP(0x567890);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::SetChannelLoopCount(int32, int32) { EAXJMP(0x567AA0); }
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::SetChannel3DDistances(int32, int32, int32) { EAXJMP(0x5678D0); }
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::SetChannelReverbFlag(int32, uint8) { EAXJMP(0x567630); }
|
||||
|
||||
WRAPPER
|
||||
int32 CSampleManager::GetSampleLength(int32) { EAXJMP(0x567300); }
|
||||
|
||||
WRAPPER
|
||||
bool CSampleManager::InitialiseChannel(int32, int32, uint32, uint32) { EAXJMP(0x5676A0); }
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::SetChannelLoopPoints(int32, int32, int32) { EAXJMP(0x567A30); }
|
||||
|
||||
WRAPPER
|
||||
bool
|
||||
CSampleManager::CheckForAnAudioFileOnCD()
|
||||
{
|
||||
EAXJMP(0x566EA0);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
int32 CSampleManager::GetSampleBaseFrequency(int32) { EAXJMP(0x5672A0); }
|
||||
|
||||
WRAPPER
|
||||
int32 CSampleManager::GetSampleLoopStartOffset(int32) { EAXJMP(0x5672C0); }
|
||||
|
||||
WRAPPER
|
||||
int32 CSampleManager::GetSampleLoopEndOffset(int32) { EAXJMP(0x5672E0); }
|
||||
|
||||
WRAPPER
|
||||
bool CSampleManager::IsSampleBankLoaded(uint8) { EAXJMP(0x567130); }
|
||||
|
||||
WRAPPER
|
||||
void CSampleManager::UnloadSampleBank(uint8) { EAXJMP(0x567110); }
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::Terminate()
|
||||
{
|
||||
EAXJMP(0x566DC0);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
bool
|
||||
CSampleManager::Initialise()
|
||||
{
|
||||
EAXJMP(0x566530);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
int32
|
||||
CSampleManager::GetActiveSamples()
|
||||
{
|
||||
EAXJMP(0x565970);
|
||||
}
|
||||
|
||||
WRAPPER void
|
||||
CSampleManager::ReleaseDigitalHandle()
|
||||
{
|
||||
EAXJMP(0x5664B0);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::RequireDigitalHandle()
|
||||
{
|
||||
EAXJMP(0x5664F0);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
char
|
||||
CSampleManager::AutoDetect3DProviders()
|
||||
{
|
||||
EAXJMP(0x565990);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
uint8
|
||||
CSampleManager::GetCDAudioDriveLetter()
|
||||
{
|
||||
EAXJMP(0x566F20);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetEffectsMasterVolume(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567010);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetMusicMasterVolume(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567020);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetEffectsFadeVol(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567030);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetMusicFadeVol(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567040);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetSpeakerConfig(uint32 config)
|
||||
{
|
||||
EAXJMP(0x565900);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
bool
|
||||
CSampleManager::GetChannelUsedFlag(int32 id)
|
||||
{
|
||||
EAXJMP(0x567B00);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::StartChannel(int32 id)
|
||||
{
|
||||
EAXJMP(0x567B80);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::StopChannel(int32 id)
|
||||
{
|
||||
EAXJMP(0x567BE0);
|
||||
}
|
||||
|
||||
STARTPATCHES
|
||||
InjectHook(0x566490, CSampleManager::IsMP3RadioChannelAvailable, PATCH_JUMP);
|
||||
ENDPATCHES
|
@ -1,68 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "common.h"
|
||||
|
||||
struct tSample {
|
||||
int m_nOffset;
|
||||
unsigned int m_nSize;
|
||||
int m_nFrequency;
|
||||
int m_nLoopStart;
|
||||
int m_nLoopEnd;
|
||||
};
|
||||
|
||||
class CSampleManager
|
||||
{
|
||||
public:
|
||||
void SetChannelFrequency(int32, int32);
|
||||
void SetChannelEmittingVolume(int32, uint32);
|
||||
void SetChannel3DPosition(int32, float, float, float);
|
||||
void SetChannelLoopCount(int32, int32);
|
||||
|
||||
void SetChannel3DDistances(int32, int32, int32);
|
||||
void SetChannelReverbFlag(int32, uint8);
|
||||
|
||||
int32 GetSampleLength(int32);
|
||||
|
||||
bool InitialiseChannel(int32, int32, uint32, uint32 something = 0);
|
||||
|
||||
void SetChannelLoopPoints(int32, int32, int32);
|
||||
|
||||
bool CheckForAnAudioFileOnCD();
|
||||
|
||||
int32 GetSampleBaseFrequency(int32);
|
||||
int32 GetSampleLoopStartOffset(int32);
|
||||
int32 GetSampleLoopEndOffset(int32);
|
||||
|
||||
bool IsSampleBankLoaded(uint8);
|
||||
void UnloadSampleBank(uint8);
|
||||
void Terminate();
|
||||
|
||||
bool Initialise();
|
||||
int32 GetActiveSamples();
|
||||
|
||||
void ReleaseDigitalHandle();
|
||||
void RequireDigitalHandle();
|
||||
|
||||
char AutoDetect3DProviders();
|
||||
uint8 GetCDAudioDriveLetter();
|
||||
|
||||
void SetEffectsMasterVolume(uint8 volume);
|
||||
void SetMusicMasterVolume(uint8 volume);
|
||||
void SetEffectsFadeVol(uint8 volume);
|
||||
void SetMusicFadeVol(uint8 volume);
|
||||
|
||||
void SetSpeakerConfig(uint32 config);
|
||||
|
||||
bool GetChannelUsedFlag(int32 id);
|
||||
|
||||
void StartChannel(int32 id);
|
||||
void StopChannel(int32 id);
|
||||
|
||||
static bool IsMP3RadioChannelAvailable();
|
||||
};
|
||||
|
||||
extern uint32 &nNumOfMp3Files;
|
||||
extern uint8 &num3DProvidersAvailable;
|
||||
extern char **asName3DProviders;
|
||||
|
||||
extern CSampleManager &cSampleManager;
|
2331
src/audio/sampman.cpp
Normal file
2331
src/audio/sampman.cpp
Normal file
File diff suppressed because it is too large
Load Diff
334
src/audio/sampman.h
Normal file
334
src/audio/sampman.h
Normal file
@ -0,0 +1,334 @@
|
||||
#pragma once
|
||||
#include "common.h"
|
||||
#include "AudioSamples.h"
|
||||
|
||||
struct tSample {
|
||||
int32 nOffset;
|
||||
uint32 nSize;
|
||||
int32 nFrequency;
|
||||
int32 nLoopStart;
|
||||
int32 nLoopEnd;
|
||||
};
|
||||
|
||||
#define MAXPROVIDERS 64
|
||||
|
||||
#define MAXCHANNELS 28
|
||||
#define MAXCHANNELS_SURROUND 24
|
||||
#define MAX2DCHANNELS 1
|
||||
#define CHANNEL2D MAXCHANNELS
|
||||
|
||||
|
||||
#define MAX_MP3STREAMS 2
|
||||
|
||||
|
||||
#define MAX_SAMPLEBANKS 2
|
||||
#define MAX_PEDSFX 7
|
||||
#define PED_BLOCKSIZE 79000
|
||||
|
||||
|
||||
#define MAX_DIGITAL_MIXER_CHANNELS 32
|
||||
|
||||
#define DIGITALRATE 32000
|
||||
#define DIGITALBITS 16
|
||||
#define DIGITALCHANNELS 2
|
||||
|
||||
|
||||
|
||||
class cSampleManager
|
||||
{
|
||||
uint8 m_nEffectsVolume;
|
||||
uint8 m_nMusicVolume;
|
||||
uint8 m_nEffectsFadeVolume;
|
||||
uint8 m_nMusicFadeVolume;
|
||||
uint8 m_nMonoMode;
|
||||
char _pad0[1];
|
||||
char m_szCDRomRootPath[80];
|
||||
bool m_bInitialised;
|
||||
uint8 m_nNumberOfProviders;
|
||||
char *m_aAudioProviders[MAXPROVIDERS];
|
||||
tSample m_aSamples[TOTAL_AUDIO_SAMPLES];
|
||||
|
||||
public:
|
||||
|
||||
|
||||
|
||||
cSampleManager(void) :
|
||||
m_nNumberOfProviders(0)
|
||||
{ }
|
||||
|
||||
~cSampleManager(void)
|
||||
{ }
|
||||
|
||||
void SetSpeakerConfig(int32 nConfig);
|
||||
uint32 GetMaximumSupportedChannels(void);
|
||||
|
||||
uint32 GetNum3DProvidersAvailable() { return m_nNumberOfProviders; }
|
||||
void SetNum3DProvidersAvailable(uint32 num) { m_nNumberOfProviders = num; }
|
||||
|
||||
char *Get3DProviderName(uint8 id) { return m_aAudioProviders[id]; }
|
||||
void Set3DProviderName(uint8 id, char *name) { m_aAudioProviders[id] = name; }
|
||||
|
||||
int8 GetCurrent3DProviderIndex(void);
|
||||
int8 SetCurrent3DProvider(uint8 which);
|
||||
|
||||
bool IsMP3RadioChannelAvailable(void);
|
||||
|
||||
void ReleaseDigitalHandle (void);
|
||||
void ReacquireDigitalHandle(void);
|
||||
|
||||
bool Initialise(void);
|
||||
void Terminate (void);
|
||||
|
||||
bool CheckForAnAudioFileOnCD(void);
|
||||
char GetCDAudioDriveLetter (void);
|
||||
|
||||
void UpdateEffectsVolume(void);
|
||||
|
||||
void SetEffectsMasterVolume(uint8 nVolume);
|
||||
void SetMusicMasterVolume (uint8 nVolume);
|
||||
void SetEffectsFadeVolume (uint8 nVolume);
|
||||
void SetMusicFadeVolume (uint8 nVolume);
|
||||
|
||||
bool LoadSampleBank (uint8 nBank);
|
||||
void UnloadSampleBank (uint8 nBank);
|
||||
bool IsSampleBankLoaded(uint8 nBank);
|
||||
|
||||
bool IsPedCommentLoaded(uint32 nComment);
|
||||
bool LoadPedComment (uint32 nComment);
|
||||
|
||||
int32 _GetPedCommentSlot(uint32 nComment);
|
||||
|
||||
int32 GetSampleBaseFrequency (uint32 nSample);
|
||||
int32 GetSampleLoopStartOffset(uint32 nSample);
|
||||
int32 GetSampleLoopEndOffset (uint32 nSample);
|
||||
uint32 GetSampleLength (uint32 nSample);
|
||||
|
||||
bool UpdateReverb(void);
|
||||
|
||||
void SetChannelReverbFlag (uint32 nChannel, uint8 nReverbFlag);
|
||||
bool InitialiseChannel (uint32 nChannel, uint32 nSfx, uint8 nBank);
|
||||
void SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume);
|
||||
void SetChannel3DPosition (uint32 nChannel, float fX, float fY, float fZ);
|
||||
void SetChannel3DDistances (uint32 nChannel, float fMax, float fMin);
|
||||
void SetChannelVolume (uint32 nChannel, uint32 nVolume);
|
||||
void SetChannelPan (uint32 nChannel, uint32 nPan);
|
||||
void SetChannelFrequency (uint32 nChannel, uint32 nFreq);
|
||||
void SetChannelLoopPoints (uint32 nChannel, uint32 nLoopStart, int32 nLoopEnd);
|
||||
void SetChannelLoopCount (uint32 nChannel, uint32 nLoopCount);
|
||||
bool GetChannelUsedFlag (uint32 nChannel);
|
||||
void StartChannel (uint32 nChannel);
|
||||
void StopChannel (uint32 nChannel);
|
||||
|
||||
void PreloadStreamedFile (uint8 nFile, uint8 nStream);
|
||||
void PauseStream (uint8 nPauseFlag, uint8 nStream);
|
||||
void StartPreloadedStreamedFile (uint8 nStream);
|
||||
bool StartStreamedFile (uint8 nFile, uint32 nPos, uint8 nStream);
|
||||
void StopStreamedFile (uint8 nStream);
|
||||
int32 GetStreamedFilePosition (uint8 nStream);
|
||||
void SetStreamedVolumeAndPan(uint8 nVolume, uint8 nPan, uint8 nEffectFlag, uint8 nStream);
|
||||
int32 GetStreamedFileLength (uint8 nStream);
|
||||
bool IsStreamPlaying (uint8 nStream);
|
||||
bool InitialiseSampleBanks(void);
|
||||
};
|
||||
|
||||
extern cSampleManager &SampleManager;
|
||||
|
||||
static char StreamedNameTable[][25]=
|
||||
{
|
||||
"AUDIO\\HEAD.WAV",
|
||||
"AUDIO\\CLASS.WAV",
|
||||
"AUDIO\\KJAH.WAV",
|
||||
"AUDIO\\RISE.WAV",
|
||||
"AUDIO\\LIPS.WAV",
|
||||
"AUDIO\\GAME.WAV",
|
||||
"AUDIO\\MSX.WAV",
|
||||
"AUDIO\\FLASH.WAV",
|
||||
"AUDIO\\CHAT.WAV",
|
||||
"AUDIO\\HEAD.WAV",
|
||||
"AUDIO\\POLICE.WAV",
|
||||
"AUDIO\\CITY.WAV",
|
||||
"AUDIO\\WATER.WAV",
|
||||
"AUDIO\\COMOPEN.WAV",
|
||||
"AUDIO\\SUBOPEN.WAV",
|
||||
"AUDIO\\JB.MP3",
|
||||
"AUDIO\\BET.MP3",
|
||||
"AUDIO\\L1_LG.MP3",
|
||||
"AUDIO\\L2_DSB.MP3",
|
||||
"AUDIO\\L3_DM.MP3",
|
||||
"AUDIO\\L4_PAP.MP3",
|
||||
"AUDIO\\L5_TFB.MP3",
|
||||
"AUDIO\\J0_DM2.MP3",
|
||||
"AUDIO\\J1_LFL.MP3",
|
||||
"AUDIO\\J2_KCL.MP3",
|
||||
"AUDIO\\J3_VH.MP3",
|
||||
"AUDIO\\J4_ETH.MP3",
|
||||
"AUDIO\\J5_DST.MP3",
|
||||
"AUDIO\\J6_TBJ.MP3",
|
||||
"AUDIO\\T1_TOL.MP3",
|
||||
"AUDIO\\T2_TPU.MP3",
|
||||
"AUDIO\\T3_MAS.MP3",
|
||||
"AUDIO\\T4_TAT.MP3",
|
||||
"AUDIO\\T5_BF.MP3",
|
||||
"AUDIO\\S0_MAS.MP3",
|
||||
"AUDIO\\S1_PF.MP3",
|
||||
"AUDIO\\S2_CTG.MP3",
|
||||
"AUDIO\\S3_RTC.MP3",
|
||||
"AUDIO\\S5_LRQ.MP3",
|
||||
"AUDIO\\S4_BDBA.MP3",
|
||||
"AUDIO\\S4_BDBB.MP3",
|
||||
"AUDIO\\S2_CTG2.MP3",
|
||||
"AUDIO\\S4_BDBD.MP3",
|
||||
"AUDIO\\S5_LRQB.MP3",
|
||||
"AUDIO\\S5_LRQC.MP3",
|
||||
"AUDIO\\A1_SSO.WAV",
|
||||
"AUDIO\\A2_PP.WAV",
|
||||
"AUDIO\\A3_SS.WAV",
|
||||
"AUDIO\\A4_PDR.WAV",
|
||||
"AUDIO\\A5_K2FT.WAV",
|
||||
"AUDIO\\K1_KBO.MP3",
|
||||
"AUDIO\\K2_GIS.MP3",
|
||||
"AUDIO\\K3_DS.MP3",
|
||||
"AUDIO\\K4_SHI.MP3",
|
||||
"AUDIO\\K5_SD.MP3",
|
||||
"AUDIO\\R0_PDR2.MP3",
|
||||
"AUDIO\\R1_SW.MP3",
|
||||
"AUDIO\\R2_AP.MP3",
|
||||
"AUDIO\\R3_ED.MP3",
|
||||
"AUDIO\\R4_GF.MP3",
|
||||
"AUDIO\\R5_PB.MP3",
|
||||
"AUDIO\\R6_MM.MP3",
|
||||
"AUDIO\\D1_STOG.MP3",
|
||||
"AUDIO\\D2_KK.MP3",
|
||||
"AUDIO\\D3_ADO.MP3",
|
||||
"AUDIO\\D5_ES.MP3",
|
||||
"AUDIO\\D7_MLD.MP3",
|
||||
"AUDIO\\D4_GTA.MP3",
|
||||
"AUDIO\\D4_GTA2.MP3",
|
||||
"AUDIO\\D6_STS.MP3",
|
||||
"AUDIO\\A6_BAIT.WAV",
|
||||
"AUDIO\\A7_ETG.WAV",
|
||||
"AUDIO\\A8_PS.WAV",
|
||||
"AUDIO\\A9_ASD.WAV",
|
||||
"AUDIO\\K4_SHI2.MP3",
|
||||
"AUDIO\\C1_TEX.MP3",
|
||||
"AUDIO\\EL_PH1.MP3",
|
||||
"AUDIO\\EL_PH2.MP3",
|
||||
"AUDIO\\EL_PH3.MP3",
|
||||
"AUDIO\\EL_PH4.MP3",
|
||||
"AUDIO\\YD_PH1.MP3",
|
||||
"AUDIO\\YD_PH2.MP3",
|
||||
"AUDIO\\YD_PH3.MP3",
|
||||
"AUDIO\\YD_PH4.MP3",
|
||||
"AUDIO\\HD_PH1.MP3",
|
||||
"AUDIO\\HD_PH2.MP3",
|
||||
"AUDIO\\HD_PH3.MP3",
|
||||
"AUDIO\\HD_PH4.MP3",
|
||||
"AUDIO\\HD_PH5.MP3",
|
||||
"AUDIO\\MT_PH1.MP3",
|
||||
"AUDIO\\MT_PH2.MP3",
|
||||
"AUDIO\\MT_PH3.MP3",
|
||||
"AUDIO\\MT_PH4.MP3",
|
||||
"AUDIO\\MISCOM.WAV",
|
||||
"AUDIO\\END.MP3",
|
||||
"AUDIO\\lib_a1.WAV",
|
||||
"AUDIO\\lib_a2.WAV",
|
||||
"AUDIO\\lib_a.WAV",
|
||||
"AUDIO\\lib_b.WAV",
|
||||
"AUDIO\\lib_c.WAV",
|
||||
"AUDIO\\lib_d.WAV",
|
||||
"AUDIO\\l2_a.WAV",
|
||||
"AUDIO\\j4t_1.WAV",
|
||||
"AUDIO\\j4t_2.WAV",
|
||||
"AUDIO\\j4t_3.WAV",
|
||||
"AUDIO\\j4t_4.WAV",
|
||||
"AUDIO\\j4_a.WAV",
|
||||
"AUDIO\\j4_b.WAV",
|
||||
"AUDIO\\j4_c.WAV",
|
||||
"AUDIO\\j4_d.WAV",
|
||||
"AUDIO\\j4_e.WAV",
|
||||
"AUDIO\\j4_f.WAV",
|
||||
"AUDIO\\j6_1.WAV",
|
||||
"AUDIO\\j6_a.WAV",
|
||||
"AUDIO\\j6_b.WAV",
|
||||
"AUDIO\\j6_c.WAV",
|
||||
"AUDIO\\j6_d.WAV",
|
||||
"AUDIO\\t4_a.WAV",
|
||||
"AUDIO\\s1_a.WAV",
|
||||
"AUDIO\\s1_a1.WAV",
|
||||
"AUDIO\\s1_b.WAV",
|
||||
"AUDIO\\s1_c.WAV",
|
||||
"AUDIO\\s1_c1.WAV",
|
||||
"AUDIO\\s1_d.WAV",
|
||||
"AUDIO\\s1_e.WAV",
|
||||
"AUDIO\\s1_f.WAV",
|
||||
"AUDIO\\s1_g.WAV",
|
||||
"AUDIO\\s1_h.WAV",
|
||||
"AUDIO\\s1_i.WAV",
|
||||
"AUDIO\\s1_j.WAV",
|
||||
"AUDIO\\s1_k.WAV",
|
||||
"AUDIO\\s1_l.WAV",
|
||||
"AUDIO\\s3_a.WAV",
|
||||
"AUDIO\\s3_b.WAV",
|
||||
"AUDIO\\el3_a.WAV",
|
||||
"AUDIO\\mf1_a.WAV",
|
||||
"AUDIO\\mf2_a.WAV",
|
||||
"AUDIO\\mf3_a.WAV",
|
||||
"AUDIO\\mf3_b.WAV",
|
||||
"AUDIO\\mf3_b1.WAV",
|
||||
"AUDIO\\mf3_c.WAV",
|
||||
"AUDIO\\mf4_a.WAV",
|
||||
"AUDIO\\mf4_b.WAV",
|
||||
"AUDIO\\mf4_c.WAV",
|
||||
"AUDIO\\a1_a.WAV",
|
||||
"AUDIO\\a3_a.WAV",
|
||||
"AUDIO\\a5_a.WAV",
|
||||
"AUDIO\\a4_a.WAV",
|
||||
"AUDIO\\a4_b.WAV",
|
||||
"AUDIO\\a4_c.WAV",
|
||||
"AUDIO\\a4_d.WAV",
|
||||
"AUDIO\\k1_a.WAV",
|
||||
"AUDIO\\k3_a.WAV",
|
||||
"AUDIO\\r1_a.WAV",
|
||||
"AUDIO\\r2_a.WAV",
|
||||
"AUDIO\\r2_b.WAV",
|
||||
"AUDIO\\r2_c.WAV",
|
||||
"AUDIO\\r2_d.WAV",
|
||||
"AUDIO\\r2_e.WAV",
|
||||
"AUDIO\\r2_f.WAV",
|
||||
"AUDIO\\r2_g.WAV",
|
||||
"AUDIO\\r2_h.WAV",
|
||||
"AUDIO\\r5_a.WAV",
|
||||
"AUDIO\\r6_a.WAV",
|
||||
"AUDIO\\r6_a1.WAV",
|
||||
"AUDIO\\r6_b.WAV",
|
||||
"AUDIO\\lo2_a.WAV",
|
||||
"AUDIO\\lo6_a.WAV",
|
||||
"AUDIO\\yd2_a.WAV",
|
||||
"AUDIO\\yd2_b.WAV",
|
||||
"AUDIO\\yd2_c.WAV",
|
||||
"AUDIO\\yd2_c1.WAV",
|
||||
"AUDIO\\yd2_d.WAV",
|
||||
"AUDIO\\yd2_e.WAV",
|
||||
"AUDIO\\yd2_f.WAV",
|
||||
"AUDIO\\yd2_g.WAV",
|
||||
"AUDIO\\yd2_h.WAV",
|
||||
"AUDIO\\yd2_ass.WAV",
|
||||
"AUDIO\\yd2_ok.WAV",
|
||||
"AUDIO\\h5_a.WAV",
|
||||
"AUDIO\\h5_b.WAV",
|
||||
"AUDIO\\h5_c.WAV",
|
||||
"AUDIO\\ammu_a.WAV",
|
||||
"AUDIO\\ammu_b.WAV",
|
||||
"AUDIO\\ammu_c.WAV",
|
||||
"AUDIO\\door_1.WAV",
|
||||
"AUDIO\\door_2.WAV",
|
||||
"AUDIO\\door_3.WAV",
|
||||
"AUDIO\\door_4.WAV",
|
||||
"AUDIO\\door_5.WAV",
|
||||
"AUDIO\\door_6.WAV",
|
||||
"AUDIO\\t3_a.WAV",
|
||||
"AUDIO\\t3_b.WAV",
|
||||
"AUDIO\\t3_c.WAV",
|
||||
"AUDIO\\k1_b.WAV",
|
||||
"AUDIO\\cat1.WAV"
|
||||
};
|
@ -35,6 +35,7 @@ public:
|
||||
|
||||
static bool GetIsPaused() { return m_UserPause || m_CodePause; }
|
||||
static bool GetIsUserPaused() { return m_UserPause; }
|
||||
static bool GetIsCodePaused() { return m_CodePause; }
|
||||
static void SetCodePause(bool pause) { m_CodePause = pause; }
|
||||
|
||||
static void Initialise(void);
|
||||
|
@ -180,6 +180,7 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con
|
||||
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
||||
#define min(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#define ABS(a) (((a) < 0) ? (-a) : (a))
|
||||
#define norm(value, min, max) (((value) < (min)) ? 0 : (((value) > (max)) ? 1 : (((value) - (min)) / ((max) - (min)))))
|
||||
|
||||
|
||||
#define STRINGIFY(x) #x
|
||||
|
@ -93,6 +93,7 @@ enum Config {
|
||||
# define RANDOMSPLASH
|
||||
#elif defined GTA_PC
|
||||
# define GTA3_1_1_PATCH
|
||||
//# define GTA3_STEAM_PATCH
|
||||
# ifdef GTA_PS2_STUFF
|
||||
//# define USE_PS2_RAND // this is unsafe until we have the game reversed
|
||||
# define RANDOMSPLASH // use random splash as on PS2
|
||||
@ -114,6 +115,7 @@ enum Config {
|
||||
// not in any game
|
||||
# define NASTY_GAME // nasty game for all languages
|
||||
# define NO_MOVIES // disable intro videos
|
||||
# define NO_CDCHECK
|
||||
# define CHATTYSPLASH // print what the game is loading
|
||||
#endif
|
||||
|
||||
|
BIN
src/skel/win/gta3.ico
Normal file
BIN
src/skel/win/gta3.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Loading…
Reference in New Issue
Block a user