From 1b8d8982260b41c022d11dcd2fca01bfb83cba60 Mon Sep 17 00:00:00 2001 From: Flugente Date: Fri, 8 May 2015 19:08:54 +0000 Subject: [PATCH] Disease protection items are no longer required to be worn in a faceslot. The point is that the player should acquire special gear, not inconvenience him to switch gear whenever a merc goes on assignment. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7852 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Interface Enhanced.cpp | 12 ++++++------ Tactical/Item Types.h | 4 ++-- Tactical/Items.cpp | 2 +- Tactical/Soldier Control.cpp | 11 ++++------- Utils/XML_Items.cpp | 8 ++++---- 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/Tactical/Interface Enhanced.cpp b/Tactical/Interface Enhanced.cpp index 9d903851..a71eaa81 100644 --- a/Tactical/Interface Enhanced.cpp +++ b/Tactical/Interface Enhanced.cpp @@ -2702,14 +2702,14 @@ void InternalInitEDBTooltipRegion( OBJECTTYPE * gpItemDescObject, UINT32 guiCurr //////////////////// DISEASE if ( gGameExternalOptions.fDisease ) { - if ( HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_FACE ) ) + if ( HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_1 ) ) { swprintf( pStr, L"%s%s", szUDBGenSecondaryStatsTooltipText[38], szUDBGenSecondaryStatsExplanationsTooltipText[38] ); SetRegionFastHelpText( &(gUDBFasthelpRegions[iFirstDataRegion + cnt]), pStr ); MSYS_EnableRegion( &gUDBFasthelpRegions[iFirstDataRegion + cnt] ); cnt++; } - else if ( HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_HAND ) ) + else if ( HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_2 ) ) { swprintf( pStr, L"%s%s", szUDBGenSecondaryStatsTooltipText[39], szUDBGenSecondaryStatsExplanationsTooltipText[39] ); SetRegionFastHelpText( &(gUDBFasthelpRegions[iFirstDataRegion + cnt]), pStr ); @@ -6282,14 +6282,14 @@ void DrawSecondaryStats( OBJECTTYPE * gpItemDescObject ) //////////////////// DISEASE if ( gGameExternalOptions.fDisease ) { - if ( (HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_FACE ) && !fComparisonMode) || - (fComparisonMode && HasItemFlag( gpComparedItemDescObject->usItem, DISEASEPROTECTION_FACE )) ) + if ( (HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_1 ) && !fComparisonMode) || + (fComparisonMode && HasItemFlag( gpComparedItemDescObject->usItem, DISEASEPROTECTION_1 )) ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoSecondaryIcon, 37, gItemDescGenSecondaryRegions[cnt].sLeft + sOffsetX, gItemDescGenSecondaryRegions[cnt].sTop + sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL ); ++cnt; } - else if ( (HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_HAND ) && !fComparisonMode) || - (fComparisonMode && HasItemFlag( gpComparedItemDescObject->usItem, DISEASEPROTECTION_HAND )) ) + else if ( (HasItemFlag( gpItemDescObject->usItem, DISEASEPROTECTION_2 ) && !fComparisonMode) || + (fComparisonMode && HasItemFlag( gpComparedItemDescObject->usItem, DISEASEPROTECTION_2 )) ) { BltVideoObjectFromIndex( guiSAVEBUFFER, guiItemInfoSecondaryIcon, 37, gItemDescGenSecondaryRegions[cnt].sLeft + sOffsetX, gItemDescGenSecondaryRegions[cnt].sTop + sOffsetY, VO_BLT_SRCTRANSPARENCY, NULL ); ++cnt; diff --git a/Tactical/Item Types.h b/Tactical/Item Types.h index 46af64c9..f4822e85 100644 --- a/Tactical/Item Types.h +++ b/Tactical/Item Types.h @@ -766,8 +766,8 @@ extern OBJECTTYPE gTempObject; #define POWER_PACK 0x08000000 //134217728 // item continously powers an item it is attached to #define ROOF_COLLAPSE_ITEM 0x10000000 //268435456 // this item is required in the collapsing of roof tiles. It is used internally and should never be seen by the player -#define DISEASEPROTECTION_FACE 0x20000000 //536870912 // this item protects us from getting diseases by human contact if worn in a face slot -#define DISEASEPROTECTION_HAND 0x40000000 //1073741824 // this item protects us from getting diseases by human contact if kept in inventory +#define DISEASEPROTECTION_1 0x20000000 //536870912 // this item protects us from getting diseases by human contact if kept in inventory +#define DISEASEPROTECTION_2 0x40000000 //1073741824 // this item protects us from getting diseases by human contact if kept in inventory /*#define PLAYER_NET_4_LVL_4 0x80000000 //2147483648*/ // ---------------------------------------------------------------- diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 0b3296c6..19d66cdd 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -12233,7 +12233,7 @@ INT8 FindDisarmKit( SOLDIERTYPE * pSoldier ) if (pSoldier->inv[bLoop].exists() == true) { if ( ( ( Item[pSoldier->inv[bLoop].usItem].DisarmModifier * pSoldier->inv[bLoop][0]->data.objectStatus ) / 100 ) > bonus ) { - bonus = Item[pSoldier->inv[bLoop].usItem].DisarmModifier * pSoldier->inv[bLoop][0]->data.objectStatus / 100;; + bonus = Item[pSoldier->inv[bLoop].usItem].DisarmModifier * pSoldier->inv[bLoop][0]->data.objectStatus / 100; FoundKit = bLoop; } } diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 00777cf1..ff97255c 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -18920,15 +18920,12 @@ FLOAT SOLDIERTYPE::GetDiseaseContactProtection( ) OBJECTTYPE* pObj = &(inv[bLoop]); if ( pObj && (*pObj)[0]->data.objectStatus >= USABLE ) - { - if ( (bLoop == HEAD1POS || bLoop == HEAD2POS) ) + { + if ( HasItemFlag( pObj->usItem, DISEASEPROTECTION_1 ) ) { - if ( HasItemFlag( pObj->usItem, DISEASEPROTECTION_FACE ) ) - { - bestfacegear = max( bestfacegear, (FLOAT)((*pObj)[0]->data.objectStatus / 100) ); - } + bestfacegear = max( bestfacegear, (FLOAT)((*pObj)[0]->data.objectStatus / 100) ); } - else if ( HasItemFlag( pObj->usItem, DISEASEPROTECTION_HAND ) ) + else if ( HasItemFlag( pObj->usItem, DISEASEPROTECTION_2 ) ) { bestprotectivegear = max( bestprotectivegear, (FLOAT)((*pObj)[0]->data.objectStatus / 100) ); } diff --git a/Utils/XML_Items.cpp b/Utils/XML_Items.cpp index 84440b1e..b2972350 100644 --- a/Utils/XML_Items.cpp +++ b/Utils/XML_Items.cpp @@ -1466,7 +1466,7 @@ itemEndElementHandle(void *userData, const XML_Char *name) BOOLEAN val = (BOOLEAN)atol( pData->szCharData ); if ( val ) - pData->curItem.usItemFlag |= DISEASEPROTECTION_FACE; + pData->curItem.usItemFlag |= DISEASEPROTECTION_1; } else if ( strcmp( name, "diseaseprotectionhand" ) == 0 ) { @@ -1474,7 +1474,7 @@ itemEndElementHandle(void *userData, const XML_Char *name) BOOLEAN val = (BOOLEAN)atol( pData->szCharData ); if ( val ) - pData->curItem.usItemFlag |= DISEASEPROTECTION_HAND; + pData->curItem.usItemFlag |= DISEASEPROTECTION_2; } --pData->maxReadDepth; @@ -2109,9 +2109,9 @@ BOOLEAN WriteItemStats() FilePrintf(hFile, "\t\t%d\r\n", Item[cnt].sBackpackWeightModifier); FilePrintf(hFile, "\t\t%d\r\n", Item[cnt].fAllowClimbing); - if ( Item[cnt].usItemFlag & DISEASEPROTECTION_FACE ) + if ( Item[cnt].usItemFlag & DISEASEPROTECTION_1 ) FilePrintf( hFile, "\t\t%d\r\n", 1 ); - if ( Item[cnt].usItemFlag & DISEASEPROTECTION_HAND ) + if ( Item[cnt].usItemFlag & DISEASEPROTECTION_2 ) FilePrintf( hFile, "\t\t%d\r\n", 1 ); FilePrintf(hFile,"\t\r\n");