Simplified rework foodsystem allowed items

simplified the previous commit, now no more need for a tag
when checking IsItemLegal for Food System, ontop of checking for foodpoints, now also check if is drug
as a result, as previously, all eatable food will be excluded without food system, but now only if it isn't a drug at the same time
and no more tag to check for that in items.xml needed
This commit is contained in:
kitty624
2024-12-17 13:13:37 +01:00
parent 28a51e0e7b
commit 0bd932f20f
4 changed files with 7 additions and 18 deletions
+7 -9
View File
@@ -1271,14 +1271,13 @@ BOOLEAN ItemIsLegal( UINT16 usItemIndex, BOOLEAN fIgnoreCoolness )
if ( Item[usItemIndex].ubCoolness == 0 && !fIgnoreCoolness )
return FALSE;
// kitty: no food items if the food system is off
// whether the item is exclusive is defined by tag
// replaced previous system which used Item[usItemIndex].foodtype > 0 as criteria
// that also restricted dual use items (i.e. drugs that also have a foodtype, like coffee, etc.)
if (!gGameExternalOptions.fFoodSystem && ItemIsOnlyInFood(usItemIndex))
{
return FALSE;
// silversurfer: no food items if the food system is off
if (!UsingFoodSystem() && Item[usItemIndex].foodtype > 0)
{
// silversurfer: Only restrict food for now. Water can be used to replenish lost energy so it is useful even without the food system.
// kitty: and only if food isn't a drug at the same time, to make sure using those drugs without food system is possible
if (Food[Item[usItemIndex].foodtype].bFoodPoints > 0 && Item[usItemIndex].drugtype == 0 )
return FALSE;
}
// kitty: no disease items if the disease system is off
@@ -16130,4 +16129,3 @@ BOOLEAN ItemIsOnlyInDisease(UINT16 usItem) { return HasItemFlag2(usItem, ITEM_Di
BOOLEAN ItemProvidesRobotCamo(UINT16 usItem) { return HasItemFlag2(usItem, ITEM_fProvidesRobotCamo); }
BOOLEAN ItemProvidesRobotNightvision(UINT16 usItem) { return HasItemFlag2(usItem, ITEM_fProvidesRobotNightVision); }
BOOLEAN ItemProvidesRobotLaserBonus(UINT16 usItem) { return HasItemFlag2(usItem, ITEM_fProvidesRobotLaserBonus); }
BOOLEAN ItemIsOnlyInFood(UINT16 usItem) { return HasItemFlag2(usItem, ITEM_FoodSystemExclusive); }