+lnd_mar_put(struct emp_qelem *list, natid actor)
+{
+ struct emp_qelem *qp, *next;
+ struct ulist *llp;
+ struct lndstr *lp;
+
+ for (qp = list->q_back; qp != list; qp = next) {
+ next = qp->q_back;
+ llp = (struct ulist *)qp;
+ lp = &llp->unit.land;
+ mpr(actor, "%s stopped at %s\n",
+ prland(lp), xyas(lp->lnd_x, lp->lnd_y, actor));
+ lnd_mar_put_one(llp);
+ }
+}
+
+void
+lnd_put(struct emp_qelem *list)
+{
+ struct emp_qelem *qp, *next;
+
+ for (qp = list->q_back; qp != list; qp = next) {
+ next = qp->q_back;
+ lnd_put_one((struct ulist *)qp);
+ }
+}
+
+void
+lnd_put_one(struct ulist *llp)
+{
+ putland(llp->unit.land.lnd_uid, &llp->unit.land);
+ emp_remque(&llp->queue);
+ free(llp);
+}
+
+/*
+ * Sweep landmines with engineers in LAND_LIST for ACTOR.
+ * All land units in LAND_LIST must be in the same sector.
+ * If EXPLICIT is non-zero, this is for an explicit sweep command from
+ * a player. Else it's an automatic "on the move" sweep.
+ * If TAKEMOB is non-zero, require and charge mobility.
+ * Return non-zero when the land units should stop.
+ */
+int
+lnd_sweep(struct emp_qelem *land_list, int explicit, int takemob,