anchor.diff:        Image_CampaignBG: TKMImage;
         Panel_Campaign_Flags: TKMPanel;
           Image_CampaignFlags: array[0..MAX_CAMP_MAPS - 1] of TKMImage;
  +        Label_CampaignFlags: array[0..MAX_CAMP_MAPS - 1] of TKMLabel;
           Image_CampaignSubNode: array[0..MAX_CAMP_NODES - 1] of TKMImage;
         Panel_CampScroll: TKMPanel;
  -        Image_ScrollTop, Image_Scroll: TKMImage;
  +        Image_ScrollTop, Image_Scroll, Image_ScrollClose: TKMImage;
           Label_CampaignTitle, Label_CampaignText: TKMLabel;
  +      Image_ScrollRestore: TKMImage;
         Button_CampaignStart, Button_CampaignBack: TKMButton;
     public
       constructor Create(aParent: TKMPanel; aOnPageChange: TGUIEventText);
  
positive.code:     //Pivot flags around Y=bottom X=middle, that's where the flag pole is
      Image_CampaignFlags[I].Left := fCampaign.Maps[I].Flag.X - Round((Image_CampaignFlags[I].Width/2)*(1-Panel_Campaign_Flags.Scale));
      Image_CampaignFlags[I].Top  := fCampaign.Maps[I].Flag.Y - Round(Image_CampaignFlags[I].Height   *(1-Panel_Campaign_Flags.Scale));
    end;
  
    //Select last map to play by 'clicking' last node
    Campaign_SelectMap(Image_CampaignFlags[fCampaign.UnlockedMap]);
  
    //When opening campaign screen set the scroll initial position properly
    //Player can move it later (to allow to select previous maps and look at camp map)
    Panel_CampScroll.Left := IfThen(fCampaign.Maps[fMapIndex].TextPos = bcBottomRight, Panel_Campaign.Width - Panel_CampScroll.Width, 0);
  end;
  
  
  
negative.code:     fMapIndex: Byte;
  
      procedure BackClick(Sender: TObject);
      procedure Scroll_Toggle(Sender: TObject);
  
      procedure Campaign_Set(aCampaign: TKMCampaign);
      procedure Campaign_SelectMap(Sender: TObject);
  