// static virtual
void LLTracker::drawHUDArrow()
{
	if (!gSavedSettings.getBOOL("RenderTrackerBeacon")) return;

	if (gViewerWindow->getProgressView()->getVisible()) return;

	static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
	
	/* tracking autopilot destination has been disabled 
	   -- 2004.01.09, Leviathan
	// Draw dot for autopilot target
	if (gAgent.getAutoPilot())
	{
		instance()->drawMarker( gAgent.getAutoPilotTargetGlobal(), map_track_color );
		return;
	}
	*/
	switch (getTrackingStatus())
	{ 
	case TRACKING_AVATAR:
		// Tracked avatar
		if(LLAvatarTracker::instance().haveTrackingInfo())
		{
			instance()->drawMarker( LLAvatarTracker::instance().getGlobalPos(), map_track_color );
		} 
		break;

	case TRACKING_LANDMARK:
		instance()->drawMarker( getTrackedPositionGlobal(), map_track_color );
		break;

	case TRACKING_LOCATION:
		// HACK -- try to keep the location just above the terrain
#if 0
		// UNHACKED by CRO - keep location where the location is
		instance()->mTrackedPositionGlobal.mdV[VZ] = 
				0.9f * instance()->mTrackedPositionGlobal.mdV[VZ]
				+ 0.1f * (LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f);
#endif
		instance()->mTrackedPositionGlobal.mdV[VZ] = llclamp((F32)instance()->mTrackedPositionGlobal.mdV[VZ], LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f, (F32)instance()->getTrackedPositionGlobal().mdV[VZ]);
		instance()->drawMarker( getTrackedPositionGlobal(), map_track_color );
		break;

	default:
		break;
	}
}
Esempio n. 2
0
// static virtual
void LLTracker::drawHUDArrow()
{
	/* tracking autopilot destination has been disabled 
	   -- 2004.01.09, Leviathan
	// Draw dot for autopilot target
	if (gAgent.getAutoPilot())
	{
		instance()->drawMarker( gAgent.getAutoPilotTargetGlobal(), gTrackColor );
		return;
	}
	*/
	switch (getTrackingStatus())
	{ 
	case TRACKING_AVATAR:
		// Tracked avatar
		if(LLAvatarTracker::instance().haveTrackingInfo())
		{
			instance()->drawMarker( LLAvatarTracker::instance().getGlobalPos(), gTrackColor );
		} 
		break;

	case TRACKING_LANDMARK:
		instance()->drawMarker( getTrackedPositionGlobal(), gTrackColor );
		break;

	case TRACKING_LOCATION:
		// HACK -- try to keep the location just above the terrain
#if 0
		// UNHACKED by CRO - keep location where the location is
		instance()->mTrackedPositionGlobal.mdV[VZ] = 
				0.9f * instance()->mTrackedPositionGlobal.mdV[VZ]
				+ 0.1f * (LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f);
#endif
		instance()->mTrackedPositionGlobal.mdV[VZ] = llclamp((F32)instance()->mTrackedPositionGlobal.mdV[VZ], LLWorld::getInstance()->resolveLandHeightGlobal(getTrackedPositionGlobal()) + 1.5f, (F32)instance()->getTrackedPositionGlobal().mdV[VZ]);
		instance()->drawMarker( getTrackedPositionGlobal(), gTrackColor );
		break;

	default:
		break;
	}
}