/*
 * news.h
 *
 * everything having to do with empire news
 *
 * includes struct nwsstr, rptstr
 * defines N, NEWS_PERIOD, NUM_RPTS
 *
 * from PSL Empire, 1985
 * $Revision: 2.5 $ $Date: 1995/09/26 03:36:25 $
 */

/*
 *	News codes for new options are not #ifdefed, since defining maxverb
 *	would be a pain, and it doesn't hurt to leave them in --ts
 */

#ifndef _NEWS_H_
#define _NEWS_H_

struct	nwsstr {
	natid	nws_ano;	/* "actor" country # */
	s_char	nws_vrb;	/* action (verb) */
	natid	nws_vno;	/* "victim" country # */
	s_char	nws_ntm;	/* number of times */
	long	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( */
};

	/* news verbs */
#define	N_WON_SECT	1
#define	N_SCT_LOSE	2
#define	N_SPY_SHOT	3
#define	N_SENT_TEL	4
#define	N_SIGN_TRE	5
#define	N_MAKE_LOAN	6
#define	N_REPAY_LOAN	7
#define	N_MAKE_SALE	8
#define	N_OVFLY_SECT	9
#define	N_SCT_SHELL	10
#define	N_SHP_SHELL	11
#define	N_TOOK_UNOCC	12
#define	N_TORP_SHIP	13
#define	N_FIRE_BACK	14
#define	N_BROKE_SANCT	15
#define	N_SCT_BOMB	16
#define	N_SHP_BOMB	17
#define	N_BOARD_SHIP	18
#define	N_SHP_LOSE	19
#define	N_FLAK		20
#define	N_SEIZE_SECT	21
#define	N_HONOR_TRE	22
#define	N_VIOL_TRE	23
#define	N_DISS_GOV	24
#define	N_HIT_MINE	25
#define	N_DECL_ALLY	26
#define	N_DECL_NEUT	27
#define	N_DECL_WAR	28
#define	N_DIS_ALLY	29
#define	N_DIS_WAR	30
#define	N_OUT_PLAGUE	31
#define	N_DIE_PLAGUE	32
#define	N_NAME_CHNG	33
#define	N_DIE_FAMINE	34
#define	N_RIOT		35
#define	N_DOWN_PLANE	36
#define	N_NUKE		37
#define N_FREEDOM_FIGHT	38
#define N_SHOOT_CIV	39
#define N_LAUNCH	40
#define N_SAT_KILL	41
#define N_GIFT		42
#define N_AIDS		43
#define N_HURTS		44
#define N_TAKE		45
#define N_NUKE_STOP     46
#define	N_SCT_MISS	47
#define	N_SHP_MISS	48
#define N_TRADE		49
#define N_PIRATE_TRADE	50
#define N_PIRATE_KEEP	51
#define	N_SHIP_TORP	52
#define N_SUB_BOMB	53
#define N_ASSAULT_LOSE	54
#define N_UNIT_BOMB	55
#define	N_LHIT_MINE	56
#define	N_FIRE_F_ATTACK	57
#define	N_FIRE_L_ATTACK	58
#define	N_FIRE_S_ATTACK	59
#define N_SACK_CAP      60
#define N_UP_FRIENDLY   61
#define N_DOWN_FRIENDLY 62
#define N_UP_NEUTRAL    63
#define N_DOWN_NEUTRAL  64
#define N_UP_HOSTILE    65
#define N_DOWN_HOSTILE  66
#define N_SCT_SMISS     67
#define N_SHP_SMISS     68
#define N_START_COL     69
#define N_NUKE_SSTOP    70
#define N_LND_MISS      71
#define N_LND_SMISS     72
#define N_AWON_SECT	73
#define N_PWON_SECT	74
#define N_PARA_UNOCC	75
#define N_ALOSE_SCT	76
#define N_PLOSE_SCT	77
#define	N_MAX_VERB	77

#define N_FOR            1
#define N_FRONT          2
#define N_SEA            3
#define N_SKY            4
#define N_MISS           5
#define N_ARTY           6
#define N_ECON           7
#define N_COLONY         8
#define N_HOME           9
#define N_SPY           10
#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[];

extern	int nws_maxno;

#endif /* _NEWS_H_ */
