SarkBall
Class SarkBallHUDMutator

source: c:\runehov\SarkBall\Classes\SarkBallHUDMutator.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.Mutator
            |
            +--SarkBall.SarkBallHUDMutator
Direct Known Subclasses:None

class SarkBallHUDMutator
extends Engine.Mutator

//----------------------------------------------------------- // //-----------------------------------------------------------

Function Summary
 
simulated
RenderNames(Canvas Canvas)



Source Code


00001	//-----------------------------------------------------------
00002	//
00003	//-----------------------------------------------------------
00004	class SarkBallHUDMutator expands Mutator;
00005	
00006	
00007	replication
00008	{
00009	    reliable if ( Role > ROLE_None )
00010	        RenderNames;
00011	}
00012	
00013	simulated event PostRender( canvas Canvas )
00014	{
00015	    RenderNames(Canvas);
00016	
00017	    if( nextHUDMutator != None )
00018	        nextHUDMutator.PostRender( Canvas );
00019	}
00020	
00021	simulated function RenderNames(canvas Canvas)
00022	{
00023	    local RunePlayer P;
00024	    local int SX,SY;
00025	    local float scale, dist;
00026	    local vector pos;
00027	    local string PName;
00028	
00029	    foreach AllActors(class'RunePlayer', P)
00030	    {
00031	        pos = P.Location+vect(0,0,1.2)*P.CollisionHeight;
00032	        if (!FastTrace(pos, Canvas.ViewPort.Actor.ViewLocation) || P == Canvas.ViewPort.Actor || P.IsA('CTTSpectator')
00033	            || P.Health <= 0)
00034	            continue;
00035	
00036	        Canvas.TransformPoint(pos, SX, SY);
00037	        if (SX > 0 && SX < Canvas.ClipX &&
00038	            SY > 0 && SY < Canvas.ClipY)
00039	        {
00040	            dist = VSize(P.Location-Canvas.ViewPort.Actor.ViewLocation);
00041	            dist = FClamp(dist, 1, 10000);
00042	            scale = 500.0/dist;
00043	            scale = FClamp(scale, 0.01, 2.0);
00044	
00045	            PName = P.PlayerReplicationInfo.PlayerName;
00046	            Canvas.SetPos(SX-(32*scale)*0.5, SY-(32*scale));
00047	
00048	            if(scale>0.3)
00049	                Canvas.Font = Canvas.MedFont;
00050	            else
00051	                return;
00052	
00053	                Canvas.DrawText(PName);
00054	        }
00055	    }
00056	}
00057	
00058	
00059	defaultproperties
00060	{
00061	}

End Source Code