diff --git a/Init.cpp b/Init.cpp index 82b605f6..67adae7f 100644 --- a/Init.cpp +++ b/Init.cpp @@ -412,7 +412,7 @@ BOOLEAN LoadExternalGameplayData(STR directoryName) // CHRISL: strcpy(fileName, directoryName); strcat(fileName, LOADBEARINGEQUIPMENTFILENAME); - SGP_THROW_IFFALSE(ReadInlbeStats(fileName),LOADBEARINGEQUIPMENTFILENAME); + SGP_THROW_IFFALSE(ReadInLBEStats(fileName),LOADBEARINGEQUIPMENTFILENAME); // CHRISL: LBEPocketType.clear(); @@ -420,15 +420,6 @@ BOOLEAN LoadExternalGameplayData(STR directoryName) strcat(fileName, 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 AddLanguagePrefix(fileName); if ( FileExists(fileName) ) @@ -438,6 +429,12 @@ BOOLEAN LoadExternalGameplayData(STR directoryName) } #endif + // THE_BOB : added for pocket popup definitions + LBEPocketPopup.clear(); + strcpy(fileName, directoryName); + strcat(fileName, LBEPOCKETPOPUPFILENAME); + SGP_THROW_IFFALSE(ReadInLBEPocketPopups(fileName),LBEPOCKETPOPUPFILENAME); + #ifdef JA2UB strcpy(fileName, directoryName); @@ -449,7 +446,16 @@ BOOLEAN LoadExternalGameplayData(STR directoryName) // CHRISL: strcpy(fileName, directoryName); 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 diff --git a/Tactical/XML.h b/Tactical/XML.h index b8e30b43..b998b199 100644 --- a/Tactical/XML.h +++ b/Tactical/XML.h @@ -283,8 +283,8 @@ extern BOOLEAN ReadInArmourStats(STR fileName); extern BOOLEAN WriteArmourStats(); // CHRISL: -extern BOOLEAN ReadInlbeStats(STR fileName); -extern BOOLEAN WritelbeEquipmentStats(); +extern BOOLEAN ReadInLBEStats(STR fileName); +extern BOOLEAN WriteLBEEquipmentStats(); extern BOOLEAN ReadInLBEPocketStats(STR fileName, BOOLEAN localizedVersion); extern BOOLEAN WriteLBEPocketEquipmentStats(); @@ -292,7 +292,7 @@ extern BOOLEAN WriteLBEPocketEquipmentStats(); // THE_BOB : added for pocket popup definitions extern BOOLEAN ReadInLBEPocketPopups(STR fileName); -extern BOOLEAN ReadInMercStartingGearStats(STR fileName); +extern BOOLEAN ReadInMercStartingGearStats(STR fileName, BOOLEAN localizedVersion); extern BOOLEAN WriteMercStartingGearStats(); extern BOOLEAN ReadInExplosiveStats(STR fileName); diff --git a/Tactical/XML_LoadBearingEquipment.cpp b/Tactical/XML_LoadBearingEquipment.cpp index 75872978..c2f6a96e 100644 --- a/Tactical/XML_LoadBearingEquipment.cpp +++ b/Tactical/XML_LoadBearingEquipment.cpp @@ -206,7 +206,7 @@ lbeEndElementHandle(void *userData, const XML_Char *name) -BOOLEAN ReadInlbeStats(STR fileName) +BOOLEAN ReadInLBEStats(STR fileName) { HWFILE hFile; UINT32 uiBytesRead; @@ -268,7 +268,7 @@ BOOLEAN ReadInlbeStats(STR fileName) return( TRUE ); } -BOOLEAN WritelbeEquipmentStats() +BOOLEAN WriteLBEEquipmentStats() { //DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"writelbestats"); HWFILE hFile; diff --git a/Tactical/XML_MercStartingGear.cpp b/Tactical/XML_MercStartingGear.cpp index 54f0978b..e7c6c9c3 100644 --- a/Tactical/XML_MercStartingGear.cpp +++ b/Tactical/XML_MercStartingGear.cpp @@ -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