New Feature: a private military company allows hiring of advanced militia. For more info, see http://www.ja-galaxy-forum.com/ubbthreads.php/topics/335279#Post335279

Does not break savegame compatibility.

Requires GameDir revision >= r2130.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7457 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2014-08-30 17:34:25 +00:00
parent 5fc358f70c
commit e00897b91b
40 changed files with 1613 additions and 67 deletions
+15 -7
View File
@@ -179,7 +179,9 @@ facilitytypeStartElementHandle(void *userData, const XML_Char *name, const XML_C
strcmp(name, "ubMilitiaTrainersAllowed") == 0 ||
strcmp(name, "ubMobileMilitiaTrainersAllowed") == 0 ||
strcmp(name, "usMilitiaTraining") == 0 ||
strcmp(name, "usMobileMilitiaTraining") == 0 ))
strcmp(name, "usMobileMilitiaTraining") == 0 ||
strcmp( name, "pmcentrypoint" ) == 0 ))
{
pData->curElement = FACILITYTYPE_ELEMENT;
@@ -426,8 +428,10 @@ facilitytypeEndElementHandle(void *userData, const XML_Char *name)
gFacilityTypes[pData->curIndex].usMilitiaTraining = pData->curFacilityTypeData.usMilitiaTraining;
gFacilityTypes[pData->curIndex].usMobileMilitiaTraining = pData->curFacilityTypeData.usMobileMilitiaTraining;
gFacilityTypes[pData->curIndex].usFacilityFlags = pData->curFacilityTypeData.usFacilityFlags;
// Set assignment-specific data
for (UINT16 cnt = 0; cnt < NUM_FACILITY_ASSIGNMENTS; cnt++)
for (UINT16 cnt = 0; cnt < NUM_FACILITY_ASSIGNMENTS; ++cnt)
{
// Performance and limits
gFacilityTypes[pData->curIndex].AssignmentData[cnt].usPerformance = pData->curFacilityTypeData.AssignmentData[cnt].usPerformance;
@@ -472,7 +476,7 @@ facilitytypeEndElementHandle(void *userData, const XML_Char *name)
gFacilityTypes[pData->curIndex].AssignmentData[cnt].ubMinimumLoyaltyHere = pData->curFacilityTypeData.AssignmentData[cnt].ubMinimumLoyaltyHere;
// Set risks associated with this assignment
for (UINT16 cntB = 0; cntB < NUM_RISKS; cntB++)
for (UINT16 cntB = 0; cntB < NUM_RISKS; ++cntB)
{
gFacilityTypes[pData->curIndex].AssignmentData[cnt].Risk[cntB].usChance = pData->curFacilityTypeData.AssignmentData[cnt].Risk[cntB].usChance;
gFacilityTypes[pData->curIndex].AssignmentData[cnt].Risk[cntB].bBaseEffect = pData->curFacilityTypeData.AssignmentData[cnt].Risk[cntB].bBaseEffect;
@@ -485,7 +489,7 @@ facilitytypeEndElementHandle(void *userData, const XML_Char *name)
wcscpy(gFacilityTypes[pData->curIndex].szFacilityName, pData->curFacilityTypeData.szFacilityName);
wcscpy(gFacilityTypes[pData->curIndex].szFacilityShortName, pData->curFacilityTypeData.szFacilityShortName);
for (UINT16 cnt = 0; cnt < NUM_FACILITY_ASSIGNMENTS; cnt++)
for (UINT16 cnt = 0; cnt < NUM_FACILITY_ASSIGNMENTS; ++cnt)
{
wcscpy(gFacilityTypes[pData->curIndex].AssignmentData[cnt].szTooltipText, pData->curFacilityTypeData.AssignmentData[cnt].szTooltipText);
}
@@ -539,25 +543,29 @@ facilitytypeEndElementHandle(void *userData, const XML_Char *name)
pData->curElement = FACILITYTYPE_TYPE;
pData->curFacilityTypeData.ubMilitiaTrainersAllowed = (UINT8) atol(pData->szCharData);
}
else if(strcmp(name, "ubMobileMilitiaTrainersAllowed") == 0 )
{
pData->curElement = FACILITYTYPE_TYPE;
pData->curFacilityTypeData.ubMobileMilitiaTrainersAllowed = (UINT8) atol(pData->szCharData);
}
else if(strcmp(name, "usMilitiaTraining") == 0 )
{
pData->curElement = FACILITYTYPE_TYPE;
pData->curFacilityTypeData.usMilitiaTraining = (UINT8) atol(pData->szCharData);
}
else if(strcmp(name, "usMobileMilitiaTraining") == 0 )
{
pData->curElement = FACILITYTYPE_TYPE;
pData->curFacilityTypeData.usMobileMilitiaTraining = (UINT8) atol(pData->szCharData);
}
else if ( strcmp( name, "pmcentrypoint" ) == 0 )
{
pData->curElement = FACILITYTYPE_TYPE;
if ( (UINT8)atol( pData->szCharData ) )
pData->curFacilityTypeData.usFacilityFlags |= FACILITYTYPE_PMCENTRYPOINT;
}
///////////////////////////////////////////////////////
// Assignments