]> git.pond.sub.org Git - empserver/commitdiff
Fix launch to require petrol for launching satellites
authorMarkus Armbruster <armbru@pond.sub.org>
Mon, 24 Mar 2008 15:23:03 +0000 (16:23 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Wed, 26 Mar 2008 21:13:00 +0000 (22:13 +0100)
launch_sat() failed to call msl_equip().  Change msl_equip() to take
the mission character as argument, because the old hardcoded 'p' isn't
appropriate for satellites.  Best fit for satellites is 'r' for
reconnaissance, but mission_pln_equip() doesn't accept that
(pln_equip() does).  Fix that as well.

include/prototypes.h
src/lib/commands/laun.c
src/lib/subs/mission.c
src/lib/subs/mslsub.c

index 1a127da7ead3fb3242c3cb701b9492ce6af5b5ad..9921189e86c0e5023a836f89dd56e448143fe8e0 100644 (file)
@@ -504,7 +504,7 @@ extern int move_ground(struct sctstr *, struct sctstr *,
 extern int fly_map(coord, coord);
 /* mslsub.c */
 extern int msl_intercept(coord, coord, natid, int, int, int, int);
-extern int msl_equip(struct plnstr *);
+extern int msl_equip(struct plnstr *, char);
 extern int msl_hit(struct plnstr *, int, int, int, int, char *,
                   coord, coord, int);
 extern void msl_sel(struct emp_qelem *, coord, coord, natid, int,
index 996188b88792587f27f9110ea75d0ae041b65cef..7e3198f7d222395f13488183d51361f6f2da0180 100644 (file)
@@ -171,7 +171,7 @@ launch_as(struct plnstr *pp)
     int dam, nukedam;
     natid oldown;
 
-    if (msl_equip(pp) < 0) {
+    if (msl_equip(pp, 'p') < 0) {
        pr("%s not enough petrol or shells!\n", prplane(pp));
        return RET_FAIL;
     }
@@ -280,7 +280,7 @@ launch_missile(struct plnstr *pp, int sublaunch)
        pr("Range too great; try again!\n");
        return RET_FAIL;
     }
-    if (msl_equip(pp) < 0) {
+    if (msl_equip(pp, 'p') < 0) {
        pr("%s not enough shells!\n", prplane(pp));
        return RET_FAIL;
     }
@@ -390,6 +390,10 @@ launch_sat(struct plnstr *pp, int sublaunch)
        return RET_SYN;
     if (!check_plane_ok(pp))
        return RET_FAIL;
+    if (msl_equip(pp, 'r') < 0) {
+       pr("%s not enough petrol!\n", prplane(pp));
+       return RET_FAIL;
+    }
     pp->pln_theta = 0;
     pp->pln_flags |= PLN_SYNCHRONOUS;
     if (*p == 0 || *p == 'n')
index a80e8cf618b958ab176727dd23cbf2a2ebe50502..3f812f2f408e9958048dfe092e9d2d8f6683d6be 100644 (file)
@@ -1036,6 +1036,7 @@ mission_pln_equip(struct plist *plp, struct ichrstr *ip, int flags,
                needed = load;
            }
            break;
+       case 'r':               /* reconnaissance */
        case 0:                 /* plane interception */
            break;
        default:
index 4b1a0cdd55daa765b8212fa9ad97d34abb4c7ced..970b701c87a9d13138c41199bdb74200aae11608 100644 (file)
 #include "xy.h"
 
 int
-msl_equip(struct plnstr *pp)
+msl_equip(struct plnstr *pp, char mission)
 {
     struct plist pl;
 
     memset(&pl, 0, sizeof(struct plist));
     pl.pcp = plchr + pp->pln_type;
     pl.plane = *pp;
-    return mission_pln_equip(&pl, 0, 0, 'p');
+    return mission_pln_equip(&pl, 0, 0, mission);
 }
 
 int