anchor.diff:  
   constructor TKMHouseBarracks.Load(LoadStream: TKMemoryStream);
   var
  -  I,aCount: Integer;
  +  I, NewCount: Integer;
     U: TKMUnit;
   begin
     inherited;
  -  LoadStream.Read(ResourceCount, SizeOf(ResourceCount));
  +  LoadStream.Read(fResourceCount, SizeOf(fResourceCount));
     fRecruitsList := TList.Create;
  -  LoadStream.Read(aCount);
  -  for I := 0 to aCount - 1 do
  +  LoadStream.Read(NewCount);
  +  for I := 0 to NewCount - 1 do
     begin
       LoadStream.Read(U, 4); //subst on syncload
       fRecruitsList.Add(U);
  
positive.code: 
  procedure TKMHouseBarracks.ResTakeFromOut(aWare: TWareType; const aCount: Word=1);
  begin
    Assert(aCount <= ResourceCount[aWare]);
    dec(ResourceCount[aWare], aCount);
  end;
  
  
  function TKMHouseBarracks.CanTakeResOut(aWare: TWareType): Boolean;
  begin
    Assert(aWare in [WARFARE_MIN .. WARFARE_MAX]);
    Result := (ResourceCount[aWare] > 0);
  end;
  
  
  
negative.code:   fRecruitsList.Clear;
  
    for R := WARFARE_MIN to WARFARE_MAX do
      gPlayers[fOwner].Stats.WareConsumed(R, fResourceCount[R]);
  
    inherited;
  end;
  