Belt   ICharacter::unequipBelt()
		{
			Belt returnBelt = belt;

			updateStats(-belt.getStrength(), -belt.getDexterity(), -belt.getConstitution(), -belt.getIntelligence(), -belt.getWisdom(), -belt.getCharisma());

			this -> belt = Belt(0, 0, 0, 0, 0, 0);

			return returnBelt;
		}
void CInventoryItem::Load(LPCSTR section) 
{
	CHitImmunity::LoadImmunities	(pSettings->r_string(section,"immunities_sect"),pSettings);

	ISpatial*			self				=	smart_cast<ISpatial*> (this);
	if (self)			self->spatial.type	|=	STYPE_VISIBLEFORAI;	

	m_section_id._set	( section );
	m_name				= CStringTable().translate( pSettings->r_string(section, "inv_name") );
	m_nameShort			= CStringTable().translate( pSettings->r_string(section, "inv_name_short") );

	m_weight			= pSettings->r_float(section, "inv_weight");
	R_ASSERT			(m_weight>=0.f);

	m_cost				= pSettings->r_u32(section, "cost");
	u32 sl  			= pSettings->r_u32(section,"slot");
	m_ItemCurrPlace.base_slot_id = (sl==-1)?0:(sl+1);

	m_Description = CStringTable().translate( pSettings->r_string(section, "description") );

	m_flags.set(Fbelt,			READ_IF_EXISTS(pSettings, r_bool, section, "belt",		FALSE));
	m_can_trade = READ_IF_EXISTS(pSettings, r_bool, section, "can_take",	TRUE);
	m_flags.set(FCanTake,		m_can_trade);
	m_flags.set(FCanTrade,		READ_IF_EXISTS(pSettings, r_bool, section, "can_trade",	TRUE));
	m_flags.set(FIsQuestItem,	READ_IF_EXISTS(pSettings, r_bool, section, "quest_item",FALSE));


	if ( BaseSlot() != NO_ACTIVE_SLOT || Belt())
	{
		m_flags.set					(FRuckDefault, pSettings->r_bool(section, "default_to_ruck" ));
		m_flags.set					(FAllowSprint, pSettings->r_bool(section, "sprint_allowed" ));
		m_fControlInertionFactor	= pSettings->r_float(section,"control_inertion_factor");
	}
	m_icon_name					= READ_IF_EXISTS(pSettings, r_string,section,"icon_name",		NULL);

}