/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2005, 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.
*
* ---
*
* Known contributors to this file:
* Dave Pare, 1994
* Steve McClure, 1997
+ * Ron Koenderink, 2005
*/
-#include "prototypes.h"
-#include "news.h"
+#include <config.h>
+
#include "file.h"
+#include "nat.h"
+#include "news.h"
#include "optlist.h"
+#include "prototypes.h"
#define SLOTS 5
nreport(natid actor, int event, natid victim, int times)
{
int nice;
- int rel;
struct natstr *natp;
struct newscache *ncp;
+ if (CANT_HAPPEN((unsigned)event > N_MAX_VERB
+ || rpt[event].r_newstory[0] == rpt[0].r_newstory[0]))
+ return;
+
ncp = ncache(actor, event, victim, times);
putnews(ncp->id, &ncp->news);
return;
if ((natp = getnatp(victim)) == 0)
return;
- if ((rel = getrel(natp, actor)) < HOSTILE)
+ if (getrel(natp, actor) < HOSTILE)
return;
- rel = HOSTILE;
-/*
- if (rel > HOSTILE)
- rel = HOSTILE;
- else
- rel = AT_WAR;
- */
- setrel(victim, actor, rel);
+ setrel(victim, actor, HOSTILE);
}
/*
static struct newscache *
ncache(int actor, int event, int victim, int times)
{
- register struct newscache *np;
+ struct newscache *np;
int i;
int oldslot;
time_t oldtime;
return np;
}
}
- if (oldslot < 0) {
- logerror("internal error; ncache oldslot < 0");
- return &cache[actor][0];
- }
+ if (CANT_HAPPEN(oldslot < 0))
+ oldslot = 0;
+ if (CANT_HAPPEN(!strstr(rpt[event].r_newstory[0], "%s") && victim != 0))
+ victim = 0;
np = &cache[actor][oldslot];
np->news.nws_ano = actor;
np->news.nws_vno = victim;