anchor.diff:    for I := 0 to fPlayers.Count - 1 do
       if fPlayers[I].Enabled then
       begin
  -      Label_ResultsPlayerName1[Index].Caption   := fPlayers[I].PlayerName;
  -      Label_ResultsPlayerName1[Index].FontColor := FlagColorToTextColor(fPlayers[I].FlagColor);
  -      Label_ResultsPlayerName2[Index].Caption   := fPlayers[I].PlayerName;
  -      Label_ResultsPlayerName2[Index].FontColor := FlagColorToTextColor(fPlayers[I].FlagColor);
   
         with fPlayers[I].Stats do
         begin
  
positive.code: 
      fGameResultMsg: TGameResultMsg; //So we know where to go after results screen
      fWaresVisible: array [WARE_MIN..WARE_MAX] of Boolean; //For MP results page
  
      procedure BackClick(Sender: TObject);
      procedure Create_ResultsMP(aParent: TKMPanel);
      procedure ResultsMP_Toggle(Sender: TObject);
      procedure ResultsMP_PlayerSelect(Sender: TObject);
      procedure Refresh;
    protected
      Panel_ResultsMP: TKMPanel;
        Button_MPResultsStats,
        Button_MPResultsArmy,
        Button_MPResultsEconomy,
        Button_MPResultsWares: TKMButtonFlat;
        Label_ResultsMP: TKMLabel;
        Panel_StatsMP1, Panel_StatsMP2: TKMPanel;
          Label_ResultsPlayerName1, Label_ResultsPlayerName2:array[0..MAX_PLAYERS-1] of TKMLabel;
          Bar_Results:array[0..MAX_PLAYERS-1, 0..9] of TKMPercentBar;
          Image_ResultsRosette:array[0..MAX_PLAYERS-1, 0..9] of TKMImage;
        Panel_GraphsMP: TKMPanel;
          Chart_MPArmy: TKMChart;
          Chart_MPCitizens: TKMChart;
          Chart_MPHouses: TKMChart;
          Chart_MPWares: array[0..MAX_PLAYERS-1] of TKMChart; //One for each player
          Image_MPResultsBackplate: TKMImage;
          Radio_MPResultsWarePlayer: TKMRadioGroup;
        Button_ResultsMPBack:TKMButton;
    public
  
negative.code:       Bar_Results[I,K].Caption := IfThen(Bar_Results[I,K].Tag <> 0, IntToStr(Bar_Results[I,K].Tag), '-');
      end;
    end;
  end;
  
  
  procedure TKMGUIMenuResultsMP.RefreshCharts;
  var
    I,K,Index: Integer;
    R: TResourceType;
    G: TKMCardinalArray;
  begin
    //Fill in chart values
    Radio_MPResultsWarePlayer.Clear;
    for I := 0 to fPlayers.Count - 1 do
      if fPlayers[I].Enabled then
        Radio_MPResultsWarePlayer.Add('[$'+IntToHex(FlagColorToTextColor(fPlayers[I].FlagColor) and $00FFFFFF,6)+']'+fPlayers[I].PlayerName+'[]');
  
    Radio_MPResultsWarePlayer.ItemIndex := 0;
    Radio_MPResultsWarePlayer.Height := 25 * fEnabledPlayers;
    //Image_MPResultsBackplate.Height := 24 + 25 * fEnabledPlayers;
  
    for R := WARE_MIN to WARE_MAX do
      fWaresVisible[R] := True; //All are visible by default
  
    Chart_MPArmy.Clear;
    Chart_MPCitizens.Clear;
    Chart_MPHouses.Clear;
    Chart_MPArmy.MaxLength      := MyPlayer.Stats.ChartCount;
    Chart_MPCitizens.MaxLength  := MyPlayer.Stats.ChartCount;
    Chart_MPHouses.MaxLength    := MyPlayer.Stats.ChartCount;
  
    Chart_MPArmy.MaxTime      := fGame.GameTickCount div 10;
    Chart_MPCitizens.MaxTime  := fGame.GameTickCount div 10;
    Chart_MPHouses.MaxTime    := fGame.GameTickCount div 10;
  
    for I := 0 to fPlayers.Count - 1 do
    with fPlayers[I] do
      if Enabled then
        Chart_MPArmy.AddLine(PlayerName, FlagColor, Stats.ChartArmy);
  
    Chart_MPArmy.TrimToFirstVariation;
  
    for I := 0 to fPlayers.Count - 1 do
    with fPlayers[I] do
    if Enabled then
      Chart_MPCitizens.AddLine(PlayerName, FlagColor, Stats.ChartCitizens);
  
    for I := 0 to fPlayers.Count - 1 do
    with fPlayers[I] do
      if Enabled then
        Chart_MPHouses.AddLine(PlayerName, FlagColor, Stats.ChartHouses);
  
    Index := 0;
    for I := 0 to fPlayers.Count - 1 do
    if fPlayers[I].Enabled then
    begin
      Chart_MPWares[Index].Clear;
      Chart_MPWares[Index].MaxLength := MyPlayer.Stats.ChartCount;
      Chart_MPWares[Index].MaxTime := fGame.GameTickCount div 10;
      Chart_MPWares[Index].Caption := fTextLibrary[TX_GRAPH_TITLE_RESOURCES]+' - [$'+IntToHex(FlagColorToTextColor(fPlayers[I].FlagColor) and $00FFFFFF,6)+']'+fPlayers[I].PlayerName+'[]';
      for R := WARE_MIN to WARE_MAX do
      begin
        G := fPlayers[I].Stats.ChartGoods[R];
        for K := 0 to High(G) do
          if G[K] <> 0 then
          begin
            Chart_MPWares[Index].AddLine(fResource.Resources[R].Title, ResourceColor[R] or $FF000000, G, Byte(R));
            Break;
          end;
      end;
      inc(Index);
    end;
  end;
  
  
  
  procedure TKMGUIMenuResultsMP.Create_ResultsMP(aParent: TKMPanel);
  var
    I: Integer;
  begin
    Panel_ResultsMP := TKMPanel.Create(aParent, 0, 0, aParent.Width, aParent.Height);
    Panel_ResultsMP.Stretch;
  