Core.Object | +--Engine.Actor | +--Engine.Info | +--Engine.Mutator | +--SarkBall.SarkBallHUDMutator
simulated
RenderNames(Canvas Canvas)
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 }