/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2009, 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.
*
* ---
*
* news.h: Definitions for Empire News
- *
+ *
* Known contributors to this file:
* Dave Pare
- * Thomas Rushack
+ * Thomas Ruschak
* Steve McClure
*/
* would be a pain, and it doesn't hurt to leave them in --ts
*/
-#ifndef _NEWS_H_
-#define _NEWS_H_
+#ifndef NEWS_H
+#define NEWS_H
+
+#include <time.h>
+#include "nsc.h"
-struct nwsstr {
- short ef_type;
- natid nws_ano; /* "actor" country # */
- short nws_uid;
- s_char nws_vrb; /* action (verb) */
- natid nws_vno; /* "victim" country # */
- s_char nws_ntm; /* number of times */
- time_t nws_when; /* time of action */
+struct nwsstr {
+ /* initial part must match struct empobj */
+ short ef_type;
+ short nws_uid;
+ unsigned nws_seqno;
+ unsigned nws_generation;
+ time_t nws_timestamp;
+ /* end of part matching struct empobj */
+ natid nws_ano; /* "actor" country # */
+ unsigned char nws_vrb; /* action (verb) */
+ natid nws_vno; /* "victim" country # */
+ signed char nws_ntm; /* number of times */
+ time_t nws_when; /* time of action */
};
#define NUM_RPTS 2 /* number of story alternates */
-struct rptstr {
- int r_good_will; /* how "nice" the action is */
- int r_newspage; /* which page this item belongs on */
- s_char *r_newstory[NUM_RPTS]; /* texts for fmt( */
+struct rptstr {
+ signed char r_uid;
+ int r_good_will; /* how "nice" the action is */
+ int r_newspage; /* which page this item belongs on */
+ char *r_newstory[NUM_RPTS]; /* texts for fmt( */
};
/* news verbs */
#define N_SHP_BOMB 17
#define N_BOARD_SHIP 18
#define N_SHP_LOSE 19
-#define N_FLAK 20
+/* unused 20 */
#define N_SEIZE_SECT 21
#define N_HONOR_TRE 22
#define N_VIOL_TRE 23
-#define N_DISS_GOV 24
+/* unused 24 */
#define N_HIT_MINE 25
#define N_DECL_ALLY 26
-#define N_DECL_NEUT 27
+/* unused 27 */
#define N_DECL_WAR 28
#define N_DIS_ALLY 29
#define N_DIS_WAR 30
#define N_DIE_PLAGUE 32
#define N_NAME_CHNG 33
#define N_DIE_FAMINE 34
-#define N_RIOT 35
+/* unused 35 */
#define N_DOWN_PLANE 36
#define N_NUKE 37
#define N_FREEDOM_FIGHT 38
#define N_PIRATE_KEEP 51
#define N_SHIP_TORP 52
#define N_SUB_BOMB 53
-#define N_ASSAULT_LOSE 54
+/* unused 54 */
#define N_UNIT_BOMB 55
#define N_LHIT_MINE 56
#define N_FIRE_F_ATTACK 57
#define N_PARA_UNOCC 75
#define N_ALOSE_SCT 76
#define N_PLOSE_SCT 77
-#define N_FIN_TROUBLE 78
-#define N_CREDIT_JUNK 79
+/* unused 78 */
+/* unused 79 */
#define N_WELCH_DEAL 80
#define N_LND_LOSE 81
#define N_BOARD_LAND 82
#define N_MAX_VERB 82
+#define N_NOTUSED 0
#define N_FOR 1
#define N_FRONT 2
#define N_SEA 3
#define N_TELE 11
#define N_MAX_PAGE 11
-#define NEWS_PERIOD days(10)
-
-#define getnews(n, p) \
- ef_read(EF_NEWS, n, (caddr_t)p)
-#define putnews(n, p) \
- ef_write(EF_NEWS, n, (caddr_t)p)
-#define getnewsp(n) \
- (struct nwsstr *) ef_ptr(EF_NEWS, n)
-
-extern struct rptstr rpt[];
+#define getnews(n, p) ef_read(EF_NEWS, (n), (p))
+#define putnews(n, p) ef_write(EF_NEWS, (n), (p))
+#define getnewsp(n) ((struct nwsstr *)ef_ptr(EF_NEWS, (n)))
-extern int nws_maxno;
+extern struct rptstr rpt[N_MAX_VERB + 2];
+extern struct symbol page_headings[N_MAX_PAGE + 2];
-#endif /* _NEWS_H_ */
+#endif