From: Markus Armbruster Date: Sat, 9 Jan 2010 08:39:15 +0000 (+0100) Subject: New shp_mission_interdiction() X-Git-Tag: v4.3.24~29 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=cd8fe31eda90aaf7f7ca3f7412147e059b6f09ea New shp_mission_interdiction() Factored out of shp_interdict(). No functional change. --- diff --git a/src/lib/subs/shpsub.c b/src/lib/subs/shpsub.c index 3ed92344a..eef91a9ea 100644 --- a/src/lib/subs/shpsub.c +++ b/src/lib/subs/shpsub.c @@ -640,6 +640,22 @@ shp_fort_interdiction(struct emp_qelem *list, coord newx, coord newy, return 0; } +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; + + return shp_damage(list, + unit_interdict(x, y, victim, what, + shp_easiest_target(list, + wantflags, nowantflags), + MI_INTERDICT), + wantflags, nowantflags, x, y); +} + static int shp_interdict(struct emp_qelem *list, coord newx, coord newy, natid victim) { @@ -649,23 +665,12 @@ shp_interdict(struct emp_qelem *list, coord newx, coord newy, natid victim) stopping |= shp_fort_interdiction(list, newx, newy, victim); if (shp_contains(list, newx, newy, 0, M_SUB)) { - stopping |= - shp_damage(list, - unit_interdict(newx, newy, victim, "ships", - shp_easiest_target(list, 0, M_SUB), - MI_INTERDICT), - 0, M_SUB, newx, newy); + stopping |= shp_mission_interdiction(list, newx, newy, victim, 0); stopping |= shp_missile_interdiction(list, newx, newy, victim); } } - if (shp_contains(list, newx, newy, M_SUB, 0)) { - stopping |= - shp_damage(list, - unit_interdict(newx, newy, victim, "subs", - shp_easiest_target(list, M_SUB, 0), - MI_SINTERDICT), - M_SUB, 0, newx, newy); - } + if (shp_contains(list, newx, newy, M_SUB, 0)) + stopping |= shp_mission_interdiction(list, newx, newy, victim, 1); return stopping; }