- return shp_damage(list, totdam, 0, M_SUB, newx, newy);
- return 0;
+ shp_damage(list, totdam, 0, M_SUB, newx, newy);
+ return stopping;
+}
+
+static int
+shp_mission_interdiction(struct emp_qelem *list, coord x, coord y,
+ natid victim, int subs)
+{
+ char *what = subs ? "subs" : "ships";
+ int wantflags = subs ? M_SUB : 0;
+ int nowantflags = subs ? 0 : M_SUB;
+ int mission = subs ? MI_SINTERDICT : MI_INTERDICT;
+ int dam;
+
+ dam = unit_interdict(x, y, victim, what,
+ shp_easiest_target(list, wantflags, nowantflags),
+ mission);
+ if (dam >= 0)
+ shp_damage(list, dam, wantflags, nowantflags, x, y);
+ return dam >= 0;