anchor.diff:    Res: TWareType;
   begin
     Result := False;
  -  Res := WareIndexToType[aWareType];
  -  if (aHouseID > 0) and (Res in [WARE_MIN..WARE_MAX]) then
  -  begin
  +  if (aHouseID > 0) and (aWareType in [Low(WareIndexToType)..High(WareIndexToType)]) then
  +  begin
  +    Res := WareIndexToType[aWareType];
       H := fIDCache.GetHouse(aHouseID);
       if (H is TKMHouseStore) then
         Result := TKMHouseStore(H).NotAcceptFlag[Res];
  
positive.code: 
  
  procedure TKMScriptActions.PlayerWareDistribution(aPlayer, aWareType, aHouseType, aAmount: Byte);
  var
    W: TWareType;
  begin
    W := WareIndexToType[aWareType];
    if InRange(aPlayer, 0, gHands.Count - 1) and (W in [wt_Steel, wt_Coal, wt_Wood, wt_Corn])
    and (aHouseType in [Low(HouseIndexToType) .. High(HouseIndexToType)])
    and InRange(aAmount, 0, 5) then
    begin
      gHands[aPlayer].Stats.Ratio[W, HouseIndexToType[aHouseType]] := aAmount;
      gHands[aPlayer].Houses.UpdateResRequest;
    end
    else
  
negative.code:   H: TKMHouse;
    Res: TWareType;
  begin
    if (aHouseID > 0)
    and (aWareType in [Low(WareIndexToType) .. High(WareIndexToType)]) then
    begin
      Res := WareIndexToType[aWareType];
      H := fIDCache.GetHouse(aHouseID);
      if H is TKMHouseStore then
        TKMHouseStore(H).NotAcceptFlag[Res] := aBlocked;
  