]> git.pond.sub.org Git - empserver/blob - include/econfig-spec.h
(EMPCF_COMMENT): New; for readability.
[empserver] / include / econfig-spec.h
1 /*
2  *  Empire - A multi-player, client/server Internet based war game.
3  *  Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
4  *                           Ken Stevens, Steve McClure
5  *
6  *  This program 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 2 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, write to the Free Software
18  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  *  ---
21  *
22  *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23  *  related information and legal notices. It is expected that any future
24  *  projects/authors will amend these files as needed.
25  *
26  *  ---
27  *
28  *  econfig-spec.h: Combined include for optlist.h and emp_config.c
29  */
30
31 #if     defined(EMP_CONFIG_C_OUTPUT)
32
33 #define EMPCFONLYC(fvname, vname, vtype, ctype, num, descr)     \
34         { (fvname), (ctype), &(vname), (num), (descr) },
35 #define EMPCFBOTH(fvname, vname, vtype, ctype, num, descr)      \
36         { (fvname), (ctype), &(vname), (num), (descr) },
37
38 #elif   defined(EMP_CONFIG_H_OUTPUT)
39
40 #define EMPCFONLYC(fvname, vname, vtype, ctype, num, descr)
41 #define EMPCFBOTH(fvname, vname, vtype, ctype, num, descr)      \
42         extern vtype vname;
43
44 #endif  /* EMP_CONFIG_C_OUTPUT || EMP_CONFIG_H_OUTPUT */
45
46 #define EMPCF_COMMENT(comment) \
47 EMPCFONLYC("", emp_config_dummy, , intset, 0, (comment))
48
49 /* things that can be changed */
50 EMPCF_COMMENT("\n### Server configuration and information")
51 EMPCFBOTH("data", datadir, s_char *, optstrset, 0,
52     "Directory the data is stored in")
53 EMPCFBOTH("info", infodir, s_char *, optstrset, 0,
54     "Directory the info pages are stored in")
55 EMPCFBOTH("port", loginport, s_char *, optstrset, 0,
56     "TCP/IP port the server will start up on")
57 EMPCFBOTH("privname", privname, s_char *, optstrset, 0,
58     "Name of the deity")
59 EMPCFBOTH("privlog", privlog, s_char *, optstrset, 0,
60     "E-mail of the deity")
61 EMPCFBOTH("WORLD_X", WORLD_X, int, worldxset, 0,
62     "World size X dimension (enforced to be even by subtracting 1 if necessary)")
63 EMPCFBOTH("WORLD_Y", WORLD_Y, int, intset, 0,
64     "World size Y dimension")
65
66 EMPCF_COMMENT("\n\n### Update policy")
67 EMPCFBOTH("update_policy", update_policy, int, intset, 0,
68     "0 - normal, 1 - update_times, 2 - blitz, 3 - demand only")
69 EMPCFBOTH("etu_per_update", etu_per_update, int, intset, 0,
70     "Number of ETUs per update")
71 EMPCFBOTH("s_p_etu", s_p_etu, int, intset, 0,
72     "Seconds per etu, updates will occur every s_p_etu * etu_per_update seconds")
73 EMPCFBOTH("adj_update", adj_update, int, intset, 0,
74     "Move the update forward or backward (in seconds)")
75 EMPCFBOTH("update_window", update_window, int, intset, 0,
76     "Window the update will occur in (in seconds) before and after the update time")
77 EMPCFBOTH("update_times", update_times, s_char *, optstrset, 0,
78     "Times when updates occur under policy #1.  Must coincide with schedule.")
79 EMPCFBOTH("hourslop", hourslop, int, intset, 0,
80     "Number of minutes update check can slip to match update_times")
81 EMPCFBOTH("blitz_time", blitz_time, int, intset, 0,
82     "Number of minutes between updates under policy #2.")
83
84 EMPCF_COMMENT("\n\n### Demand update policy")
85 EMPCFBOTH("update_demandpolicy", update_demandpolicy, int, intset, 0,
86     "0 - emp_tm checks, 1 - after setting, 2 - demand updates disabled")
87 EMPCFBOTH("update_wantmin", update_wantmin, int, intset, 0,
88     "number of requests needed for demand update")
89 EMPCFBOTH("update_missed", update_missed, int, intset, 0,
90     "number of demand updates country can miss before veto update")
91 EMPCFBOTH("update_demandtimes", update_demandtimes, s_char *, optstrset, 0,
92     "Times when demand updates can occur.  Ranges CANNOT cross midnight.")
93
94 EMPCF_COMMENT("\n\n### Game hours restrictions")
95 EMPCFBOTH("game_days", game_days, s_char *, optstrset, 0,
96     "Days game is up and running (Su Mo Tu We Th Fr Sa)")
97 EMPCFBOTH("game_hours", game_hours, s_char *, optstrset, 0,
98     "Hours game is up and running (6:00-18:00)")
99
100 EMPCF_COMMENT("\n\n### Options\n")
101 EMPCFONLYC("option", emp_config_dummy, , optionset, 0, NULL)
102 EMPCFONLYC("nooption", emp_config_dummy, , optiondel, 0, NULL)
103
104
105 EMPCF_COMMENT("\n\n### Countries")
106 EMPCFBOTH("btu_build_rate", btu_build_rate, float, floatset, 0,
107     "Rate at which BTUs accumulate (etu * civ * eff * btu_build_rate)")
108 EMPCFBOTH("m_m_p_d", m_m_p_d, int, intset, 0,
109     "Maximum minutes per day a country is allowed to be logged in")
110 EMPCFBOTH("max_btus", max_btus, int, intset, 0,
111     "Maximum number of BTUs a country can have")
112 EMPCFBOTH("max_idle", max_idle, int, intset, 0,
113     "Maximum number of minutes a player can sit idle while logged in")
114 EMPCFBOTH("players_at_00", players_at_00, int, intset, 0,
115     "Players have their coordinate system at deity 0,0 (0 - no, 1 - yes)")
116 EMPCFBOTH("at_least_one_100", at_least_one_100, int, intset, 0,
117     "Initialize new countries with at least one sector with 100 of all resource")
118 EMPCFBOTH("powe_cost", powe_cost, double, doubleset, 0,
119     "Number of BTUs needed to generate a new power report")
120 EMPCFBOTH("war_cost", War_Cost, int, intset, 0,
121     "Cost to declare war (if SLOW_WAR is on)")
122
123 EMPCF_COMMENT("\n\n### Technology/Research/Education/Happiness")
124 EMPCFBOTH("easy_tech", easy_tech, float, floatset, 0,
125     "Amount of tech built with no penalty")
126 EMPCFBOTH("hard_tech", hard_tech, float, floatset, 0,
127     "Amount of in-efficiently built tech")
128 EMPCFBOTH("start_tech", start_technology, float, floatset, 0,
129     "Starting technology for new countries")
130 EMPCFBOTH("start_happy", start_happiness, float, floatset, 0,
131     "Starting happiness for new countries")
132 EMPCFBOTH("start_research", start_research, float, floatset, 0,
133     "Starting research for new countries")
134 EMPCFBOTH("start_edu", start_education, float, floatset, 0,
135     "Starting education for new countries")
136 EMPCFBOTH("level_age_rate", level_age_rate, float, floatset, 0,
137     "ETU rate at which tech decays (0 -> no decline)")
138 EMPCFBOTH("tech_log_base", tech_log_base, float, floatset, 0,
139     "Log base to apply to tech breakthroughs above the easy tech level")
140 EMPCFBOTH("ally_factor", ally_factor, float, floatset, 0,
141     "Shared tech with allies (1 / ally_factor)")
142 EMPCFBOTH("edu_avg", edu_avg, float, floatset, 0,
143     "Number of ETUs education is averaged over")
144 EMPCFBOTH("hap_avg", hap_avg, float, floatset, 0,
145     "Number of ETUs happiness is averaged over")
146 EMPCFBOTH("edu_cons", edu_cons, double, doubleset, 0,
147     "Education consumption (1 breakthrough per edu_cons)")
148 EMPCFBOTH("hap_cons", hap_cons, double, doubleset, 0,
149     "Happiness consumption (1 breakthrough per hap_cons)")
150
151 EMPCF_COMMENT("\n\n### Sectors")
152 EMPCFBOTH("startmob", startmob, int, intset, 0,
153     "Starting mobility for sanctuaries")
154 EMPCFBOTH("sect_mob_scale", sect_mob_scale, float, floatset, 0,
155     "Sector mobility accumulation (sect_mob_scale * ETUs per update)")
156 EMPCFBOTH("sect_mob_max", sect_mob_max, int, intset, 0,
157     "Maximum mobility for sectors")
158 EMPCFBOTH("buil_bh", buil_bh, int, intset, 0,
159     "Number of hcms required to build a bridge span")
160 EMPCFBOTH("buil_bc", buil_bc, double, doubleset, 0,
161     "Cash required to build a bridge span")
162 EMPCFBOTH("buil_bt", buil_bt, double, doubleset, 0,
163     "Technology required to build a bridge span")
164 EMPCFBOTH("buil_tower_bh", buil_tower_bh, int, intset, 0,
165     "Number of hcms required to build a bridge tower")
166 EMPCFBOTH("buil_tower_bc", buil_tower_bc, double, doubleset, 0,
167     "Cash required to build a bridge tower")
168 EMPCFBOTH("buil_tower_bt", buil_tower_bt, double, doubleset, 0,
169     "Technology required to build a bridge tower")
170
171 EMPCF_COMMENT("\n\n### Land Units")
172 EMPCFBOTH("land_mob_scale", land_mob_scale, float, floatset, 0,
173     "Land unit mobility accumulation (land_mob_scale * ETUs per update)")
174 EMPCFBOTH("land_grow_scale", land_grow_scale, int, intset, 0,
175     "How fast efficiency grows for land units each update (* ETUs)")
176 EMPCFBOTH("land_mob_max", land_mob_max, int, intset, 0,
177     "Maximum mobility for land units")
178 EMPCFBOTH("money_land", money_land, double, doubleset, 0,
179     "Cost per ETU to maintain land units (percentage of unit price)")
180 EMPCFBOTH("morale_base", morale_base, int, intset, 0,
181     "Base level for setting morale of land units")
182
183 EMPCF_COMMENT("\n\n### Planes")
184 EMPCFBOTH("plane_mob_scale", plane_mob_scale, float, floatset, 0,
185     "Plane mobility accumulation (plane_mob_scale * ETUs per update)")
186 EMPCFBOTH("plane_grow_scale", plane_grow_scale, int, intset, 0,
187     "How fast efficiency grows for planes each update (* ETUs)")
188 EMPCFBOTH("plane_mob_max", plane_mob_max, int, intset, 0,
189     "Maximum mobility for planes")
190 EMPCFBOTH("money_plane", money_plane, double, doubleset, 0,
191     "Cost per ETU to maintain planes (percentage of plane price)")
192
193 EMPCF_COMMENT("\n\n### Ships")
194 EMPCFBOTH("ship_mob_scale", ship_mob_scale, float, floatset, 0,
195     "Ship mobility accumulation (ship_mob_scale * ETUs per update)")
196 EMPCFBOTH("ship_grow_scale", ship_grow_scale, int, intset, 0,
197     "How fast efficiency grows for ships each update (* ETUs)")
198 EMPCFBOTH("ship_mob_max", ship_mob_max, int, intset, 0,
199     "Maximum mobility for ships")
200 EMPCFBOTH("money_ship", money_ship, double, doubleset, 0,
201     "Cost per ETU to maintain ships (percentage of ship price)")
202 EMPCFBOTH("torpedo_damage", torpedo_damage, int, intset, 0,
203     "Torpedo damage (damage is X + 1dX + 1dX)")
204
205 EMPCF_COMMENT("\n\n### Combat/Damage")
206 EMPCFBOTH("fort_max_interdiction_range", fort_max_interdiction_range, int, intset, 0,
207     "Maximum range (in sectors) a fort will try to interdict another country")
208 EMPCFBOTH("land_max_interdiction_range", land_max_interdiction_range, int, intset, 0,
209     "Maximum range (in sectors) a land unit will try to interdict another country")
210 EMPCFBOTH("ship_max_interdiction_range", ship_max_interdiction_range, int, intset, 0,
211     "Maximum range (in sectors) a ship will try to interdict another country")
212 EMPCFBOTH("flakscale", flakscale, double, doubleset, 0,
213     "Scale factor for flak damage")
214 EMPCFBOTH("combat_mob", combat_mob, double, doubleset, 0,
215     "How much mobility do units spend for combat (* casualties/bodies)")
216 EMPCFBOTH("people_damage", people_damage, double, doubleset, 0,
217     "People take this amount of normal damage")
218 EMPCFBOTH("unit_damage", unit_damage, double, doubleset, 0,
219     "Land units take this amount of normal damage")
220 EMPCFBOTH("collateral_dam", collateral_dam, double, doubleset, 0,
221     "Side effect damage amount done to sector")
222 EMPCFBOTH("assault_penalty", assault_penalty, double, doubleset, 0,
223     "Amount of normal attacking efficiency for paratroopers and assaulting")
224 EMPCFBOTH("fire_range_factor", fire_range_factor, float, floatset, 0,
225     "Scale normal firing ranges by this amount")
226 EMPCFBOTH("sect_mob_neg_factor", sect_mob_neg_factor, int, intset, 0,
227     "Amount of negative mobility a sector has after takeover (ETU / x) (MOB_ACCESS)")
228 EMPCFBOTH("mission_mob_cost", mission_mob_cost, double, doubleset, 0,
229     "Cost to put something on a mission (percentage of max mob)")
230
231 EMPCF_COMMENT("\n\n### Populace")
232 EMPCFBOTH("uwbrate", uwbrate, double, doubleset, 0,
233     "Birth rate for uw's")
234 EMPCFBOTH("money_civ", money_civ, double, doubleset, 0,
235     "Money gained from taxes on a civilian in one ETU")
236 EMPCFBOTH("money_mil", money_mil, double, doubleset, 0,
237     "Money gained from taxes on an active soldier in one ETU")
238 EMPCFBOTH("money_res", money_res, double, doubleset, 0,
239     "Money gained from taxes on a soldier on active reserve in one ETU")
240 EMPCFBOTH("money_uw", money_uw, double, doubleset, 0,
241     "Money gained from taxes on an uncompensated worker in one ETU")
242 EMPCFBOTH("babyeat", babyeat, double, doubleset, 0,
243     "Amount of food to mature 1 baby into a civilian")
244 EMPCFBOTH("bankint", bankint, double, doubleset, 0,
245     "Bank dollar gain (per bar per etu)")
246 EMPCFBOTH("eatrate", eatrate, double, doubleset, 0,
247     "Food eating rate for mature people")
248 EMPCFBOTH("fcrate", fcrate, double, doubleset, 0,
249     "Food cultivation rate (* workforce in sector)")
250 EMPCFBOTH("fgrate", fgrate, double, doubleset, 0,
251     "Food growth rate (* fertility of sector)")
252 EMPCFBOTH("obrate", obrate, double, doubleset, 0,
253     "Civilian birth rate")
254 EMPCFBOTH("rollover_avail_max", rollover_avail_max, int, intset, 0,
255     "Maximum avail that can roll over an update")
256
257 EMPCF_COMMENT("\n\n### Nukes")
258 EMPCFBOTH("decay_per_etu", decay_per_etu, double, doubleset, 0,
259     "Decay of fallout per ETU")
260 EMPCFBOTH("fallout_spread", fallout_spread, double, doubleset, 0,
261     "Amount of fallout that leaks into surrounding sectors")
262 EMPCFBOTH("drnuke_const", drnuke_const, float, floatset, 0,
263     "Amount of research to tech needed to build a nuke (if DR_NUKE is on)")
264
265 EMPCF_COMMENT("\n\n### Market/Trade")
266 EMPCFBOTH("MARK_DELAY", MARK_DELAY, int, intset, 0,
267     "Number of seconds commodities stay on the market for bidding")
268 EMPCFBOTH("TRADE_DELAY", TRADE_DELAY, int, intset, 0,
269     "Number of seconds ships, planes, and units stay on the market for bidding")
270 EMPCFBOTH("buytax", buytax, double, doubleset, 0,
271     "Tax (in percentage points) charged to the buyer on market purchases")
272 EMPCFBOTH("tradetax", tradetax, double, doubleset, 0,
273     "Amount of a trade transaction the seller makes (the rest is tax)")
274
275 EMPCF_COMMENT("\n\n### Trade ships")
276 EMPCFBOTH("trade_1_dist", trade_1_dist, int, intset, 0,
277     "Less than this distance no money for cashing in")
278 EMPCFBOTH("trade_2_dist", trade_2_dist, int, intset, 0,
279     "Less than this distance gets trade_1 money for cashing in")
280 EMPCFBOTH("trade_3_dist", trade_3_dist, int, intset, 0,
281     "Less than this distance gets trade_2 money for cashing in (>= gets trade_3")
282 EMPCFBOTH("trade_1", trade_1, float, floatset, 0,
283     "Return per sector on trade_1 distance amount")
284 EMPCFBOTH("trade_2", trade_2, float, floatset, 0,
285     "Return per sector on trade_2 distance amount")
286 EMPCFBOTH("trade_3", trade_3, float, floatset, 0,
287     "Return per sector on trade_3 distance amount")
288 EMPCFBOTH("trade_ally_bonus", trade_ally_bonus, float, floatset, 0,
289     "Bonus you get for cashing in with an ally")
290 EMPCFBOTH("trade_ally_cut", trade_ally_cut, float, floatset, 0,
291     "Bonus your ally gets for you cashing in with them")
292
293 EMPCF_COMMENT("\n\n### Misc.")
294 EMPCFBOTH("anno_keep_days", anno_keep_days, int, intset, 7,
295           "How long until announcements expire (<0 means never)")
296 EMPCFBOTH("fuel_mult", fuel_mult, int, intset, 0,
297     "Multiplier for fuel to mobility calculation")
298 EMPCFBOTH("lost_items_timeout", lost_items_timeout, int, intset, 0,
299     "Seconds before a lost item is timed out of the database")
300
301 EMPCFONLYC(NULL, emp_config_dummy, NULL, NULL, 0, NULL)
302
303 #undef  EMPCFONLYC
304 #undef  EMPCFBOTH
305 #undef EMPCF_COMMENT