]> git.pond.sub.org Git - empserver/blob - include/econfig-spec.h
(hard_tech): Unused, remove.
[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("start_tech", start_technology, float, floatset, 0,
127     "Starting technology for new countries")
128 EMPCFBOTH("start_happy", start_happiness, float, floatset, 0,
129     "Starting happiness for new countries")
130 EMPCFBOTH("start_research", start_research, float, floatset, 0,
131     "Starting research for new countries")
132 EMPCFBOTH("start_edu", start_education, float, floatset, 0,
133     "Starting education for new countries")
134 EMPCFBOTH("level_age_rate", level_age_rate, float, floatset, 0,
135     "ETU rate at which tech decays (0 -> no decline)")
136 EMPCFBOTH("tech_log_base", tech_log_base, float, floatset, 0,
137     "Log base to apply to tech breakthroughs above the easy tech level")
138 EMPCFBOTH("ally_factor", ally_factor, float, floatset, 0,
139     "Shared tech with allies (1 / ally_factor)")
140 EMPCFBOTH("edu_avg", edu_avg, float, floatset, 0,
141     "Number of ETUs education is averaged over")
142 EMPCFBOTH("hap_avg", hap_avg, float, floatset, 0,
143     "Number of ETUs happiness is averaged over")
144 EMPCFBOTH("edu_cons", edu_cons, double, doubleset, 0,
145     "Education consumption (1 breakthrough per edu_cons)")
146 EMPCFBOTH("hap_cons", hap_cons, double, doubleset, 0,
147     "Happiness consumption (1 breakthrough per hap_cons)")
148
149 EMPCF_COMMENT("\n\n### Sectors")
150 EMPCFBOTH("startmob", startmob, int, intset, 0,
151     "Starting mobility for sanctuaries")
152 EMPCFBOTH("sect_mob_scale", sect_mob_scale, float, floatset, 0,
153     "Sector mobility accumulation (sect_mob_scale * ETUs per update)")
154 EMPCFBOTH("sect_mob_max", sect_mob_max, int, intset, 0,
155     "Maximum mobility for sectors")
156 EMPCFBOTH("buil_bh", buil_bh, int, intset, 0,
157     "Number of hcms required to build a bridge span")
158 EMPCFBOTH("buil_bc", buil_bc, double, doubleset, 0,
159     "Cash required to build a bridge span")
160 EMPCFBOTH("buil_bt", buil_bt, double, doubleset, 0,
161     "Technology required to build a bridge span")
162 EMPCFBOTH("buil_tower_bh", buil_tower_bh, int, intset, 0,
163     "Number of hcms required to build a bridge tower")
164 EMPCFBOTH("buil_tower_bc", buil_tower_bc, double, doubleset, 0,
165     "Cash required to build a bridge tower")
166 EMPCFBOTH("buil_tower_bt", buil_tower_bt, double, doubleset, 0,
167     "Technology required to build a bridge tower")
168
169 EMPCF_COMMENT("\n\n### Land Units")
170 EMPCFBOTH("land_mob_scale", land_mob_scale, float, floatset, 0,
171     "Land unit mobility accumulation (land_mob_scale * ETUs per update)")
172 EMPCFBOTH("land_grow_scale", land_grow_scale, int, intset, 0,
173     "How fast efficiency grows for land units each update (* ETUs)")
174 EMPCFBOTH("land_mob_max", land_mob_max, int, intset, 0,
175     "Maximum mobility for land units")
176 EMPCFBOTH("money_land", money_land, double, doubleset, 0,
177     "Cost per ETU to maintain land units (percentage of unit price)")
178 EMPCFBOTH("morale_base", morale_base, int, intset, 0,
179     "Base level for setting morale of land units")
180
181 EMPCF_COMMENT("\n\n### Planes")
182 EMPCFBOTH("plane_mob_scale", plane_mob_scale, float, floatset, 0,
183     "Plane mobility accumulation (plane_mob_scale * ETUs per update)")
184 EMPCFBOTH("plane_grow_scale", plane_grow_scale, int, intset, 0,
185     "How fast efficiency grows for planes each update (* ETUs)")
186 EMPCFBOTH("plane_mob_max", plane_mob_max, int, intset, 0,
187     "Maximum mobility for planes")
188 EMPCFBOTH("money_plane", money_plane, double, doubleset, 0,
189     "Cost per ETU to maintain planes (percentage of plane price)")
190
191 EMPCF_COMMENT("\n\n### Ships")
192 EMPCFBOTH("ship_mob_scale", ship_mob_scale, float, floatset, 0,
193     "Ship mobility accumulation (ship_mob_scale * ETUs per update)")
194 EMPCFBOTH("ship_grow_scale", ship_grow_scale, int, intset, 0,
195     "How fast efficiency grows for ships each update (* ETUs)")
196 EMPCFBOTH("ship_mob_max", ship_mob_max, int, intset, 0,
197     "Maximum mobility for ships")
198 EMPCFBOTH("money_ship", money_ship, double, doubleset, 0,
199     "Cost per ETU to maintain ships (percentage of ship price)")
200 EMPCFBOTH("torpedo_damage", torpedo_damage, int, intset, 0,
201     "Torpedo damage (damage is X + 1dX + 1dX)")
202
203 EMPCF_COMMENT("\n\n### Combat/Damage")
204 EMPCFBOTH("fort_max_interdiction_range", fort_max_interdiction_range, int, intset, 0,
205     "Maximum range (in sectors) a fort will try to interdict another country")
206 EMPCFBOTH("land_max_interdiction_range", land_max_interdiction_range, int, intset, 0,
207     "Maximum range (in sectors) a land unit will try to interdict another country")
208 EMPCFBOTH("ship_max_interdiction_range", ship_max_interdiction_range, int, intset, 0,
209     "Maximum range (in sectors) a ship will try to interdict another country")
210 EMPCFBOTH("flakscale", flakscale, double, doubleset, 0,
211     "Scale factor for flak damage")
212 EMPCFBOTH("combat_mob", combat_mob, double, doubleset, 0,
213     "How much mobility do units spend for combat (* casualties/bodies)")
214 EMPCFBOTH("people_damage", people_damage, double, doubleset, 0,
215     "People take this amount of normal damage")
216 EMPCFBOTH("unit_damage", unit_damage, double, doubleset, 0,
217     "Land units take this amount of normal damage")
218 EMPCFBOTH("collateral_dam", collateral_dam, double, doubleset, 0,
219     "Side effect damage amount done to sector")
220 EMPCFBOTH("assault_penalty", assault_penalty, double, doubleset, 0,
221     "Amount of normal attacking efficiency for paratroopers and assaulting")
222 EMPCFBOTH("fire_range_factor", fire_range_factor, float, floatset, 0,
223     "Scale normal firing ranges by this amount")
224 EMPCFBOTH("sect_mob_neg_factor", sect_mob_neg_factor, int, intset, 0,
225     "Amount of negative mobility a sector has after takeover (ETU / x) (MOB_ACCESS)")
226 EMPCFBOTH("mission_mob_cost", mission_mob_cost, double, doubleset, 0,
227     "Cost to put something on a mission (percentage of max mob)")
228
229 EMPCF_COMMENT("\n\n### Populace")
230 EMPCFBOTH("uwbrate", uwbrate, double, doubleset, 0,
231     "Birth rate for uw's")
232 EMPCFBOTH("money_civ", money_civ, double, doubleset, 0,
233     "Money gained from taxes on a civilian in one ETU")
234 EMPCFBOTH("money_mil", money_mil, double, doubleset, 0,
235     "Money gained from taxes on an active soldier in one ETU")
236 EMPCFBOTH("money_res", money_res, double, doubleset, 0,
237     "Money gained from taxes on a soldier on active reserve in one ETU")
238 EMPCFBOTH("money_uw", money_uw, double, doubleset, 0,
239     "Money gained from taxes on an uncompensated worker in one ETU")
240 EMPCFBOTH("babyeat", babyeat, double, doubleset, 0,
241     "Amount of food to mature 1 baby into a civilian")
242 EMPCFBOTH("bankint", bankint, double, doubleset, 0,
243     "Bank dollar gain (per bar per etu)")
244 EMPCFBOTH("eatrate", eatrate, double, doubleset, 0,
245     "Food eating rate for mature people")
246 EMPCFBOTH("fcrate", fcrate, double, doubleset, 0,
247     "Food cultivation rate (* workforce in sector)")
248 EMPCFBOTH("fgrate", fgrate, double, doubleset, 0,
249     "Food growth rate (* fertility of sector)")
250 EMPCFBOTH("obrate", obrate, double, doubleset, 0,
251     "Civilian birth rate")
252 EMPCFBOTH("rollover_avail_max", rollover_avail_max, int, intset, 0,
253     "Maximum avail that can roll over an update")
254
255 EMPCF_COMMENT("\n\n### Nukes")
256 EMPCFBOTH("decay_per_etu", decay_per_etu, double, doubleset, 0,
257     "Decay of fallout per ETU")
258 EMPCFBOTH("fallout_spread", fallout_spread, double, doubleset, 0,
259     "Amount of fallout that leaks into surrounding sectors")
260 EMPCFBOTH("drnuke_const", drnuke_const, float, floatset, 0,
261     "Amount of research to tech needed to build a nuke (if DR_NUKE is on)")
262
263 EMPCF_COMMENT("\n\n### Market/Trade")
264 EMPCFBOTH("MARK_DELAY", MARK_DELAY, int, intset, 0,
265     "Number of seconds commodities stay on the market for bidding")
266 EMPCFBOTH("TRADE_DELAY", TRADE_DELAY, int, intset, 0,
267     "Number of seconds ships, planes, and units stay on the market for bidding")
268 EMPCFBOTH("buytax", buytax, double, doubleset, 0,
269     "Tax (in percentage points) charged to the buyer on market purchases")
270 EMPCFBOTH("tradetax", tradetax, double, doubleset, 0,
271     "Amount of a trade transaction the seller makes (the rest is tax)")
272
273 EMPCF_COMMENT("\n\n### Trade ships")
274 EMPCFBOTH("trade_1_dist", trade_1_dist, int, intset, 0,
275     "Less than this distance no money for cashing in")
276 EMPCFBOTH("trade_2_dist", trade_2_dist, int, intset, 0,
277     "Less than this distance gets trade_1 money for cashing in")
278 EMPCFBOTH("trade_3_dist", trade_3_dist, int, intset, 0,
279     "Less than this distance gets trade_2 money for cashing in (>= gets trade_3")
280 EMPCFBOTH("trade_1", trade_1, float, floatset, 0,
281     "Return per sector on trade_1 distance amount")
282 EMPCFBOTH("trade_2", trade_2, float, floatset, 0,
283     "Return per sector on trade_2 distance amount")
284 EMPCFBOTH("trade_3", trade_3, float, floatset, 0,
285     "Return per sector on trade_3 distance amount")
286 EMPCFBOTH("trade_ally_bonus", trade_ally_bonus, float, floatset, 0,
287     "Bonus you get for cashing in with an ally")
288 EMPCFBOTH("trade_ally_cut", trade_ally_cut, float, floatset, 0,
289     "Bonus your ally gets for you cashing in with them")
290
291 EMPCF_COMMENT("\n\n### Misc.")
292 EMPCFBOTH("anno_keep_days", anno_keep_days, int, intset, 0,
293           "How long until announcements expire (<0 means never)")
294 EMPCFBOTH("fuel_mult", fuel_mult, int, intset, 0,
295     "Multiplier for fuel to mobility calculation")
296 EMPCFBOTH("lost_items_timeout", lost_items_timeout, int, intset, 0,
297     "Seconds before a lost item is timed out of the database")
298
299 EMPCFONLYC(NULL, emp_config_dummy, NULL, NULL, 0, NULL)
300
301 #undef  EMPCFONLYC
302 #undef  EMPCFBOTH
303 #undef EMPCF_COMMENT