-- implements gates and travel between them
-- used in HSE and Eressea

function gate_travel(b, units)
  -- we've found which units we want to exchange, now swap them:
  local u
  for key, u in pairs(units) do
    u.region = b.region
    u.building = b
  end
end

function gate_units(b, maxsize)
  local size = maxsize
  local units = {}
  local u

  for u in b.units do
    if u.number<=size and u.weight<=u.capacity then
      units[u] = u
      size = size - u.number
    end
  end
  return units
end