1 /* 2 * Empire - A multi-player, client/server Internet based war game. 3 * Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak, 4 * Ken Stevens, Steve McClure, Markus Armbruster 5 * 6 * Empire is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 * 19 * --- 20 * 21 * See files README, COPYING and CREDITS in the root of the source 22 * tree for related information and legal notices. It is expected 23 * that future projects/authors will amend these files as needed. 24 * 25 * --- 26 * 27 * news.h: Definitions for Empire News 28 * 29 * Known contributors to this file: 30 * Dave Pare 31 * Thomas Ruschak 32 * Steve McClure 33 * Markus Armbruster, 2004-2016 34 */ 35 36 /* 37 * News codes for new options are not #ifdefed, since defining maxverb 38 * would be a pain, and it doesn't hurt to leave them in --ts 39 */ 40 41 #ifndef NEWS_H 42 #define NEWS_H 43 44 #include "file.h" 45 #include "nsc.h" 46 47 struct nwsstr { 48 natid nws_ano; /* "actor" country # */ 49 unsigned char nws_vrb; /* action (verb) */ 50 natid nws_vno; /* "victim" country # */ 51 unsigned short nws_ntm; /* number of times */ 52 short nws_duration; /* last time at nws_when + nws_duration */ 53 time_t nws_when; /* time of action */ 54 }; 55 56 #define NUM_RPTS 2 /* number of story alternates */ 57 58 struct rptstr { 59 signed char r_uid; 60 int r_good_will; /* how "nice" the action is */ 61 int r_newspage; /* which page this item belongs on */ 62 char *r_newstory[NUM_RPTS]; /* texts for fmt( */ 63 }; 64 65 /* news verbs */ 66 #define N_WON_SECT 1 67 #define N_SCT_LOSE 2 68 #define N_SPY_SHOT 3 69 #define N_SENT_TEL 4 70 /* unused 5 */ 71 #define N_MAKE_LOAN 6 72 #define N_REPAY_LOAN 7 73 #define N_MAKE_SALE 8 74 #define N_OVFLY_SECT 9 75 #define N_SCT_SHELL 10 76 #define N_SHP_SHELL 11 77 #define N_TOOK_UNOCC 12 78 #define N_TORP_SHIP 13 79 #define N_FIRE_BACK 14 80 #define N_BROKE_SANCT 15 81 #define N_SCT_BOMB 16 82 #define N_SHP_BOMB 17 83 #define N_BOARD_SHIP 18 84 #define N_SHP_LOSE 19 85 /* unused 20 */ 86 #define N_SEIZE_SECT 21 87 /* unused 22 */ 88 /* unused 23 */ 89 /* unused 24 */ 90 #define N_HIT_MINE 25 91 #define N_DECL_ALLY 26 92 /* unused 27 */ 93 #define N_DECL_WAR 28 94 #define N_DIS_ALLY 29 95 #define N_DIS_WAR 30 96 #define N_OUT_PLAGUE 31 97 #define N_DIE_PLAGUE 32 98 #define N_NAME_CHNG 33 99 #define N_DIE_FAMINE 34 100 /* unused 35 */ 101 #define N_DOWN_PLANE 36 102 #define N_NUKE 37 103 #define N_FREEDOM_FIGHT 38 104 #define N_SHOOT_CIV 39 105 #define N_LAUNCH 40 106 #define N_SAT_KILL 41 107 #define N_GIFT 42 108 #define N_AIDS 43 109 #define N_HURTS 44 110 #define N_TAKE 45 111 #define N_NUKE_STOP 46 112 #define N_SCT_MISS 47 113 #define N_SHP_MISS 48 114 #define N_TRADE 49 115 #define N_PIRATE_TRADE 50 116 #define N_PIRATE_KEEP 51 117 #define N_SHIP_TORP 52 118 #define N_SUB_BOMB 53 119 /* unused 54 */ 120 #define N_UNIT_BOMB 55 121 #define N_LHIT_MINE 56 122 #define N_FIRE_F_ATTACK 57 123 #define N_FIRE_L_ATTACK 58 124 #define N_FIRE_S_ATTACK 59 125 #define N_SACK_CAP 60 126 #define N_UP_FRIENDLY 61 127 #define N_DOWN_FRIENDLY 62 128 #define N_UP_NEUTRAL 63 129 #define N_DOWN_NEUTRAL 64 130 #define N_UP_HOSTILE 65 131 #define N_DOWN_HOSTILE 66 132 #define N_SCT_SMISS 67 133 #define N_SHP_SMISS 68 134 #define N_START_COL 69 135 #define N_NUKE_SSTOP 70 136 #define N_LND_MISS 71 137 #define N_LND_SMISS 72 138 #define N_AWON_SECT 73 139 #define N_PWON_SECT 74 140 #define N_PARA_UNOCC 75 141 #define N_ALOSE_SCT 76 142 #define N_PLOSE_SCT 77 143 /* unused 78 */ 144 /* unused 79 */ 145 #define N_WELCH_DEAL 80 146 #define N_LND_LOSE 81 147 #define N_BOARD_LAND 82 148 #define N_MAX_VERB 82 149 150 #define N_NOTUSED 0 151 #define N_FOR 1 152 #define N_FRONT 2 153 #define N_SEA 3 154 #define N_SKY 4 155 #define N_MISS 5 156 #define N_ARTY 6 157 #define N_ECON 7 158 #define N_COLONY 8 159 #define N_HOME 9 160 #define N_SPY 10 161 #define N_TELE 11 162 #define N_MAX_PAGE 11 163 164 #define getnews(n, p) ef_read(EF_NEWS, (n), (p)) 165 #define putnews(n, p) ef_write(EF_NEWS, (n), (p)) 166 #define getnewsp(n) ((struct nwsstr *)ef_ptr(EF_NEWS, (n))) 167 168 extern struct rptstr rpt[N_MAX_VERB + 2]; 169 extern struct symbol page_headings[N_MAX_PAGE + 2]; 170 171 #endif 172