From 033ae4a191e5b4a888e58bdb55124cec5bb66dd7 Mon Sep 17 00:00:00 2001 From: Shadooow Date: Thu, 24 Mar 2022 05:40:46 +0000 Subject: [PATCH] Added two new tags into Items.xml, and which prevents specific items to appear without these systems enabled. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9343 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Laptop/AimMembers.cpp | 21 +++++++++++++++++---- Tactical/Item Types.h | 2 ++ Tactical/Items.cpp | 6 ++++++ Tactical/ShopKeeper Interface.cpp | 7 +++++++ Utils/XML_Items.cpp | 17 +++++++++++++++-- 5 files changed, 47 insertions(+), 6 deletions(-) diff --git a/Laptop/AimMembers.cpp b/Laptop/AimMembers.cpp index c97c2f73..57f04092 100644 --- a/Laptop/AimMembers.cpp +++ b/Laptop/AimMembers.cpp @@ -5638,15 +5638,28 @@ void EnableWeaponKitSelectionButtons() { if ( !(gMercProfiles[gbCurrentSoldier].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) || gGameExternalOptions.fGearKitsAlwaysAvailable ) { + bool bShow; + INT16 usItem; for(int i=0; iobject.usItem].usLimitedToSystem & 1) && !UsingFoodSystem()) || ((Item[iter->object.usItem].usLimitedToSystem & 2) && !gGameExternalOptions.fDisease)) + { + ++iter; + continue; + } + bool increment = true; if (ItemIsSpecial(*iter) == false) { StoreObjectsInNextFreeDealerInvSlot( &(*iter), gpTempDealersInventory, gbSelectedArmsDealerID ); diff --git a/Utils/XML_Items.cpp b/Utils/XML_Items.cpp index f6238df5..93c369c4 100644 --- a/Utils/XML_Items.cpp +++ b/Utils/XML_Items.cpp @@ -309,7 +309,9 @@ itemStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at strcmp(name, "RobotUtilitySkillGrant") == 0 || strcmp(name, "ProvidesRobotCamo") == 0 || strcmp(name, "ProvidesRobotNightVision") == 0 || - strcmp(name, "ProvidesRobotLaserBonus") == 0 + strcmp(name, "ProvidesRobotLaserBonus") == 0 || + strcmp(name, "FoodSystemExclusive") == 0 || + strcmp(name, "DiseaseSystemExclusive") == 0 ) { pData->curElement = ELEMENT_PROPERTY; @@ -1614,8 +1616,19 @@ itemEndElementHandle(void *userData, const XML_Char *name) pData->curElement == ELEMENT; pData->curItem.fProvidesRobotLaserBonus = (BOOLEAN)atol(pData->szCharData); } + else if (strcmp(name, "FoodSystemExclusive") == 0) + { + pData->curElement == ELEMENT; + if (atol(pData->szCharData)) + pData->curItem.usLimitedToSystem|= 1; + } + else if (strcmp(name, "DiseaseSystemExclusive") == 0) + { + pData->curElement == ELEMENT; + if (atol(pData->szCharData)) + pData->curItem.usLimitedToSystem|= 2; + } - --pData->maxReadDepth; }