anchor.diff:  end;
   
   
  +procedure TKMGameApp.SaveCampaignsProgress;
  +begin
  +  if fCampaigns <> nil then
  +    fCampaigns.SaveProgress(ExeDir + SAVES_FOLDER_NAME + PathDelim + 'Campaigns.dat');
  +end;
  +
  +
   procedure TKMGameApp.PrepageStopGame(aMsg: TKMGameResultMsg);
   begin
     if (gGame = nil) or gGame.ReadyToStop then Exit;
  
positive.code:   StopGame(gr_Silent);
  
    FreeAndNil(fTimerUI);
    if fCampaigns <> nil then fCampaigns.SaveProgress(ExeDir + SAVES_FOLDER_NAME + PathDelim + 'Campaigns.dat');
    FreeThenNil(fCampaigns);
    FreeThenNil(fGameSettings);
    FreeThenNil(fMainMenuInterface);
  
negative.code:       gGame.SaveCampaignScriptData(fCampaigns.ActiveCampaign.ScriptData);
  
        if aMsg = gr_Win then
        begin
          fCampaigns.UnlockNextMap;
          SaveCampaignsProgress; //Always save Campaigns progress after mission has been won. In case future game crash
        end;
      end;
    end;
  
  