anchor.diff:  end;
   
   
  +class function TKMColor4f.Black: TKMColor4f;
  +begin
  +  Result.R := 0;
  +  Result.G := 0;
  +  Result.B := 0;
  +  Result.A := 1;
  +end;
  +
  +
   function TKMColor4f.Alpha50(): TKMColor4f;
   begin
     Result := Self;
  
positive.code:   Math, KM_CommonUtils;
  
  { TKMColor3f }
  function TKMColor3f.ToCardinal: Cardinal;
  begin
    Result := (Round(R * 255) + (Round(G * 255) shl 8) + (Round(B * 255) shl 16)) {or $FF000000};
  
negative.code:     function ToCardinal: Cardinal;
      class function Generic(aIndex: Integer): TKMColor3f; static;
      class function RandomWSeed(aSeed: Integer): TKMColor3f; static;
      constructor New(aR,aG,aB: Single);
      constructor NewB(aR,aG,aB: Byte);
    end;
  //             Result := R + G shl 8 + B shl 16 + A shl 24;
  
    TKMColor4f = record
      R,G,B,A: Single;
      constructor New(aR,aG,aB,aA: Single); overload;
      constructor New(aR,aG,aB: Byte); overload;
      constructor New(aCol: Cardinal); overload;
      constructor New(aCol: TKMColor3f); overload;
      constructor New(aCol: TKMColor3f; aAlpha: Single); overload;
      class function White(): TKMColor4f; static;
      class function Black(): TKMColor4f; static;
      function Alpha50(): TKMColor4f;
      function Alpha(aAlpha: Single): TKMColor4f;
    end;
  
  const
    COLOR3F_WHITE: TKMColor3f = (R: 1; G: 1; B: 1);
    COLOR3F_BLACK: TKMColor3f = (R: 0; G: 0; B: 0);
  
    COLOR4F_WHITE: TKMColor4f = (R: 1; G: 1; B: 1; A: 1);
    COLOR4F_BLACK: TKMColor4f = (R: 0; G: 0; B: 0; A: 1);
  
  const
    WonOrLostText: array [TWonOrLost] of UnicodeString = ('None', 'Won', 'Lost');
  