Merged from revision: 6912

- Allow reading of language specific *.MercStartingGear.xml Kit names
- Fixed *.Pockets.xml not working
- Reworked a few German texts

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6913 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2014-02-13 12:57:01 +00:00
parent 11037729f0
commit e6ae03cee3
5 changed files with 62 additions and 41 deletions
+38 -23
View File
@@ -26,6 +26,8 @@ struct
}
typedef MercStartingGearParseData;
BOOLEAN localizedTextOnly_MercStartingGear;
static void XMLCALL
MercStartingGearStartElementHandle(void *userData, const XML_Char *name, const XML_Char **atts)
{
@@ -154,11 +156,10 @@ MercStartingGearCharacterDataHandle(void *userData, const XML_Char *str, int len
{
MercStartingGearParseData * pData = (MercStartingGearParseData *)userData;
if( (pData->currentDepth <= pData->maxReadDepth) &&
(strlen(pData->szCharData) < MAX_CHAR_DATA_LENGTH)
){
if( (pData->currentDepth <= pData->maxReadDepth) && (strlen(pData->szCharData) < MAX_CHAR_DATA_LENGTH))
{
strncat(pData->szCharData,str,__min((unsigned int)len,MAX_CHAR_DATA_LENGTH-strlen(pData->szCharData)));
}
}
}
@@ -206,24 +207,32 @@ MercStartingGearEndElementHandle(void *userData, const XML_Char *name)
// Write the gear into memory.
if(pData->curIndex < pData->maxArraySize && pData->curGears < NUM_MERCSTARTINGGEAR_KITS)
{
pData->curArray[pData->curIndex][pData->curGears] = pData->curMercStartingGear; //write the armour into the table
//CHRISL: after writing the gearkit, we need to clear gear data so it won't inadvertantly be reused
pData->curMercStartingGear.PriceModifier = 0;
pData->curMercStartingGear.AbsolutePrice = -1;
pData->curMercStartingGear.mGearKitName[0] = '\0';
UINT32 invsize = pData->curMercStartingGear.inv.size();
for(UINT32 i = 0; i < invsize; ++i)
if (!localizedTextOnly_MercStartingGear)
{
pData->curMercStartingGear.inv[i] = 0;
pData->curMercStartingGear.iStatus[i] = 0;
pData->curMercStartingGear.iDrop[i] = 0;
pData->curMercStartingGear.iNumber[i] = 0;
pData->curArray[pData->curIndex][pData->curGears] = pData->curMercStartingGear; //write the armour into the table
//CHRISL: after writing the gearkit, we need to clear gear data so it won't inadvertantly be reused
pData->curMercStartingGear.PriceModifier = 0;
pData->curMercStartingGear.AbsolutePrice = -1;
pData->curMercStartingGear.mGearKitName[0] = '\0';
UINT32 invsize = pData->curMercStartingGear.inv.size();
for(UINT32 i = 0; i < invsize; ++i)
{
pData->curMercStartingGear.inv[i] = 0;
pData->curMercStartingGear.iStatus[i] = 0;
pData->curMercStartingGear.iDrop[i] = 0;
pData->curMercStartingGear.iNumber[i] = 0;
}
UINT32 lbesize = pData->curMercStartingGear.lbe.size();
for(UINT32 i = 0; i < lbesize; ++i)
{
pData->curMercStartingGear.lbe[i] = 0;
pData->curMercStartingGear.lStatus[i] = 0;
}
}
UINT32 lbesize = pData->curMercStartingGear.lbe.size();
for(UINT32 i = 0; i < lbesize; ++i)
else
{
pData->curMercStartingGear.lbe[i] = 0;
pData->curMercStartingGear.lStatus[i] = 0;
wcscpy(gMercProfileGear[pData->curIndex][pData->curGears].mGearKitName, pData->curMercStartingGear.mGearKitName);
}
}
@@ -567,7 +576,7 @@ MercStartingGearEndElementHandle(void *userData, const XML_Char *name)
BOOLEAN ReadInMercStartingGearStats(STR fileName)
BOOLEAN ReadInMercStartingGearStats(STR fileName, BOOLEAN localizedVersion)
{
HWFILE hFile;
UINT32 uiBytesRead;
@@ -577,6 +586,8 @@ BOOLEAN ReadInMercStartingGearStats(STR fileName)
MercStartingGearParseData pData;
localizedTextOnly_MercStartingGear = localizedVersion;
DebugMsg(TOPIC_JA2, DBG_LEVEL_3, "Loading MercStartingGear.xml" );
// Open gMercProfileGear file
@@ -611,13 +622,17 @@ BOOLEAN ReadInMercStartingGearStats(STR fileName)
XML_SetUserData(parser, &pData);
for(int i=0; i<NUM_PROFILES; ++i)
if (!localizedTextOnly_MercStartingGear)
{
for(int i2=0; i2<NUM_MERCSTARTINGGEAR_KITS; ++i2)
for(int i=0; i<NUM_PROFILES; ++i)
{
gMercProfileGear[i][i2].clearInventory();
for(int i2=0; i2<NUM_MERCSTARTINGGEAR_KITS; ++i2)
{
gMercProfileGear[i][i2].clearInventory();
}
}
}
if(!XML_Parse(parser, lpcBuffer, uiFSize, TRUE))
{
CHAR8 errorBuf[511];