From 80cf1b5be0fdbc9add4cb1a0b0cea65d8b0432cc Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Tue, 23 Sep 2008 22:07:52 -0400 Subject: [PATCH] Simplify ac_encounter()'s logic for stealthy evasion --- src/lib/subs/aircombat.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/lib/subs/aircombat.c b/src/lib/subs/aircombat.c index 5cc7f98b..68327127 100644 --- a/src/lib/subs/aircombat.c +++ b/src/lib/subs/aircombat.c @@ -200,10 +200,10 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list, continue; evaded = do_evade(bomb_list, esc_list); + if (evaded) + continue; - if (sect.sct_own != 0 && sect.sct_own != plane_owner && !evaded) { - /* We only show planes overhead if they didn't - * evade radar */ + if (sect.sct_own != 0 && sect.sct_own != plane_owner) { overfly[sect.sct_own]++; PR(sect.sct_own, "%s planes spotted over %s\n", cname(plane_owner), xyas(x, y, sect.sct_own)); @@ -211,28 +211,24 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list, setcont(sect.sct_own, plane_owner, FOUND_FLY); } - if (!evaded) { - /* Fire flak */ - if (unfriendly[sect.sct_own]) - ac_doflak(bomb_list, §); - /* If bombers left, fire flak from units and ships */ - if (!QEMPTY(bomb_list)) - ac_landflak(bomb_list, x, y); - if (!QEMPTY(bomb_list)) - ac_shipflak(bomb_list, x, y); - } + /* Fire flak */ + if (unfriendly[sect.sct_own]) + ac_doflak(bomb_list, §); + /* If bombers left, fire flak from units and ships */ + if (!QEMPTY(bomb_list)) + ac_landflak(bomb_list, x, y); + if (!QEMPTY(bomb_list)) + ac_shipflak(bomb_list, x, y); /* mission planes aborted due to flak -- don't send escorts */ if (QEMPTY(bomb_list)) break; - if (!no_air_defense && !evaded) + + if (!no_air_defense) air_defense(x, y, plane_owner, bomb_list, esc_list); if (sect.sct_own == 0 || sect.sct_own == plane_owner) continue; - if (evaded) - continue; - if (unfriendly[sect.sct_own] && !gotilist[sect.sct_own]) { getilist(&ilist[sect.sct_own], sect.sct_own); gotilist[sect.sct_own]++;