From 3ce3b2e387497523d94be7c69ff27a63ce20eb1c Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 9 Jan 2010 14:22:51 +0100 Subject: [PATCH] Simplify perform_mission() --- src/lib/subs/mission.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/lib/subs/mission.c b/src/lib/subs/mission.c index f1aefe2c..692acc88 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -384,18 +384,16 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, struct emp_qelem *qp, missiles, bombers; struct genlist *glp; struct plist *plp; - struct sctstr sect; struct plchrstr *pcp; int dam = 0; int targeting_ships = *s == 's'; /* "subs" or "ships" FIXME gross! */ - getsect(x, y, §); - emp_initque(&missiles); emp_initque(&bombers); - for (qp = list->q_forw; qp != list; qp = qp->q_forw) { + for (qp = list->q_forw; qp != list; ) { glp = (struct genlist *)qp; + qp = qp->q_forw; if (glp->thing->ef_type == EF_LAND) { dam = perform_mission_land(dam, (struct lndstr *)glp->thing, @@ -426,21 +424,14 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, CANT_REACH(); break; } + free(glp->thing); + free(glp); } dam = perform_mission_msl(dam, &missiles, x, y, victim, hardtarget); dam = perform_mission_bomb(dam, &bombers, x, y, victim, mission, s, hardtarget, targeting_ships); - qp = list->q_forw; - while (qp != list) { - glp = (struct genlist *)qp; - qp = qp->q_forw; - - free(glp->thing); - free(glp); - } - return dam; }