From cd8fe31eda90aaf7f7ca3f7412147e059b6f09ea Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 9 Jan 2010 09:39:15 +0100 Subject: [PATCH] New shp_mission_interdiction() Factored out of shp_interdict(). No functional change. --- src/lib/subs/shpsub.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) 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; } -- 2.43.0