]> git.pond.sub.org Git - empserver/blobdiff - src/lib/commands/sabo.c
Update copyright notice
[empserver] / src / lib / commands / sabo.c
index 4411e256a9a2d0380dc78bc4bbd9a4797b8cb22c..98a12d7534ee2026f8858692f06f5096c75ba598 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *  ---
  *
  *  sabo.c: Spy terrorist bombing
- * 
+ *
  *  Known contributors to this file:
  *     John Yockey, 2001
+ *     Markus Armbruster, 2003-2009
  */
 
 #include <config.h>
 
-#include "misc.h"
-#include "land.h"
-#include "nsc.h"
-#include "file.h"
 #include "commands.h"
+#include "land.h"
 
 int
 sabo(void)
@@ -48,7 +46,7 @@ sabo(void)
     double odds;
     int dam;
 
-    if (!snxtitem(&ni, EF_LAND, player->argp[1]))
+    if (!snxtitem(&ni, EF_LAND, player->argp[1], NULL))
        return RET_SYN;
 
     while (nxtitem(&ni, &land)) {
@@ -72,7 +70,6 @@ sabo(void)
            pr("%s has no shells.\n", prland(&land));
            continue;
        }
-       --land.lnd_item[I_SHELL];
 
        odds = LND_SPY_DETECT_CHANCE(land.lnd_effic);
        if (chance(odds)) {
@@ -86,13 +83,9 @@ sabo(void)
            continue;
        }
 
-       dam = landgun(3 * land.lnd_effic, 7);
-       if (sect.sct_item[I_SHELL] > 20)
-           dam += seagun(land.lnd_effic,
-                         random() % (sect.sct_item[I_SHELL] / 10));
-       if (sect.sct_item[I_PETROL] > 100)
-           dam += seagun(land.lnd_effic,
-                         random() % (sect.sct_item[I_PETROL] / 50));
+       dam = lnd_sabo(&land, sect.sct_item);
+       if (dam < 0)
+           continue;
 
        pr("Explosion in %s causes %d damage.\n",
           xyas(land.lnd_x, land.lnd_y, land.lnd_own), dam);
@@ -106,7 +99,7 @@ sabo(void)
        land.lnd_own = 0;
        putland(land.lnd_uid, &land);
 
-       sectdamage(&sect, dam, 0);
+       sectdamage(&sect, dam);
        putsect(&sect);
 
        land.lnd_own = player->cnum;