]> git.pond.sub.org Git - empserver/commitdiff
Factor ac_dog_report() out of ac_dog()
authorMarkus Armbruster <armbru@pond.sub.org>
Fri, 18 Jun 2010 18:04:41 +0000 (20:04 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 18 Jul 2010 07:26:57 +0000 (09:26 +0200)
src/lib/subs/aircombat.c

index 6640d82cedf242d0c7be586c2056dd58fb469968..cfe767b7b2772cf6bb15d5d8f932cabd4ebf680a 100644 (file)
@@ -430,12 +430,25 @@ ac_airtoair(struct emp_qelem *att_list, struct emp_qelem *int_list)
     }
 }
 
+static void
+ac_dog_report(natid to, int intensity, double odds,
+             struct plist *p1, int val1, int dam1, char *dam_mesg1,
+             struct plist *p2, int val2, int dam2, char *dam_mesg2)
+{
+    mpr(to, " %3.3s #%-4d  %3.3s #%-4d   %3d/%-3d %3d  %3.2f  %3d/%-3d"
+       "%-13.13s %-13.13s\n",
+       p1->pcp->pl_name, p1->plane.pln_uid,
+       p2->pcp->pl_name, p2->plane.pln_uid,
+       val1, val2, intensity, odds, dam1, dam2,
+       dam_mesg1, dam_mesg2);
+}
+
 static void
 ac_dog(struct plist *ap, struct plist *dp)
 {
     int att, def;
     double odds;
-    int intensity;
+    int intensity, i;
     natid att_own, def_own;
     int adam, ddam;
     char adam_mesg[14], ddam_mesg[14];
@@ -443,13 +456,6 @@ ac_dog(struct plist *ap, struct plist *dp)
     att_own = ap->plane.pln_own;
     def_own = dp->plane.pln_own;
 
-    PR(att_own, " %3.3s #%-4d  %3.3s #%-4d",
-       ap->pcp->pl_name,
-       ap->plane.pln_uid, dp->pcp->pl_name, dp->plane.pln_uid);
-    if (def_own)
-       PR(def_own, " %3.3s #%-4d  %3.3s #%-4d",
-          dp->pcp->pl_name,
-          dp->plane.pln_uid, ap->pcp->pl_name, ap->plane.pln_uid);
     att = pln_att(&ap->plane);
     if (att == 0)
        att = pln_def(&ap->plane);
@@ -478,33 +484,31 @@ ac_dog(struct plist *ap, struct plist *dp)
        odds = 0.05;
     intensity = roll(20) + roll(20) + roll(20) + roll(20) + 1;
 
-    PR(att_own, "   %3d/%-3d %3d  %3.2f  ", att, def, intensity, odds);
-    PR(def_own, "   %3d/%-3d %3d  %3.2f  ", def, att, intensity, odds);
-
     adam = 0;
     ddam = 0;
-    while ((intensity--) > 0) {
-
+    for (i = 0; i < intensity; i++) {
        if (chance(odds)) {
-           ddam += 1;
-           if ((dp->plane.pln_effic - ddam) < PLANE_MINEFF)
-               intensity = 0;
+           ddam++;
+           if (dp->plane.pln_effic - ddam < PLANE_MINEFF)
+               break;
        } else {
-           adam += 1;
-           if ((ap->plane.pln_effic - adam) < PLANE_MINEFF)
-               intensity = 0;
+           adam++;
+           if (ap->plane.pln_effic - adam < PLANE_MINEFF)
+               break;
        }
     }
 
     if (dp->pcp->pl_flags & P_M)
        ddam = 100;
 
-    PR(att_own, "%3d/%-3d", adam, ddam);
-    PR(def_own, "%3d/%-3d", ddam, adam);
     ac_planedamage(ap, def_own, adam, 0, adam_mesg);
     ac_planedamage(dp, att_own, ddam, 0, ddam_mesg);
-    PR(att_own, "%-13.13s %-13.13s\n", adam_mesg, ddam_mesg);
-    PR(def_own, "%-13.13s %-13.13s\n", ddam_mesg, adam_mesg);
+    ac_dog_report(att_own, intensity, odds,
+                 ap, att, adam, adam_mesg,
+                 dp, def, ddam, ddam_mesg);
+    ac_dog_report(def_own, intensity, odds,
+                 dp, def, ddam, ddam_mesg,
+                 ap, att, adam, adam_mesg);
 
     if (opt_HIDDEN) {
        setcont(att_own, def_own, FOUND_FLY);