]> git.pond.sub.org Git - empserver/blobdiff - src/lib/commands/buil.c
Update copyright notice
[empserver] / src / lib / commands / buil.c
index fb183a4a79258b4d0e935559980904dded748925..c1268c318b20cb61b6e90152eb6a2b2e428d19c6 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2014, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                Ken Stevens, Steve McClure, Markus Armbruster
  *
  *  Empire is free software: you can redistribute it and/or modify
@@ -28,7 +28,7 @@
  *
  *  Known contributors to this file:
  *     Steve McClure, 1998-2000
- *     Markus Armbruster, 2004-2014
+ *     Markus Armbruster, 2004-2015
  */
 
 #include <config.h>
@@ -525,8 +525,8 @@ build_bspan(struct sctstr *sp)
     }
     if (!bridge_support_at(&sect, DIR_STOP)) {
        if (opt_EASY_BRIDGES) {
-           pr("Bridges must be built adjacent to land or bridge towers.\n");
-           pr("That sector is not adjacent to land or a bridge tower.\n");
+           pr("%s is not next to land or a bridge tower",
+              xyas(newx, newy, player->cnum));
        } else {
            /*
             * Note: because players need a 60% bridge head or tower,
@@ -619,8 +619,8 @@ build_btower(struct sctstr *sp)
        getsect(nx, ny, &s2);
        if ((s2.sct_type != SCT_WATER) &&
            (s2.sct_type != SCT_BTOWER) && (s2.sct_type != SCT_BSPAN)) {
-           pr("Bridge towers cannot be built adjacent to land.\n");
-           pr("That sector is adjacent to land.\n");
+           pr("%s is next to land, can't build bridge tower there",
+              xyas(newx, newy, player->cnum));
            return 0;
        }
     }
@@ -652,8 +652,8 @@ static int
 sector_can_build(struct sctstr *sp, short mat[], int work,
                 int effic, char *what)
 {
-    int i, avail, ret;
-    double needed;
+    int i, avail, ret, req;
+    double used;
 
     if (player->god)
        return 1;               /* Deity builds ex nihilo */
@@ -674,14 +674,15 @@ sector_can_build(struct sctstr *sp, short mat[], int work,
 
     ret = 1;
     for (i = I_NONE + 1; i <= I_MAX; i++) {
-       needed = mat[i] * (effic / 100.0);
-       if (sp->sct_item[i] < needed) {
-           pr("Not enough %s in %s (need %g more)\n",
+       used = mat[i] * effic;
+       req = (used + 99) / 100;
+       if (sp->sct_item[i] < req) {
+           pr("Not enough %s in %s (need %d more)\n",
               ichr[i].i_name, xyas(sp->sct_x, sp->sct_y, player->cnum),
-              ceil(needed - sp->sct_item[i]));
+              req - sp->sct_item[i]);
            ret = 0;
        }
-       mat[i] = roundavg(needed);
+       mat[i] = roundavg(used / 100.0);
     }
 
     return ret;