From 977f71596af05b67510f50830b7f8d6d70cfaf0d Mon Sep 17 00:00:00 2001 From: Wanne Date: Mon, 17 Feb 2014 08:54:50 +0000 Subject: [PATCH] - Added support for language specific *.AttachmentSlots.xml files git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6935 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Init.cpp | 11 ++++++++++- Tactical/XML_AttachmentSlots.cpp | 18 +++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Init.cpp b/Init.cpp index 3bd512b2..e2f6fc59 100644 --- a/Init.cpp +++ b/Init.cpp @@ -470,7 +470,16 @@ BOOLEAN LoadExternalGameplayData(STR directoryName) //WarmSteel - Attachment slots related xml's strcpy(fileName, directoryName); strcat(fileName, ATTACHMENTSLOTSFILENAME); - SGP_THROW_IFFALSE(ReadInAttachmentSlotsStats(fileName),ATTACHMENTSLOTSFILENAME); + SGP_THROW_IFFALSE(ReadInAttachmentSlotsStats(fileName, FALSE),ATTACHMENTSLOTSFILENAME); + + #ifndef ENGLISH + AddLanguagePrefix(fileName); + if ( FileExists(fileName) ) + { + DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName)); + SGP_THROW_IFFALSE(ReadInAttachmentSlotsStats(fileName,TRUE), fileName); + } + #endif // Flugente: created separate gun and item choices for different soldier classes - read in different xmls strcpy(fileName, directoryName); diff --git a/Tactical/XML_AttachmentSlots.cpp b/Tactical/XML_AttachmentSlots.cpp index 776198c9..b7b7a90c 100644 --- a/Tactical/XML_AttachmentSlots.cpp +++ b/Tactical/XML_AttachmentSlots.cpp @@ -27,6 +27,8 @@ struct } typedef attachmentslotParseData; +BOOLEAN localizedTextOnly_AttachmentSlots; + static void XMLCALL attachmentslotStartElementHandle(void *userData, const XML_Char *name, const XML_Char **atts) { @@ -102,8 +104,16 @@ attachmentslotEndElementHandle(void *userData, const XML_Char *name) pData->curElement = ELEMENT_LIST; if(pData->curAttachmentSlot.uiSlotIndex < pData->maxArraySize) - { - pData->curArray[pData->curAttachmentSlot.uiSlotIndex] = pData->curAttachmentSlot; //write the attachmentinfo into the table + { + if (!localizedTextOnly_AttachmentSlots) + { + pData->curArray[pData->curAttachmentSlot.uiSlotIndex] = pData->curAttachmentSlot; //write the attachmentinfo into the table + } + else + { + wcscpy(AttachmentSlots[pData->curAttachmentSlot.uiSlotIndex].szSlotName, pData->curAttachmentSlot.szSlotName); + } + //Save the highest known index up till now. if(LAST_SLOT_INDEX < pData->curAttachmentSlot.uiSlotIndex){ LAST_SLOT_INDEX = (UINT16) pData->curAttachmentSlot.uiSlotIndex; @@ -164,7 +174,7 @@ attachmentslotEndElementHandle(void *userData, const XML_Char *name) } -BOOLEAN ReadInAttachmentSlotsStats(STR fileName) +BOOLEAN ReadInAttachmentSlotsStats(STR fileName, BOOLEAN localizedVersion) { HWFILE hFile; UINT32 uiBytesRead; @@ -174,6 +184,8 @@ BOOLEAN ReadInAttachmentSlotsStats(STR fileName) attachmentslotParseData pData; + localizedTextOnly_AttachmentSlots = localizedVersion; + DebugMsg(TOPIC_JA2, DBG_LEVEL_3, "Loading AttachmentSlots.xml" ); // Open attachmentinfo file