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); }