mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +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.fEnableSSA = iniReader.ReadBoolean("Sound Settings", "ENABLE_SSA", false, false);
|
||||||
gGameExternalOptions.fDebugSSA = iniReader.ReadBoolean("Sound Settings", "DEBUG_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.ubVolumeSSA = iniReader.ReadInteger("Sound Settings", "VOLUME_SSA", 50, 1, 127);
|
||||||
|
gGameExternalOptions.fNWSS = iniReader.ReadBoolean("Sound Settings", "NWSS", false, false);
|
||||||
|
|
||||||
//################# Tactical Interface Settings #################
|
//################# Tactical Interface Settings #################
|
||||||
|
|
||||||
|
|||||||
@@ -473,6 +473,7 @@ typedef struct
|
|||||||
BOOLEAN fEnableSSA;
|
BOOLEAN fEnableSSA;
|
||||||
BOOLEAN fDebugSSA;
|
BOOLEAN fDebugSSA;
|
||||||
UINT8 ubVolumeSSA;
|
UINT8 ubVolumeSSA;
|
||||||
|
BOOLEAN fNWSS;
|
||||||
|
|
||||||
// WDS - Option to turn off stealing
|
// WDS - Option to turn off stealing
|
||||||
BOOLEAN fStealingDisabled;
|
BOOLEAN fStealingDisabled;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
#define SOUND_MAX_CACHED 128 // number of cache slots
|
#define SOUND_MAX_CACHED 128 // number of cache slots
|
||||||
|
|
||||||
// sevenfm: increased number of channels
|
// sevenfm: increased number of channels
|
||||||
#define SOUND_MAX_CHANNELS 64
|
#define SOUND_MAX_CHANNELS 128
|
||||||
|
|
||||||
// default memory limit
|
// default memory limit
|
||||||
#define SOUND_DEFAULT_MEMORY (8048*1024)
|
#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
|
// This vector stores the possible configurations
|
||||||
std::vector<UINT8> barrelconfigurations;
|
std::vector<UINT8> barrelconfigurations;
|
||||||
|
|
||||||
|
// sevenfm: NWSS data
|
||||||
|
UINT8 ubNWSSCase;
|
||||||
|
UINT8 ubNWSSLast;
|
||||||
|
CHAR8 szNWSSSound[MAX_WEAPON_NAME_LENGTH + 1];
|
||||||
|
|
||||||
} WEAPONTYPE;
|
} WEAPONTYPE;
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -45,7 +45,8 @@ ammoStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at
|
|||||||
}
|
}
|
||||||
else if(pData->curElement == ELEMENT &&
|
else if(pData->curElement == ELEMENT &&
|
||||||
(strcmp(name, "AmmoCaliber") == 0 ||
|
(strcmp(name, "AmmoCaliber") == 0 ||
|
||||||
strcmp(name, "BRCaliber") == 0 ))
|
strcmp(name, "BRCaliber") == 0 ||
|
||||||
|
strcmp(name, "NWSSCaliber") == 0))
|
||||||
{
|
{
|
||||||
pData->curElement = ELEMENT_PROPERTY;
|
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
|
static void XMLCALL
|
||||||
ammoEndElementHandle(void *userData, const XML_Char *name)
|
ammoEndElementHandle(void *userData, const XML_Char *name)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
char temp;
|
|
||||||
#endif
|
|
||||||
ammoParseData * pData = (ammoParseData *)userData;
|
ammoParseData * pData = (ammoParseData *)userData;
|
||||||
|
|
||||||
if(pData->currentDepth <= pData->maxReadDepth) //we're at the end of an element that we've been reading
|
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;
|
pData->curElement = ELEMENT;
|
||||||
if(pData->curIndex < pData->maxArraySize)
|
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]) );
|
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';
|
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;
|
pData->curElement = ELEMENT;
|
||||||
if(pData->curIndex < pData->maxArraySize)
|
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]) );
|
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';
|
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--;
|
pData->maxReadDepth--;
|
||||||
}
|
}
|
||||||
@@ -135,9 +133,6 @@ ammoEndElementHandle(void *userData, const XML_Char *name)
|
|||||||
pData->currentDepth--;
|
pData->currentDepth--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN ReadInAmmoStats(STR fileName)
|
BOOLEAN ReadInAmmoStats(STR fileName)
|
||||||
{
|
{
|
||||||
HWFILE hFile;
|
HWFILE hFile;
|
||||||
|
|||||||
@@ -486,6 +486,19 @@ UINT32 PlayJA2StreamingSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UIN
|
|||||||
return(SoundPlayStreamedFile(szSoundEffects[usNum], &spParms));
|
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 )
|
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 PlayJA2StreamingSample( UINT32 usNum, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan );
|
||||||
|
|
||||||
UINT32 PlayJA2SampleFromFile( STR8 szFileName, 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 PlayJA2StreamingSampleFromFile( STR8 szFileName, UINT32 usRate, UINT32 ubVolume, UINT32 ubLoops, UINT32 uiPan, SOUND_STOP_CALLBACK EndsCallback );
|
||||||
|
|
||||||
UINT32 PlayJA2Ambient( UINT32 usNum, UINT32 ubVolume, UINT32 ubLoops);
|
UINT32 PlayJA2Ambient( UINT32 usNum, UINT32 ubVolume, UINT32 ubLoops);
|
||||||
|
|||||||
Reference in New Issue
Block a user