示例#1
0
//-----------------------------------------------------------
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;
		}
	}
}
示例#2
0
//------------------------------------------------------------------------
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;
}