From ad95d97bf7ea5eefcc4a0489a6b50787f31c428c Mon Sep 17 00:00:00 2001 From: Flugente Date: Fri, 25 Mar 2016 12:10:38 +0000 Subject: [PATCH] If the number of prisoners in a prison exceeds that prison's (from Map\FacilityTypes.xml), interrogation performance is lowered by up to 33%. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8122 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Strategic/Assignments.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Strategic/Assignments.cpp b/Strategic/Assignments.cpp index e843d538..dec0bd61 100644 --- a/Strategic/Assignments.cpp +++ b/Strategic/Assignments.cpp @@ -2973,6 +2973,15 @@ UINT32 CalculateInterrogationValue(SOLDIERTYPE *pSoldier, UINT16 *pusMaxPts ) if (gFacilityTypes[cnt].AssignmentData[FAC_INTERROGATE_PRISONERS].usPrisonBaseLimit > 0) { performancemodifier = gFacilityTypes[cnt].AssignmentData[FAC_INTERROGATE_PRISONERS].usPerformance; + + // an overcrowded prison can lower our performance. This is to offer an incentive to use huge prisons + if ( *pusMaxPts > gFacilityTypes[cnt].AssignmentData[FAC_INTERROGATE_PRISONERS].usPrisonBaseLimit ) + { + FLOAT penalty = (FLOAT)((*pusMaxPts - gFacilityTypes[cnt].AssignmentData[FAC_INTERROGATE_PRISONERS].usPrisonBaseLimit)) / (FLOAT)(gFacilityTypes[cnt].AssignmentData[FAC_INTERROGATE_PRISONERS].usPrisonBaseLimit); + + performancemodifier *= max( 0.67f, 1.0f - penalty ); + } + break; } }