mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
New option NWSS enables New Weapon Sound System.
Increased SOUND_MAX_CHANNELS to 128 for NWSS to work correctly. New tag in AmmoStrings.xml: <NWSSCaliber> New tags in Weapons.xml: <ubNWSSCase>, <ubNWSSLast>, <szNWSSSound> Fixed some warnings. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8780 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -942,6 +942,7 @@ void LoadGameExternalOptions()
|
||||
gGameExternalOptions.fEnableSSA = iniReader.ReadBoolean("Sound Settings", "ENABLE_SSA", false, false);
|
||||
gGameExternalOptions.fDebugSSA = iniReader.ReadBoolean("Sound Settings", "DEBUG_SSA", false, false);
|
||||
gGameExternalOptions.ubVolumeSSA = iniReader.ReadInteger("Sound Settings", "VOLUME_SSA", 50, 1, 127);
|
||||
gGameExternalOptions.fNWSS = iniReader.ReadBoolean("Sound Settings", "NWSS", false, false);
|
||||
|
||||
//################# Tactical Interface Settings #################
|
||||
|
||||
|
||||
@@ -473,6 +473,7 @@ typedef struct
|
||||
BOOLEAN fEnableSSA;
|
||||
BOOLEAN fDebugSSA;
|
||||
UINT8 ubVolumeSSA;
|
||||
BOOLEAN fNWSS;
|
||||
|
||||
// WDS - Option to turn off stealing
|
||||
BOOLEAN fStealingDisabled;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#define SOUND_MAX_CACHED 128 // number of cache slots
|
||||
|
||||
// sevenfm: increased number of channels
|
||||
#define SOUND_MAX_CHANNELS 64
|
||||
#define SOUND_MAX_CHANNELS 128
|
||||
|
||||
// default memory limit
|
||||
#define SOUND_DEFAULT_MEMORY (8048*1024)
|
||||
|
||||
+674
-207
File diff suppressed because it is too large
Load Diff
@@ -397,6 +397,11 @@ typedef struct
|
||||
// This vector stores the possible configurations
|
||||
std::vector<UINT8> barrelconfigurations;
|
||||
|
||||
// sevenfm: NWSS data
|
||||
UINT8 ubNWSSCase;
|
||||
UINT8 ubNWSSLast;
|
||||
CHAR8 szNWSSSound[MAX_WEAPON_NAME_LENGTH + 1];
|
||||
|
||||
} WEAPONTYPE;
|
||||
typedef struct
|
||||
{
|
||||
|
||||
@@ -45,7 +45,8 @@ ammoStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at
|
||||
}
|
||||
else if(pData->curElement == ELEMENT &&
|
||||
(strcmp(name, "AmmoCaliber") == 0 ||
|
||||
strcmp(name, "BRCaliber") == 0 ))
|
||||
strcmp(name, "BRCaliber") == 0 ||
|
||||
strcmp(name, "NWSSCaliber") == 0))
|
||||
{
|
||||
pData->curElement = ELEMENT_PROPERTY;
|
||||
|
||||
@@ -71,13 +72,11 @@ ammoCharacterDataHandle(void *userData, const XML_Char *str, int len)
|
||||
}
|
||||
}
|
||||
|
||||
extern char NWSSCaliber[MAXITEMS][255];
|
||||
|
||||
static void XMLCALL
|
||||
ammoEndElementHandle(void *userData, const XML_Char *name)
|
||||
{
|
||||
#if 0
|
||||
char temp;
|
||||
#endif
|
||||
ammoParseData * pData = (ammoParseData *)userData;
|
||||
|
||||
if(pData->currentDepth <= pData->maxReadDepth) //we're at the end of an element that we've been reading
|
||||
@@ -96,16 +95,8 @@ ammoEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
if(pData->curIndex < pData->maxArraySize)
|
||||
{
|
||||
#if 0
|
||||
for(int i=0;i<min((int)strlen(pData->szCharData),MAX_CHAR_DATA_LENGTH);i++)
|
||||
{
|
||||
temp = pData->szCharData[i];
|
||||
AmmoCaliber[pData->curIndex][i] = temp;
|
||||
}
|
||||
#else
|
||||
MultiByteToWideChar( CP_UTF8, 0, pData->szCharData, -1, AmmoCaliber[pData->curIndex], sizeof(AmmoCaliber[0])/sizeof(AmmoCaliber[0][0]) );
|
||||
AmmoCaliber[pData->curIndex][sizeof(AmmoCaliber[0])/sizeof(AmmoCaliber[0][0]) - 1] = '\0';
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
@@ -114,20 +105,27 @@ ammoEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
if(pData->curIndex < pData->maxArraySize)
|
||||
{
|
||||
#if 0
|
||||
for(int i=0;i<min((int)strlen(pData->szCharData),MAX_CHAR_DATA_LENGTH);i++)
|
||||
{
|
||||
temp = pData->szCharData[i];
|
||||
BobbyRayAmmoCaliber[pData->curIndex][i] = temp;
|
||||
}
|
||||
#else
|
||||
MultiByteToWideChar( CP_UTF8, 0, pData->szCharData, -1, BobbyRayAmmoCaliber[pData->curIndex], sizeof(BobbyRayAmmoCaliber[0])/sizeof(BobbyRayAmmoCaliber[0][0]) );
|
||||
BobbyRayAmmoCaliber[pData->curIndex][sizeof(BobbyRayAmmoCaliber[0])/sizeof(BobbyRayAmmoCaliber[0][0]) - 1] = '\0';
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (strcmp(name, "NWSSCaliber") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT_LIST;
|
||||
if (pData->curIndex < pData->maxArraySize)
|
||||
{
|
||||
if (strlen(pData->szCharData) < 255)
|
||||
{
|
||||
strcpy(NWSSCaliber[pData->curIndex], pData->szCharData);
|
||||
}
|
||||
else
|
||||
{
|
||||
strncpy(NWSSCaliber[pData->curIndex], pData->szCharData, 254);
|
||||
NWSSCaliber[pData->curIndex][254] = '\0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pData->maxReadDepth--;
|
||||
}
|
||||
@@ -135,9 +133,6 @@ ammoEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->currentDepth--;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
BOOLEAN ReadInAmmoStats(STR fileName)
|
||||
{
|
||||
HWFILE hFile;
|
||||
|
||||
@@ -486,6 +486,19 @@ UINT32 PlayJA2StreamingSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UIN
|
||||
return(SoundPlayStreamedFile(szSoundEffects[usNum], &spParms));
|
||||
}
|
||||
|
||||
UINT32 PlayWeaponSound(STR8 szFileName, UINT32 ubVolume, UINT32 uiPan)
|
||||
{
|
||||
SOUNDPARMS spParms;
|
||||
|
||||
memset(&spParms, 0xff, sizeof(SOUNDPARMS));
|
||||
spParms.uiSpeed = RATE_11025;
|
||||
spParms.uiVolume = CalculateSoundEffectsVolume(ubVolume);
|
||||
spParms.uiLoop = 1;
|
||||
spParms.uiPan = uiPan;
|
||||
spParms.uiPriority = GROUP_PLAYER;
|
||||
|
||||
return(SoundPlay((STR)szFileName, &spParms));
|
||||
}
|
||||
|
||||
UINT32 PlayJA2SampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan )
|
||||
{
|
||||
|
||||
@@ -417,6 +417,7 @@ UINT32 PlayJA2Sample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoo
|
||||
UINT32 PlayJA2StreamingSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
||||
|
||||
UINT32 PlayJA2SampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
||||
UINT32 PlayWeaponSound(STR8 szFileName, UINT32 ubVolume, UINT32 uiPan);
|
||||
UINT32 PlayJA2StreamingSampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan, SOUND_STOP_CALLBACK EndsCallback );
|
||||
|
||||
UINT32 PlayJA2Ambient( UINT32 usNum, UINT32 ubVolume, UINT32 ubLoops);
|
||||
|
||||
Reference in New Issue
Block a user