DIFF

ItemBaseType.c

typedef ItemBase Inventory_Base;
typedef ItemBaseType Inventory_BaseType;

class ItemBaseType : InventoryItemType
{
	bool m_CanShowQuantity;
	bool m_HasQuantityBar;
	bool m_CanBeDigged;
	bool m_HideSelectionsBySlot;
	bool m_CanBeSplit;

	//! Quantity config
	int	m_Count;
	int	m_VarQuantityInit;
	int	m_VarQuantityMin;
	int	m_VarQuantityMax;	
	
	//! Cleanness config
	int	m_CleannessInit;
	int	m_CleannessMin;
	int	m_CleannessMax;

	int m_LiquidContainerMask;

	int m_VarLiquidTypeInit;

	int m_QuickBarBonus;

	//! Attachment locking
	int	m_LockType;
	ref TIntArray m_CompatibleLocks;
	
	int m_ItemBehaviour; // -1 = not specified; 0 = heavy item; 1= onehanded item; 2 = twohanded item

	float m_VarStackMax;
	
	//! Wetness config
	float m_VarWetInit;
	float m_VarWetMin;
	float m_VarWetMax;

	float m_HeatIsolation;
	
	float m_ItemModelLength
	float m_ItemAttachOffset; // Offset length for when the item is attached e.g. to weapon
	
	float m_TemperaturePerQuantityWeight;
	
	string m_LockSoundSet;

	ref TIntFloatMap m_SoakingIncrements;
	ref TIntFloatMap m_DryingIncrements;
	ref TStringArray m_HeadHidingSelections;

	void ItemBaseType()
	{
		m_CanBeSplit = false;
		if (ConfigIsExisting("canBeSplit"))
			m_CanBeSplit = ConfigGetBool("canBeSplit");

		m_Count = ConfigGetInt("count");
	
		m_VarQuantityInit = ConfigGetInt("varQuantityInit");
		m_VarQuantityMin = ConfigGetInt("varQuantityMin");
		m_VarQuantityMax = ConfigGetInt("varQuantityMax");

		m_VarStackMax = ConfigGetFloat("varStackMax");
		
		m_VarWetInit = ConfigGetFloat("varWetInit");
		m_VarWetMin = ConfigGetFloat("varWetMin");
		m_VarWetMax = ConfigGetFloat("varWetMax");
		
		m_CanShowQuantity = ConfigGetBool("quantityShow");
		m_HasQuantityBar = ConfigGetBool("quantityBar");

		m_CleannessInit = ConfigGetInt("varCleannessInit");
		m_CleannessMin = ConfigGetInt("varCleannessMin");
		m_CleannessMax = ConfigGetInt("varCleannessMax");
		
		m_LiquidContainerMask = ConfigGetInt("liquidContainerType");			
	
		m_VarLiquidTypeInit = ConfigGetInt("varLiquidTypeInit");
		
		m_HeatIsolation = ConfigGetFloat("heatIsolation");
		
		m_ItemModelLength = 0.0;
		if (ConfigIsExisting("itemModelLength"))
			m_ItemModelLength = ConfigGetFloat("itemModelLength");
		
		m_ItemAttachOffset = 0.0;
		if (ConfigIsExisting("itemAttachOffset"))
			m_ItemAttachOffset = ConfigGetFloat("itemAttachOffset");
		
		m_CanBeDigged = ConfigGetBool("canBeDigged");

		m_LockType 			= ConfigGetInt("lockType");
		m_LockSoundSet 		= ConfigGetString("lockSoundSet");
		m_CompatibleLocks 	= new array<int>();
		ConfigGetIntArray("compatibleLocks", m_CompatibleLocks);
		
		m_ItemBehaviour = -1;
		if (ConfigIsExisting("itemBehaviour"))
			m_ItemBehaviour = ConfigGetInt("itemBehaviour");

		if (ConfigIsExisting("headSelectionsToHide"))
		{
			m_HeadHidingSelections = new TStringArray();
			ConfigGetTextArray("headSelectionsToHide", m_HeadHidingSelections);
		}
		
		m_HideSelectionsBySlot = false;
		if (ConfigIsExisting("hideSelectionsByinventorySlot"))
			m_HideSelectionsBySlot = ConfigGetBool("hideSelectionsByinventorySlot");
		
		m_QuickBarBonus = Math.Max(0, ConfigGetInt("quickBarBonus"));
		
		m_TemperaturePerQuantityWeight = 1.0;
		if (ConfigIsExisting("temperaturePerQuantityWeight"))
			m_TemperaturePerQuantityWeight = ConfigGetFloat("temperaturePerQuantityWeight");
		
		{
			string paramPath;
			m_SoakingIncrements = new TIntFloatMap();
			paramPath = string.Format("CfgVehicles %1 EnvironmentWetnessIncrements Soaking %2", GetName(), "parentWithLiquid");
			m_SoakingIncrements.Set(EEnvironmentSoakingCategories.PARENT_LIQUID, g_Game.ConfigGetFloat(paramPath));
			paramPath = string.Format("CfgVehicles %1 EnvironmentWetnessIncrements Soaking %2", GetName(), "wetParent");
			m_SoakingIncrements.Set(EEnvironmentSoakingCategories.PARENT_WET, g_Game.ConfigGetFloat(paramPath));

			m_DryingIncrements = new TIntFloatMap();
			paramPath = string.Format("CfgVehicles %1 EnvironmentWetnessIncrements Drying %2", GetName(), "player");
			m_DryingIncrements.Set(EEnvironmentDryingCategories.PLAYER, g_Game.ConfigGetFloat(paramPath));
			paramPath = string.Format("CfgVehicles %1 EnvironmentWetnessIncrements Drying %2", GetName(), "ground");
			m_DryingIncrements.Set(EEnvironmentDryingCategories.GROUND, g_Game.ConfigGetFloat(paramPath));
			paramPath = string.Format("CfgVehicles %1 EnvironmentWetnessIncrements Drying %2", GetName(), "playerHeatSource");
			m_DryingIncrements.Set(EEnvironmentDryingCategories.PLAYER_HEATSOURCE, g_Game.ConfigGetFloat(paramPath));
			paramPath = string.Format("CfgVehicles %1 EnvironmentWetnessIncrements Drying %2", GetName(), "groundHeatSource");
			m_DryingIncrements.Set(EEnvironmentDryingCategories.GROUND_HEATSOURCE, g_Game.ConfigGetFloat(paramPath));
		}
	}
};