]> git.pond.sub.org Git - empserver/blobdiff - src/lib/subs/shpsub.c
COPYING duplicates information from README. Remove. Move GPL from
[empserver] / src / lib / subs / shpsub.c
index 62493fa95ad52acf7b1fe714151df4de08748887..c1b021142c400a8d3557667a9994f2b77f35ece8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2005, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -19,9 +19,9 @@
  *
  *  ---
  *
- *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- *  related information and legal notices. It is expected that any future
- *  projects/authors will amend these files as needed.
+ *  See files README, COPYING and CREDITS in the root of the source
+ *  tree for related information and legal notices.  It is expected
+ *  that future projects/authors will amend these files as needed.
  *
  *  ---
  *
@@ -32,6 +32,8 @@
  *     Steve McClure, 1996-2000
  */
 
+#include <config.h>
+
 #include <math.h>
 #include "misc.h"
 #include "queue.h"
@@ -53,7 +55,6 @@
 #include "server.h"
 #include "prototypes.h"
 
-static int shp_check_nav(struct sctstr *);
 static int shp_check_one_mines(struct mlist *);
 static int shp_hit_mine(struct shpstr *, struct mchrstr *);
 static void shp_mess(s_char *, struct mlist *);
@@ -161,7 +162,7 @@ shp_nav(struct emp_qelem *list, double *minmobp, double *maxmobp,
            continue;
        case CN_LANDLOCKED:
            shp_mess("is landlocked", mlp);
-           break;
+           continue;
        case CN_NAVIGABLE:
            break;
        case CN_ERROR:
@@ -255,7 +256,7 @@ shp_sweep(struct emp_qelem *ship_list, int verbose, natid actor)
            if (chance(0.66)) {
                mpr(actor, "Sweep...\n");
                mines--;
-               shells = min(max, shells + 1);
+               shells = MIN(max, shells + 1);
                changed |= map_set(actor, sect.sct_x, sect.sct_y, 'X', 0);
            }
        }
@@ -338,7 +339,7 @@ shp_list(struct emp_qelem *ship_list)
        pr("%4d ", shp->shp_uid);
        pr("%-16.16s ", mlp->mcp->m_name);
        prxy("%4d,%-4d ", shp->shp_x, shp->shp_y, mlp->ship.shp_own);
-       pr("%1c", shp->shp_fleet);
+       pr("%c", shp->shp_fleet);
        pr("%4d%%", shp->shp_effic);
        pr("%4d", shp->shp_item[I_MILIT]);
        pr("%4d", shp->shp_item[I_SHELL]);
@@ -366,10 +367,10 @@ shp_mess(s_char *str, struct mlist *mlp)
     free(mlp);
 }
 
-static int
+int
 shp_check_nav(struct sctstr *sect)
 {
-    switch (dchr[sect->sct_type].d_flg & 03) {
+    switch (dchr[sect->sct_type].d_nav) {
     case NAVOK:
        break;
 
@@ -387,6 +388,17 @@ shp_check_nav(struct sctstr *sect)
     return CN_NAVIGABLE;
 }
 
+int
+sect_has_dock(struct sctstr *sect)
+{
+    switch (dchr[sect->sct_type].d_nav) {
+    case NAV_02:
+       return 1;
+    default:
+       return 0;
+    }
+}
+
 static int
 shp_count(struct emp_qelem *list, int wantflags, int nowantflags, int x,
          int y)
@@ -659,7 +671,7 @@ shp_fort_interdiction(struct emp_qelem *list, coord newx, coord newy,
        gun = fsect.sct_item[I_GUN];
        if (gun < 1)
            continue;
-       range = tfactfire(fsect.sct_own, (double)min(gun, 7));
+       range = tfactfire(fsect.sct_own, (double)MIN(gun, 7));
        if (fsect.sct_effic > 59)
            range++;
        range2 = roundrange(range);
@@ -948,7 +960,7 @@ shp_missile_defense(coord dx, coord dy, natid bombown, int hardtarget)
            continue;
 
        /* now calculate the odds */
-       gun = min(ship.shp_item[I_GUN], ship.shp_glim);
+       gun = MIN(ship.shp_item[I_GUN], ship.shp_glim);
        eff = (double)ship.shp_effic / 100.0;
        teff =
            (((double)ship.shp_tech) / (((double)ship.shp_tech) + 200.0));