//----------------------------------------------------------- void CIronSight::ModifyParams(bool modify, bool modified /* = false */) { CWeaponSharedParams *pWSP = m_pWeapon->GetWeaponSharedParams(); assert(pWSP); const char *dataType = m_zoomParams->GetDataType(); //Require it's own data, separated from shared "pool" if(modify) { if(!m_useCustomParams) { m_zoomParams = 0; m_zoomParams = pWSP->CreateZoomParams(dataType); assert(m_zoomParams.get()); CacheSharedParamsPtr(); m_useCustomParams = true; } m_zoomParams->SetValid(false); } else { m_zoomParams->SetValid(true); if(m_useCustomParams && !modified) { //No modifications, release custom ones and use shared ones m_zoomParams = 0; m_zoomParams = pWSP->GetZoomSharedParams(dataType, m_zmIdx); CacheSharedParamsPtr(); m_useCustomParams = false; } } }
//------------------------------------------------------------------------ void CIronSight::Init(IWeapon *pWeapon, const struct IItemParamsNode *params, uint32 id) { m_pWeapon = static_cast<CWeapon *>(pWeapon); m_zmIdx = id; InitSharedParams(); CacheSharedParamsPtr(); ResetParams(params); }
void CMelee::Init(IWeapon *pWeapon, const struct IItemParamsNode *params, uint32 id) { m_pWeapon = static_cast<CWeapon *>(pWeapon); m_fmIdx = id; InitSharedParams(); CacheSharedParamsPtr(); if (params) { ResetParams(params); } m_attacking = false; m_attacked = false; m_delayTimer = 0.0f; m_durationTimer = 0.0f; m_ignoredEntity = 0; m_meleeScale = 1.0f; }