MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / UpdateAddonsVisibility

Method UpdateAddonsVisibility

ogsr_engine/xrGame/Weapon.cpp:1507–1642  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1505}
1506
1507void CWeapon::UpdateAddonsVisibility()
1508{
1509 auto pWeaponVisual = smart_cast<IKinematics*>(Visual());
1510 VERIFY(pWeaponVisual);
1511
1512 UpdateHUDAddonsVisibility();
1513
1514 ///////////////////////////////////////////////////////////////////
1515 u16 bone_id{};
1516
1517 for (const auto& sbone : m_sWpn_scope_bones)
1518 {
1519 bone_id = pWeaponVisual->LL_BoneID(sbone);
1520
1521 if (bone_id != BI_NONE)
1522 {
1523 if (ScopeAttachable())
1524 {
1525 if (IsScopeAttached())
1526 {
1527 if (!pWeaponVisual->LL_GetBoneVisible(bone_id))
1528 pWeaponVisual->LL_SetBoneVisible(bone_id, TRUE, TRUE);
1529 }
1530 else
1531 {
1532 if (pWeaponVisual->LL_GetBoneVisible(bone_id))
1533 pWeaponVisual->LL_SetBoneVisible(bone_id, FALSE, TRUE);
1534 }
1535 }
1536
1537 if (m_eScopeStatus == CSE_ALifeItemWeapon::eAddonDisabled && bone_id != BI_NONE && pWeaponVisual->LL_GetBoneVisible(bone_id))
1538 pWeaponVisual->LL_SetBoneVisible(bone_id, FALSE, TRUE);
1539 else if (m_eScopeStatus == CSE_ALifeItemWeapon::eAddonPermanent && bone_id != BI_NONE && !pWeaponVisual->LL_GetBoneVisible(bone_id))
1540 pWeaponVisual->LL_SetBoneVisible(bone_id, TRUE, TRUE);
1541 }
1542 }
1543 ///////////////////////////////////////////////////////////////////
1544
1545 bone_id = pWeaponVisual->LL_BoneID(m_sWpn_silencer_bone);
1546
1547 if (bone_id != BI_NONE)
1548 {
1549 if (SilencerAttachable())
1550 {
1551 if (IsSilencerAttached())
1552 {
1553 if (!pWeaponVisual->LL_GetBoneVisible(bone_id))
1554 pWeaponVisual->LL_SetBoneVisible(bone_id, TRUE, TRUE);
1555 }
1556 else
1557 {
1558 if (pWeaponVisual->LL_GetBoneVisible(bone_id))
1559 pWeaponVisual->LL_SetBoneVisible(bone_id, FALSE, TRUE);
1560 }
1561 }
1562 }
1563
1564 if (m_eSilencerStatus == CSE_ALifeItemWeapon::eAddonDisabled && bone_id != BI_NONE && pWeaponVisual->LL_GetBoneVisible(bone_id))

Callers 1

Calls 8

VisualFunction · 0.85
callbackClass · 0.85
LL_BoneIDMethod · 0.80
LL_GetBoneVisibleMethod · 0.80
LL_SetBoneVisibleMethod · 0.80
sizeMethod · 0.45
CalculateBonesMethod · 0.45

Tested by

no test coverage detected