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:
Sevenfm
2020-04-05 23:58:07 +00:00
parent 5b1ea7e795
commit 306eca7dfc
8 changed files with 715 additions and 232 deletions
+19 -24
View File
@@ -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;