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
+17 -11
View File
@@ -412,7 +412,7 @@ BOOLEAN LoadExternalGameplayData(STR directoryName)
// CHRISL: // CHRISL:
strcpy(fileName, directoryName); strcpy(fileName, directoryName);
strcat(fileName, LOADBEARINGEQUIPMENTFILENAME); strcat(fileName, LOADBEARINGEQUIPMENTFILENAME);
SGP_THROW_IFFALSE(ReadInlbeStats(fileName),LOADBEARINGEQUIPMENTFILENAME); SGP_THROW_IFFALSE(ReadInLBEStats(fileName),LOADBEARINGEQUIPMENTFILENAME);
// CHRISL: // CHRISL:
LBEPocketType.clear(); LBEPocketType.clear();
@@ -420,15 +420,6 @@ BOOLEAN LoadExternalGameplayData(STR directoryName)
strcat(fileName, LBEPOCKETFILENAME); strcat(fileName, LBEPOCKETFILENAME);
SGP_THROW_IFFALSE(ReadInLBEPocketStats(fileName,FALSE),LBEPOCKETFILENAME); SGP_THROW_IFFALSE(ReadInLBEPocketStats(fileName,FALSE),LBEPOCKETFILENAME);
// THE_BOB : added for pocket popup definitions
LBEPocketPopup.clear();
strcpy(fileName, directoryName);
strcat(fileName, LBEPOCKETPOPUPFILENAME);
SGP_THROW_IFFALSE(ReadInLBEPocketPopups(fileName),LBEPOCKETPOPUPFILENAME);
//CHRISL: Simple localization
// Same setup as what Madd used for items.xml
#ifndef ENGLISH #ifndef ENGLISH
AddLanguagePrefix(fileName); AddLanguagePrefix(fileName);
if ( FileExists(fileName) ) if ( FileExists(fileName) )
@@ -438,6 +429,12 @@ BOOLEAN LoadExternalGameplayData(STR directoryName)
} }
#endif #endif
// THE_BOB : added for pocket popup definitions
LBEPocketPopup.clear();
strcpy(fileName, directoryName);
strcat(fileName, LBEPOCKETPOPUPFILENAME);
SGP_THROW_IFFALSE(ReadInLBEPocketPopups(fileName),LBEPOCKETPOPUPFILENAME);
#ifdef JA2UB #ifdef JA2UB
strcpy(fileName, directoryName); strcpy(fileName, directoryName);
@@ -449,7 +446,16 @@ BOOLEAN LoadExternalGameplayData(STR directoryName)
// CHRISL: // CHRISL:
strcpy(fileName, directoryName); strcpy(fileName, directoryName);
strcat(fileName, MERCSTARTINGGEARFILENAME); strcat(fileName, MERCSTARTINGGEARFILENAME);
SGP_THROW_IFFALSE(ReadInMercStartingGearStats(fileName),MERCSTARTINGGEARFILENAME); SGP_THROW_IFFALSE(ReadInMercStartingGearStats(fileName, FALSE), MERCSTARTINGGEARFILENAME);
#ifndef ENGLISH
AddLanguagePrefix(fileName);
if ( FileExists(fileName) )
{
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
SGP_THROW_IFFALSE(ReadInMercStartingGearStats(fileName,TRUE), fileName);
}
#endif
#endif #endif
+3 -3
View File
@@ -283,8 +283,8 @@ extern BOOLEAN ReadInArmourStats(STR fileName);
extern BOOLEAN WriteArmourStats(); extern BOOLEAN WriteArmourStats();
// CHRISL: // CHRISL:
extern BOOLEAN ReadInlbeStats(STR fileName); extern BOOLEAN ReadInLBEStats(STR fileName);
extern BOOLEAN WritelbeEquipmentStats(); extern BOOLEAN WriteLBEEquipmentStats();
extern BOOLEAN ReadInLBEPocketStats(STR fileName, BOOLEAN localizedVersion); extern BOOLEAN ReadInLBEPocketStats(STR fileName, BOOLEAN localizedVersion);
extern BOOLEAN WriteLBEPocketEquipmentStats(); extern BOOLEAN WriteLBEPocketEquipmentStats();
@@ -292,7 +292,7 @@ extern BOOLEAN WriteLBEPocketEquipmentStats();
// THE_BOB : added for pocket popup definitions // THE_BOB : added for pocket popup definitions
extern BOOLEAN ReadInLBEPocketPopups(STR fileName); extern BOOLEAN ReadInLBEPocketPopups(STR fileName);
extern BOOLEAN ReadInMercStartingGearStats(STR fileName); extern BOOLEAN ReadInMercStartingGearStats(STR fileName, BOOLEAN localizedVersion);
extern BOOLEAN WriteMercStartingGearStats(); extern BOOLEAN WriteMercStartingGearStats();
extern BOOLEAN ReadInExplosiveStats(STR fileName); extern BOOLEAN ReadInExplosiveStats(STR fileName);
+2 -2
View File
@@ -206,7 +206,7 @@ lbeEndElementHandle(void *userData, const XML_Char *name)
BOOLEAN ReadInlbeStats(STR fileName) BOOLEAN ReadInLBEStats(STR fileName)
{ {
HWFILE hFile; HWFILE hFile;
UINT32 uiBytesRead; UINT32 uiBytesRead;
@@ -268,7 +268,7 @@ BOOLEAN ReadInlbeStats(STR fileName)
return( TRUE ); return( TRUE );
} }
BOOLEAN WritelbeEquipmentStats() BOOLEAN WriteLBEEquipmentStats()
{ {
//DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"writelbestats"); //DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"writelbestats");
HWFILE hFile; HWFILE hFile;
+38 -23
View File
@@ -26,6 +26,8 @@ struct
} }
typedef MercStartingGearParseData; typedef MercStartingGearParseData;
BOOLEAN localizedTextOnly_MercStartingGear;
static void XMLCALL static void XMLCALL
MercStartingGearStartElementHandle(void *userData, const XML_Char *name, const XML_Char **atts) 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; MercStartingGearParseData * pData = (MercStartingGearParseData *)userData;
if( (pData->currentDepth <= pData->maxReadDepth) && if( (pData->currentDepth <= pData->maxReadDepth) && (strlen(pData->szCharData) < MAX_CHAR_DATA_LENGTH))
(strlen(pData->szCharData) < MAX_CHAR_DATA_LENGTH) {
){
strncat(pData->szCharData,str,__min((unsigned int)len,MAX_CHAR_DATA_LENGTH-strlen(pData->szCharData))); 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. // Write the gear into memory.
if(pData->curIndex < pData->maxArraySize && pData->curGears < NUM_MERCSTARTINGGEAR_KITS) if(pData->curIndex < pData->maxArraySize && pData->curGears < NUM_MERCSTARTINGGEAR_KITS)
{ {
pData->curArray[pData->curIndex][pData->curGears] = pData->curMercStartingGear; //write the armour into the table if (!localizedTextOnly_MercStartingGear)
//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->curArray[pData->curIndex][pData->curGears] = pData->curMercStartingGear; //write the armour into the table
pData->curMercStartingGear.iStatus[i] = 0;
pData->curMercStartingGear.iDrop[i] = 0; //CHRISL: after writing the gearkit, we need to clear gear data so it won't inadvertantly be reused
pData->curMercStartingGear.iNumber[i] = 0; 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(); else
for(UINT32 i = 0; i < lbesize; ++i)
{ {
pData->curMercStartingGear.lbe[i] = 0; wcscpy(gMercProfileGear[pData->curIndex][pData->curGears].mGearKitName, pData->curMercStartingGear.mGearKitName);
pData->curMercStartingGear.lStatus[i] = 0;
} }
} }
@@ -567,7 +576,7 @@ MercStartingGearEndElementHandle(void *userData, const XML_Char *name)
BOOLEAN ReadInMercStartingGearStats(STR fileName) BOOLEAN ReadInMercStartingGearStats(STR fileName, BOOLEAN localizedVersion)
{ {
HWFILE hFile; HWFILE hFile;
UINT32 uiBytesRead; UINT32 uiBytesRead;
@@ -577,6 +586,8 @@ BOOLEAN ReadInMercStartingGearStats(STR fileName)
MercStartingGearParseData pData; MercStartingGearParseData pData;
localizedTextOnly_MercStartingGear = localizedVersion;
DebugMsg(TOPIC_JA2, DBG_LEVEL_3, "Loading MercStartingGear.xml" ); DebugMsg(TOPIC_JA2, DBG_LEVEL_3, "Loading MercStartingGear.xml" );
// Open gMercProfileGear file // Open gMercProfileGear file
@@ -611,13 +622,17 @@ BOOLEAN ReadInMercStartingGearStats(STR fileName)
XML_SetUserData(parser, &pData); 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)) if(!XML_Parse(parser, lpcBuffer, uiFSize, TRUE))
{ {
CHAR8 errorBuf[511]; CHAR8 errorBuf[511];
+2 -2
View File
@@ -6461,10 +6461,10 @@ STR16 New113HAMMessage[] =
// HEADROCK HAM 5: Text dealing exclusively with Item Transformations. // HEADROCK HAM 5: Text dealing exclusively with Item Transformations.
STR16 gzTransformationMessage[] = STR16 gzTransformationMessage[] =
{ {
L"Keine Umwandlung verfügbar", L"Keine Umgestaltungsmöglichkeit vorhanden",
L"%s wurde in mehrere Teile umgewandelt.", L"%s wurde in mehrere Teile umgewandelt.",
L"%s wurde in mehrere Teile umgewandelt. Prüfen Sie %s's Inventar für die daraus entstandenen Teile.", L"%s wurde in mehrere Teile umgewandelt. Prüfen Sie %s's Inventar für die daraus entstandenen Teile.",
L"Aufgrund des fehlendes Platzes im Inventar nach der Umwandlung wurden einige von %s's Gegenstände auf den Boden abgelegt.", L"Aufgrund des fehlendes Platzes im Inventar nach der Umgestaltung wurden einige von %s's Gegenstände auf den Boden abgelegt.",
L"%s wurde in mehrere Teile umgewandelt. Durch den Platzmangel im Inventar hat %s ein paar Gegenstände auf den Boden abgelegt.", L"%s wurde in mehrere Teile umgewandelt. Durch den Platzmangel im Inventar hat %s ein paar Gegenstände auf den Boden abgelegt.",
L"Möchsten Sie alle %d Gegenstände im Stapel umwandeln? (Um nur einen Gegenstand umzuwandeln, entferenen Sie diesen zuerst vom Stapel)", L"Möchsten Sie alle %d Gegenstände im Stapel umwandeln? (Um nur einen Gegenstand umzuwandeln, entferenen Sie diesen zuerst vom Stapel)",
// 6 - 10 // 6 - 10