}
}
-static void
+void
shp_nav_put(struct emp_qelem *list, natid actor)
{
struct emp_qelem *qp, *next;
}
int
-shp_nav_one_sector(struct emp_qelem *list, int dir, natid actor)
+shp_nav_dir(struct emp_qelem *list, int dir, natid actor)
{
struct sctstr sect;
struct emp_qelem *qp;
coord newy;
int move;
enum shp_stuck stuck;
- int stopping = 0;
double mobcost;
if (CANT_HAPPEN(QEMPTY(list)))
mlp->unit.ship.shp_mobil = (int)mlp->mobil;
putship(mlp->unit.ship.shp_uid, &mlp->unit.ship);
}
- if (QEMPTY(list))
- return stopping;
- stopping |= shp_sweep(list, 0, 0, actor);
+
+ return 0;
+}
+
+int
+shp_nav_gauntlet(struct emp_qelem *list, int interdict, natid actor)
+{
+ struct ulist *mlp = (struct ulist *)list->q_back;
+ coord newx = mlp->unit.ship.shp_x;
+ coord newy = mlp->unit.ship.shp_y;
+ int stopping;
+
+ stopping = shp_sweep(list, 0, 0, actor);
if (QEMPTY(list))
return stopping;
stopping |= shp_check_mines(list);
if (QEMPTY(list))
return stopping;
- stopping |= shp_interdict(list, newx, newy, actor);
+ if (interdict)
+ stopping |= shp_interdict(list, newx, newy, actor);
return stopping;
}