]> git.pond.sub.org Git - empserver/commitdiff
New get_planes(), factored out of plane flying commands
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 26 Jul 2008 18:58:44 +0000 (14:58 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 26 Jul 2008 19:01:45 +0000 (15:01 -0400)
No functional change.

include/prototypes.h
src/lib/commands/bomb.c
src/lib/commands/drop.c
src/lib/commands/fly.c
src/lib/commands/para.c
src/lib/commands/reco.c
src/lib/subs/plnsub.c

index 8c7791e8cd6d92521029d929a0edb25c0e7b8ba6..4c10f0f34566b06b2d68d218716d07e85c195f09 100644 (file)
@@ -535,6 +535,8 @@ extern int pln_postread(int, void *);
 extern int pln_prewrite(int, void *);
 /* plnsub.c */
 extern void count_planes(struct shpstr *);
+extern int get_planes(struct nstr_item *, struct nstr_item *,
+                     char *, char *);
 extern struct sctstr *get_assembly_point(char *, struct sctstr *, char *);
 extern int pln_onewaymission(struct sctstr *, int *, int *);
 extern int pln_oneway_to_carrier_ok(struct emp_qelem *,
index 1445b3f8a4c881c7ae8258b2ade3f5ebdd1f7b13..8713356764771ffd9fd5a08dc8ebbd6c48c06bc9 100644 (file)
@@ -99,11 +99,8 @@ bomb(void)
     char buf[1024];
 
     wantflags = 0;
-    if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1]))
+    if (get_planes(&ni_bomb, &ni_esc, player->argp[1], player->argp[2]) < 0)
        return RET_SYN;
-    if (!snxtitem(&ni_esc, EF_PLANE,
-                 getstarg(player->argp[2], "escort(s)? ", buf)))
-       pr("No escorts...\n");
     p = getstarg(player->argp[3], "pinpoint, or strategic? ", buf);
     if (!p || !*p)
        return RET_SYN;
index a3317af5e578e5ca157f57844828b69c829ae4cc..e33bb086f98129a8564c023c62d5b0fdc93d5ff6 100644 (file)
@@ -58,11 +58,8 @@ drop(void)
     char buf[1024];
 
     wantflags = 0;
-    if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1]))
+    if (get_planes(&ni_bomb, &ni_esc, player->argp[1], player->argp[2]) < 0)
        return RET_SYN;
-    if (!snxtitem(&ni_esc, EF_PLANE,
-                 getstarg(player->argp[2], "escort(s)? ", buf)))
-       pr("No escorts...\n");
     if (!get_assembly_point(player->argp[3], &ap_sect, buf))
        return RET_SYN;
     ax = ap_sect.sct_x;
index 97304f7dc3a639636f0ff0d79351dc877bf0f93b..b0095b76280956ce294490ef5d2ba5fe1c7e148a 100644 (file)
@@ -60,11 +60,8 @@ fly(void)
     char buf[1024];
 
     wantflags = 0;
-    if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1]))
+    if (get_planes(&ni_bomb, &ni_esc, player->argp[1], player->argp[2]) < 0)
        return RET_SYN;
-    if (!snxtitem(&ni_esc, EF_PLANE,
-                 getstarg(player->argp[2], "escort(s)? ", buf)))
-       pr("No escorts...\n");
     if (!get_assembly_point(player->argp[3], &ap_sect, buf))
        return RET_SYN;
     ax = ap_sect.sct_x;
index 9c976b2b2459c568d4097ce1178b4708c90e3b62..620fc4578522181cc56ac36ff8f73274b136e08a 100644 (file)
@@ -63,11 +63,8 @@ para(void)
     char buf[1024];
 
     wantflags = P_P;
-    if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1]))
+    if (get_planes(&ni_bomb, &ni_esc, player->argp[1], player->argp[2]) < 0)
        return RET_SYN;
-    if (!snxtitem(&ni_esc, EF_PLANE,
-                 getstarg(player->argp[2], "escort(s)? ", buf)))
-       pr("No escorts...\n");
     if (!get_assembly_point(player->argp[3], &ap_sect, buf))
        return RET_SYN;
     ax = ap_sect.sct_x;
index fcd4d1359e0768aacd41a68131455c711d5c4868..a28387fb71467c271e992120c66d22cb55eb0ef2 100644 (file)
@@ -57,11 +57,8 @@ reco(void)
     char buf[1024];
 
     wantflags = 0;
-    if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1]))
+    if (get_planes(&ni_bomb, &ni_esc, player->argp[1], player->argp[2]) < 0)
        return RET_SYN;
-    if (!snxtitem(&ni_esc, EF_PLANE,
-                 getstarg(player->argp[2], "escort(s)? ", buf)))
-       pr("No escorts...\n");
     if (!get_assembly_point(player->argp[3], &ap_sect, buf))
        return RET_SYN;
     ax = ap_sect.sct_x;
index 73f2d7973fc7c88c38e4404005e42b64b581780e..ae9afdfdacb53791b283c3584ead2205ba82358c 100644 (file)
 static int pln_equip(struct plist *, struct ichrstr *, int, char);
 static int fit_plane_on_ship(struct plnstr *, struct shpstr *);
 
+/*
+ * Get planes and escorts argument.
+ * Read planes into *NI_BOMB, and (optional) escorts into *NI_ESC.
+ * If INPUT_BOMB is not empty, use it, else prompt for more input.
+ * Same for INPUT_ESC.
+ * If we got a plane argument, initialize *NI_BOMB and *NI_ESC, and
+ * return 0.
+ * Else return -1 (*NI_BOMB and *NI_ESC may be modified).
+ */
+int
+get_planes(struct nstr_item *ni_bomb, struct nstr_item *ni_esc,
+          char *input_bomb, char *input_esc)
+{
+    char buf[1024];
+
+    if (!snxtitem(ni_bomb, EF_PLANE, input_bomb))
+       return -1;
+    if (!snxtitem(ni_esc, EF_PLANE,
+                 getstarg(input_esc, "escort(s)? ", buf)))
+       pr("No escorts...\n");
+    return 0;
+}
+
 /*
  * Get assembly point argument.
  * If INPUT is not empty, use it, else prompt for more input using PROMPT.