/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
*
* ---
*
- * 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.
*
* ---
*
* Steve McClure, 1996
*/
+#include <config.h>
+
+#include "file.h"
+#include "land.h"
+#include "lost.h"
#include "misc.h"
-#include "player.h"
-#include "var.h"
+#include "nuke.h"
+#include "optlist.h"
#include "plane.h"
-#include "ship.h"
-#include "land.h"
-#include "xy.h"
-#include "file.h"
-#include "nat.h"
+#include "player.h"
#include "prototypes.h"
-#include "optlist.h"
+#include "ship.h"
int
-pln_postread(int n, s_char *ptr)
+pln_postread(int n, void *ptr)
{
- struct plnstr *pp = (struct plnstr *)ptr;
+ struct plnstr *pp = ptr;
struct shpstr theship;
struct lndstr theland;
if (pp->pln_uid != n) {
- logerror("pln_postread: Error - %d != %d, zeroing.\n", pp->pln_uid,
- n);
+ logerror("pln_postread: Error - %d != %d, zeroing.\n",
+ pp->pln_uid, n);
memset(pp, 0, sizeof(struct plnstr));
}
return 1;
}
-/*ARGSUSED*/
int
-pln_prewrite(int n, s_char *ptr)
+pln_prewrite(int n, void *ptr)
{
- struct plnstr *pp = (struct plnstr *)ptr;
+ struct plnstr *pp = ptr;
struct plnstr plane;
+ struct nukstr *np;
+ int i;
if (pp->pln_effic < PLANE_MINEFF) {
if (pp->pln_own)
- makelost(EF_PLANE, pp->pln_own, pp->pln_uid, pp->pln_x,
- pp->pln_y);
+ makelost(EF_PLANE, pp->pln_own, pp->pln_uid,
+ pp->pln_x, pp->pln_y);
pp->pln_own = 0;
pp->pln_effic = 0;
+ for (i = 0; NULL != (np = getnukep(i)); i++) {
+ if (np->nuk_own && np->nuk_plane == n) {
+ mpr(np->nuk_own, "%s lost!\n", prnuke(np));
+ np->nuk_effic = 0;
+ np->nuk_plane = -1;
+ putnuke(np->nuk_uid, np);
+ }
+ }
}
pp->ef_type = EF_PLANE;
pp->pln_uid = n;
}
void
-pln_init(int n, s_char *ptr)
+pln_init(int n, void *ptr)
{
- struct plnstr *pp = (struct plnstr *)ptr;
+ struct plnstr *pp = ptr;
pp->ef_type = EF_PLANE;
pp->pln_uid = n;
pp->pln_own = 0;
}
-s_char *
+char *
prplane(struct plnstr *pp)
{
return prbuf("%s #%d", plchr[(int)pp->pln_type].pl_name, pp->pln_uid);