]> git.pond.sub.org Git - empserver/blobdiff - src/lib/subs/lostsub.c
Update copyright notice
[empserver] / src / lib / subs / lostsub.c
index 0b794b26d2eb1177e7d20218575dbe1b038f0977..4af3cad645cf4e6185147a4ffeaca999721090b8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2011, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2017, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                Ken Stevens, Steve McClure, Markus Armbruster
  *
  *  Empire is free software: you can redistribute it and/or modify
  *
  *  Known contributors to this file:
  *     Steve McClure, 1997
- *     Markus Armbruster, 2008
+ *     Markus Armbruster, 2008-2016
  */
 
 #include <config.h>
 
-#include "file.h"
 #include "lost.h"
 #include "misc.h"
 #include "optlist.h"
@@ -41,7 +40,7 @@
 static int findlost(int, natid, int, coord, coord, int);
 
 /*
- * Record item ID of type TYPE changed owner from EXOWN to OWN at X, Y.
+ * Record item @id of @type changed owner from @exown to @own at @x,@y.
  */
 void
 lost_and_found(int type, natid exown, natid own, int id, coord x, coord y)
@@ -60,6 +59,8 @@ makelost(int type, natid owner, int id, coord x, coord y)
     struct loststr lost;
     int n;
 
+    if (CANT_HAPPEN(!owner))
+       return;
     n = findlost(type, owner, id, x, y, 1);
     ef_blank(EF_LOST, n, &lost);
     lost.lost_type = type;
@@ -76,6 +77,8 @@ makenotlost(int type, natid owner, int id, coord x, coord y)
     struct loststr lost;
     int n;
 
+    if (CANT_HAPPEN(!owner))
+       return;
     n = findlost(type, owner, id, x, y, 0);
     if (n < 0)
        return;
@@ -87,8 +90,8 @@ makenotlost(int type, natid owner, int id, coord x, coord y)
 
 /*
  * Find a suitable slot in the lost file.
- * If a record for TYPE, OWNER, ID, X, Y exists, return its index.
- * Else if FREE is non-zero, return the index of an unused record.
+ * If a record for @type, @owner, @id, @x, @y exists, return its index.
+ * Else if @free is non-zero, return the index of an unused record.
  * Else return -1.
  */
 static int
@@ -106,7 +109,7 @@ findlost(int type, natid owner, int id, coord x, coord y, int free)
        if (lost.lost_owner == owner && type == lost.lost_type) {
            if (type == EF_SECTOR && lost.lost_x == x && lost.lost_y == y)
                return n;
-           else if (lost.lost_id == id)
+           if (type != EF_SECTOR && lost.lost_id == id)
                return n;
        }
     }