Public feed #721816

Anonymous

public text v1 · immutable
Raw Edit
·published 2007-10-01 15:41 UTC
rendered paste body
if(local_info.WeaponHasHighDrop())
		return GetAimVector(output);

	if(!got_dir_dist) GetDistanceToTarget();

	*output = direction_to_target;
	return TRUE;
}

float TargetInformation::GetDistanceToTarget(void)
{
	assert(player && good);

	if(got_dir_dist) return distance_to_target;

	D3DXVECTOR3 dir_vector;

	D3DXVec3Subtract(&dir_vector, &base_aim, local_info.GetAimPos());

	distance_to_target = D3DXVec3Length(&dir_vector);
	D3DXVec3Normalize(&direction_to_target, &dir_vector);

	got_dir_dist = TRUE;
	return distance_to_target;
}

BOOL TargetInformation::IsGoodDistance(void)
{

	assert(player && good);

	CObject_Soldier* local_soldier = local_info.GetSoldier();
	CTemplate_GenericFireArm* weapon_template =
		(CTemplate_GenericFireArm*) local_info.GetWeapon()->object_template;

	CTComponent_Fire* fire = (CTComponent_Fire*) weapon_template->GetComponent(COMPONENT_FIRE_ID);

	if(!fire) return FALSE;

	if(!got_dir_dist) GetDistanceToTarget();

	float max_bullet_dist = D3DXVec3Dot(local_info.GetMovementSpeed(), local_info.GetAimDir())
					+ weapon_template->fire_velocity * local_info.GetAmmoTemplate()->timeToLive_1;

	if(distance_to_target > max_bullet_dist )
		return FALSE;