class o_Render extends object;


// ===========================================================================
// draw zed health
final function DrawHealthBars(Canvas C, float f)
{
  local HUDKillingFloor KFH;
  local KFMonster m;

  KFH = HUDKillingFloor(C.ViewPort.Actor.myHUD);
  // this draws debug sphere for pawns
  // HKF.DrawPointSphere();
  // draw dem bars, using the fastest iterator at least up to 2000UU
  if (KFH == none)
    return;

  foreach C.ViewPort.Actor.CollidingActors(class'KFMonster', m, f)
  {
    if (m == none || m.Health <= 0)
      continue;
    KFH.DrawHealthBar(C, m, m.Health, m.HealthMax , 50.0);
  }
}


// draw crosshair
final function DrawXhair(Canvas C, Color cl, float l, float w)
{
  C.SetPos((float(C.sizeX) - w) / 2, (float(C.sizeY) - l) / 2);
  C.DrawColor = cl;
  C.DrawTile(Texture'Engine.WhiteSquareTexture', w, l, 0, 0, 2, 2);
  C.SetPos((float(C.sizeX) - l) / 2, (float(C.sizeY) - w) / 2);
  C.DrawTile(Texture'Engine.WhiteSquareTexture', l, w, 0, 0, 2, 2);
}


// For debugging headshots
// simulated function DrawHeadShotSphere(out Canvas C) // Dave@Psyonix
// {
//   local HUDKillingFloor KFH;
//   local KFHumanPawn p;
//   local KFMonster KFM;
//   local coords CO;
//   local vector HeadLoc;

//   KFH = HUDKillingFloor(C.ViewPort.Actor.myHUD);
//   p = getPawn();

//   if ( p == none || KFH == none)
//     return;

//   //super.DrawHeadShotSphere();

//   foreach p.DynamicActors(class'KFMonster', KFM)
//   {
//     if ( KFM == none ) // && KFM.ServerHeadLocation != KFM.LastServerHeadLocation )
//       continue;
//       //KFM.DrawDebugSphere(KFM.Location + (KFM.OnlineHeadshotOffset >> KFM.Rotation), KFM.HeadRadius * KFM.HeadScale * KFM.OnlineHeadshotScale, 10, 0, 255, 0);
//     KFH.ClearStayingDebugLines();
//     // KFM.LastServerHeadLocation = KFM.ServerHeadLocation;
//     // DrawStayingDebugSphere(KFM.ServerHeadLocation, KFM.HeadRadius * KFM.HeadScale, 10, 128, 255, 255);
//     CO = KFM.GetBoneCoords(KFM.HeadBone);
//     HeadLoc = CO.Origin + (KFM.HeadHeight * KFM.HeadScale * CO.XAxis);
//     KFH.DrawStayingDebugSphere(HeadLoc, KFM.HeadRadius * KFM.HeadScale, 10, 0, 255, 0);
//   }
// }


// ===========================================================================

defaultproperties
{
}
