Combine the definitions of include/optlist.h and the use thereof in

src/lib/gen/emp_config.c into a single file: include/econfig-spec.h.
This commit is contained in:
Marc Olzheim 2004-08-20 15:44:24 +00:00
parent 19f567bccf
commit 739a695241
3 changed files with 311 additions and 366 deletions

305
include/econfig-spec.h Normal file
View file

@ -0,0 +1,305 @@
/*
* Empire - A multi-player, client/server Internet based war game.
* Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* ---
*
* 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.
*
* ---
*
* econfig-spec.h: Combined include for optlist.h and emp_config.c
*/
#if defined(EMP_CONFIG_C_OUTPUT)
#define EMPCFONLYC(fvname, vname, vtype, ctype, num, descr) \
{ (fvname), (ctype), ((caddr_t)&(vname)), (num), (descr) },
#define EMPCFBOTH(fvname, vname, vtype, ctype, num, descr) \
{ (fvname), (ctype), ((caddr_t)&(vname)), (num), (descr) },
#elif defined(EMP_CONFIG_H_OUTPUT)
#define EMPCFONLYC(fvname, vname, vtype, ctype, num, descr)
#define EMPCFBOTH(fvname, vname, vtype, ctype, num, descr) \
extern vtype vname;
#endif /* EMP_CONFIG_C_OUTPUT || EMP_CONFIG_H_OUTPUT */
/* things that can be changed */
EMPCFONLYC("", emp_config_dummy, int, intset, 0,
"\n### Server configuration and information")
EMPCFBOTH("data", datadir, s_char *, optstrset, 0,
"Directory the data is stored in")
EMPCFBOTH("info", infodir, s_char *, optstrset, 0,
"Directory the info pages are stored in")
EMPCFBOTH("port", loginport, s_char *, optstrset, 0,
"TCP/IP port the server will start up on")
EMPCFBOTH("privname", privname, s_char *, optstrset, 0,
"Name of the deity")
EMPCFBOTH("privlog", privlog, s_char *, optstrset, 0,
"E-mail of the deity")
EMPCFBOTH("WORLD_X", WORLD_X, int, worldxset, 0,
"World size X dimension (enforced to be even by subtracting 1 if necessary)")
EMPCFBOTH("WORLD_Y", WORLD_Y, int, intset, 0,
"World size Y dimension")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Update policy")
EMPCFBOTH("update_policy", update_policy, int, intset, 0,
"0 - normal, 1 - update_times, 2 - blitz, 3 - demand only")
EMPCFBOTH("etu_per_update", etu_per_update, int, intset, 0,
"Number of ETUs per update")
EMPCFBOTH("s_p_etu", s_p_etu, int, intset, 0,
"Seconds per etu, updates will occur every s_p_etu * etu_per_update seconds")
EMPCFBOTH("adj_update", adj_update, int, intset, 0,
"Move the update forward or backward (in seconds)")
EMPCFBOTH("update_window", update_window, int, intset, 0,
"Window the update will occur in (in seconds) before and after the update time")
EMPCFBOTH("update_times", update_times, s_char *, optstrset, 0,
"Times when updates occur under policy #1. Must coincide with schedule.")
EMPCFBOTH("hourslop", hourslop, int, intset, 0,
"Number of minutes update check can slip to match update_times")
EMPCFBOTH("blitz_time", blitz_time, int, intset, 0,
"Number of minutes between updates under policy #2.")
EMPCFONLYC("", emp_config_dummy, int, intset, 0,
"\n\n### Demand update policy")
EMPCFBOTH("update_demandpolicy", update_demandpolicy, int, intset, 0,
"0 - emp_tm checks, 1 - after setting, 2 - demand updates disabled")
EMPCFBOTH("update_wantmin", update_wantmin, int, intset, 0,
"number of requests needed for demand update")
EMPCFBOTH("update_missed", update_missed, int, intset, 0,
"number of demand updates country can miss before veto update")
EMPCFBOTH("update_demandtimes", update_demandtimes, s_char *, optstrset, 0,
"Times when demand updates can occur. Ranges CANNOT cross midnight.")
EMPCFONLYC("", emp_config_dummy, int, intset, 0,
"\n\n### Game hours restrictions")
EMPCFBOTH("game_days", game_days, s_char *, optstrset, 0,
"Days game is up and running (Su Mo Tu We Th Fr Sa)")
EMPCFBOTH("game_hours", game_hours, s_char *, optstrset, 0,
"Hours game is up and running (6:00-18:00)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Options\n")
EMPCFONLYC("option", emp_config_dummy, option, optionset, 0, NULL)
EMPCFONLYC("nooption", emp_config_dummy, nooption, optiondel, 0, NULL)
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Countries")
EMPCFBOTH("btu_build_rate", btu_build_rate, float, floatset, 0,
"Rate at which BTUs accumulate (etu * civ * eff * btu_build_rate)")
EMPCFBOTH("m_m_p_d", m_m_p_d, int, intset, 0,
"Maximum minutes per day a country is allowed to be logged in")
EMPCFBOTH("max_btus", max_btus, int, intset, 0,
"Maximum number of BTUs a country can have")
EMPCFBOTH("max_idle", max_idle, int, intset, 0,
"Maximum number of minutes a player can sit idle while logged in")
EMPCFBOTH("players_at_00", players_at_00, int, intset, 0,
"Players have their coordinate system at deity 0,0 (0 - no, 1 - yes)")
EMPCFBOTH("at_least_one_100", at_least_one_100, int, intset, 0,
"Initialize new countries with at least one sector with 100 of all resource")
EMPCFBOTH("powe_cost", powe_cost, double, doubleset, 0,
"Number of BTUs needed to generate a new power report")
EMPCFBOTH("war_cost", War_Cost, int, intset, 0,
"Cost to declare war (if SLOW_WAR is on)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0,
"\n\n### Technology/Research/Education/Happiness")
EMPCFBOTH("easy_tech", easy_tech, float, floatset, 0,
"Amount of tech built with no penalty")
EMPCFBOTH("hard_tech", hard_tech, float, floatset, 0,
"Amount of in-efficiently built tech")
EMPCFBOTH("start_tech", start_technology, float, floatset, 0,
"Starting technology for new countries")
EMPCFBOTH("start_happy", start_happiness, float, floatset, 0,
"Starting happiness for new countries")
EMPCFBOTH("start_research", start_research, float, floatset, 0,
"Starting research for new countries")
EMPCFBOTH("start_edu", start_education, float, floatset, 0,
"Starting education for new countries")
EMPCFBOTH("level_age_rate", level_age_rate, float, floatset, 0,
"ETU rate at which tech decays (0 -> no decline)")
EMPCFBOTH("tech_log_base", tech_log_base, float, floatset, 0,
"Log base to apply to tech breakthroughs above the easy tech level")
EMPCFBOTH("ally_factor", ally_factor, float, floatset, 0,
"Shared tech with allies (1 / ally_factor)")
EMPCFBOTH("edu_avg", edu_avg, float, floatset, 0,
"Number of ETUs education is averaged over")
EMPCFBOTH("hap_avg", hap_avg, float, floatset, 0,
"Number of ETUs happiness is averaged over")
EMPCFBOTH("edu_cons", edu_cons, double, doubleset, 0,
"Education consumption (1 breakthrough per edu_cons)")
EMPCFBOTH("hap_cons", hap_cons, double, doubleset, 0,
"Happiness consumption (1 breakthrough per hap_cons)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Sectors")
EMPCFBOTH("startmob", startmob, int, intset, 0,
"Starting mobility for sanctuaries")
EMPCFBOTH("sect_mob_scale", sect_mob_scale, float, floatset, 0,
"Sector mobility accumulation (sect_mob_scale * ETUs per update)")
EMPCFBOTH("sect_mob_max", sect_mob_max, int, intset, 0,
"Maximum mobility for sectors")
EMPCFBOTH("buil_bh", buil_bh, int, intset, 0,
"Number of hcms required to build a bridge span")
EMPCFBOTH("buil_bc", buil_bc, double, doubleset, 0,
"Cash required to build a bridge span")
EMPCFBOTH("buil_bt", buil_bt, double, doubleset, 0,
"Technology required to build a bridge span")
EMPCFBOTH("buil_tower_bh", buil_tower_bh, int, intset, 0,
"Number of hcms required to build a bridge tower")
EMPCFBOTH("buil_tower_bc", buil_tower_bc, double, doubleset, 0,
"Cash required to build a bridge tower")
EMPCFBOTH("buil_tower_bt", buil_tower_bt, double, doubleset, 0,
"Technology required to build a bridge tower")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Land Units")
EMPCFBOTH("land_mob_scale", land_mob_scale, float, floatset, 0,
"Land unit mobility accumulation (land_mob_scale * ETUs per update)")
EMPCFBOTH("land_grow_scale", land_grow_scale, int, intset, 0,
"How fast efficiency grows for land units each update (* ETUs)")
EMPCFBOTH("land_mob_max", land_mob_max, int, intset, 0,
"Maximum mobility for land units")
EMPCFBOTH("money_land", money_land, double, doubleset, 0,
"Cost per ETU to maintain land units (percentage of unit price)")
EMPCFBOTH("morale_base", morale_base, int, intset, 0,
"Base level for setting morale of land units")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Planes")
EMPCFBOTH("plane_mob_scale", plane_mob_scale, float, floatset, 0,
"Plane mobility accumulation (plane_mob_scale * ETUs per update)")
EMPCFBOTH("plane_grow_scale", plane_grow_scale, int, intset, 0,
"How fast efficiency grows for planes each update (* ETUs)")
EMPCFBOTH("plane_mob_max", plane_mob_max, int, intset, 0,
"Maximum mobility for planes")
EMPCFBOTH("money_plane", money_plane, double, doubleset, 0,
"Cost per ETU to maintain planes (percentage of plane price)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Ships")
EMPCFBOTH("ship_mob_scale", ship_mob_scale, float, floatset, 0,
"Ship mobility accumulation (ship_mob_scale * ETUs per update)")
EMPCFBOTH("ship_grow_scale", ship_grow_scale, int, intset, 0,
"How fast efficiency grows for ships each update (* ETUs)")
EMPCFBOTH("ship_mob_max", ship_mob_max, int, intset, 0,
"Maximum mobility for ships")
EMPCFBOTH("money_ship", money_ship, double, doubleset, 0,
"Cost per ETU to maintain ships (percentage of ship price)")
EMPCFBOTH("torpedo_damage", torpedo_damage, int, intset, 0,
"Torpedo damage (damage is X + 1dX + 1dX)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Combat/Damage")
EMPCFBOTH("fort_max_interdiction_range", fort_max_interdiction_range, int, intset, 0,
"Maximum range (in sectors) a fort will try to interdict another country")
EMPCFBOTH("land_max_interdiction_range", land_max_interdiction_range, int, intset, 0,
"Maximum range (in sectors) a land unit will try to interdict another country")
EMPCFBOTH("ship_max_interdiction_range", ship_max_interdiction_range, int, intset, 0,
"Maximum range (in sectors) a ship will try to interdict another country")
EMPCFBOTH("flakscale", flakscale, double, doubleset, 0,
"Scale factor for flak damage")
EMPCFBOTH("combat_mob", combat_mob, double, doubleset, 0,
"How much mobility do units spend for combat (* casualties/bodies)")
EMPCFBOTH("people_damage", people_damage, double, doubleset, 0,
"People take this amount of normal damage")
EMPCFBOTH("unit_damage", unit_damage, double, doubleset, 0,
"Land units take this amount of normal damage")
EMPCFBOTH("collateral_dam", collateral_dam, double, doubleset, 0,
"Side effect damage amount done to sector")
EMPCFBOTH("assault_penalty", assault_penalty, double, doubleset, 0,
"Amount of normal attacking efficiency for paratroopers and assaulting")
EMPCFBOTH("fire_range_factor", fire_range_factor, float, floatset, 0,
"Scale normal firing ranges by this amount")
EMPCFBOTH("sect_mob_neg_factor", sect_mob_neg_factor, int, intset, 0,
"Amount of negative mobility a sector has after takeover (ETU / x) (MOB_ACCESS)")
EMPCFBOTH("mission_mob_cost", mission_mob_cost, double, doubleset, 0,
"Cost to put something on a mission (percentage of max mob)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Populace")
EMPCFBOTH("uwbrate", uwbrate, double, doubleset, 0,
"Birth rate for uw's")
EMPCFBOTH("money_civ", money_civ, double, doubleset, 0,
"Money gained from taxes on a civilian in one ETU")
EMPCFBOTH("money_mil", money_mil, double, doubleset, 0,
"Money gained from taxes on an active soldier in one ETU")
EMPCFBOTH("money_res", money_res, double, doubleset, 0,
"Money gained from taxes on a soldier on active reserve in one ETU")
EMPCFBOTH("money_uw", money_uw, double, doubleset, 0,
"Money gained from taxes on an uncompensated worker in one ETU")
EMPCFBOTH("babyeat", babyeat, double, doubleset, 0,
"Amount of food to mature 1 baby into a civilian")
EMPCFBOTH("bankint", bankint, double, doubleset, 0,
"Bank dollar gain (per bar per etu)")
EMPCFBOTH("eatrate", eatrate, double, doubleset, 0,
"Food eating rate for mature people")
EMPCFBOTH("fcrate", fcrate, double, doubleset, 0,
"Food cultivation rate (* workforce in sector)")
EMPCFBOTH("fgrate", fgrate, double, doubleset, 0,
"Food growth rate (* fertility of sector)")
EMPCFBOTH("obrate", obrate, double, doubleset, 0,
"Civilian birth rate")
EMPCFBOTH("rollover_avail_max", rollover_avail_max, int, intset, 0,
"Maximum avail that can roll over an update")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Nukes")
EMPCFBOTH("decay_per_etu", decay_per_etu, double, doubleset, 0,
"Decay of fallout per ETU")
EMPCFBOTH("fallout_spread", fallout_spread, double, doubleset, 0,
"Amount of fallout that leaks into surrounding sectors")
EMPCFBOTH("drnuke_const", drnuke_const, float, floatset, 0,
"Amount of research to tech needed to build a nuke (if DR_NUKE is on)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Market/Trade")
EMPCFBOTH("MARK_DELAY", MARK_DELAY, int, intset, 0,
"Number of seconds commodities stay on the market for bidding")
EMPCFBOTH("TRADE_DELAY", TRADE_DELAY, int, intset, 0,
"Number of seconds ships, planes, and units stay on the market for bidding")
EMPCFBOTH("buytax", buytax, double, doubleset, 0,
"Tax (in percentage points) charged to the buyer on market purchases")
EMPCFBOTH("tradetax", tradetax, double, doubleset, 0,
"Amount of a trade transaction the seller makes (the rest is tax)")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Trade ships")
EMPCFBOTH("trade_1_dist", trade_1_dist, int, intset, 0,
"Less than this distance no money for cashing in")
EMPCFBOTH("trade_2_dist", trade_2_dist, int, intset, 0,
"Less than this distance gets trade_1 money for cashing in")
EMPCFBOTH("trade_3_dist", trade_3_dist, int, intset, 0,
"Less than this distance gets trade_2 money for cashing in (>= gets trade_3")
EMPCFBOTH("trade_1", trade_1, float, floatset, 0,
"Return per sector on trade_1 distance amount")
EMPCFBOTH("trade_2", trade_2, float, floatset, 0,
"Return per sector on trade_2 distance amount")
EMPCFBOTH("trade_3", trade_3, float, floatset, 0,
"Return per sector on trade_3 distance amount")
EMPCFBOTH("trade_ally_bonus", trade_ally_bonus, float, floatset, 0,
"Bonus you get for cashing in with an ally")
EMPCFBOTH("trade_ally_cut", trade_ally_cut, float, floatset, 0,
"Bonus your ally gets for you cashing in with them")
EMPCFONLYC("", emp_config_dummy, int, intset, 0, "\n\n### Misc.")
EMPCFBOTH("fuel_mult", fuel_mult, int, intset, 0,
"Multiplier for fuel to mobility calculation")
EMPCFBOTH("lost_items_timeout", lost_items_timeout, int, intset, 0,
"Seconds before a lost item is timed out of the database")
EMPCFBOTH("last_demand_update", last_demand_update, long, longset, 0,
"When was the last demand update occured")
EMPCFONLYC(NULL, emp_config_dummy, NULL, NULL, 0, NULL)
#undef EMPCFONLYC
#undef EMPCFBOTH

View file

@ -89,113 +89,9 @@ extern int opt_TREATIES;
extern int opt_UPDATESCHED; extern int opt_UPDATESCHED;
/* Game parameters, can be set in econfig */ /* Game parameters, can be set in econfig */
extern s_char *datadir; #define EMP_CONFIG_H_OUTPUT
extern s_char *infodir; #include "econfig-spec.h"
extern s_char *loginport; #undef EMP_CONFIG_H_OUTPUT
extern s_char *privname;
extern s_char *privlog;
extern int WORLD_X;
extern int WORLD_Y;
extern int update_policy;
extern int etu_per_update;
extern int s_p_etu;
extern int adj_update;
extern int update_window;
extern s_char *update_times;
extern int hourslop;
extern int blitz_time;
extern int update_demandpolicy;
extern int update_wantmin;
extern int update_missed;
extern s_char *update_demandtimes;
extern s_char *game_days;
extern s_char *game_hours;
extern float btu_build_rate;
extern int m_m_p_d;
extern int max_btus;
extern int max_idle;
extern int players_at_00;
extern int at_least_one_100;
extern double powe_cost;
extern int War_Cost;
extern float easy_tech;
extern float hard_tech;
extern float start_technology;
extern float start_happiness;
extern float start_research;
extern float start_education;
extern float level_age_rate;
extern float tech_log_base;
extern float ally_factor;
extern float edu_avg;
extern float hap_avg;
extern double edu_cons;
extern double hap_cons;
extern int startmob;
extern float sect_mob_scale;
extern int sect_mob_max;
extern int buil_bh;
extern double buil_bc;
extern double buil_bt;
extern int buil_tower_bh;
extern double buil_tower_bc;
extern double buil_tower_bt;
extern float land_mob_scale;
extern int land_grow_scale;
extern int land_mob_max;
extern double money_land;
extern int morale_base;
extern float plane_mob_scale;
extern int plane_grow_scale;
extern int plane_mob_max;
extern double money_plane;
extern float ship_mob_scale;
extern int ship_grow_scale;
extern int ship_mob_max;
extern double money_ship;
extern int torpedo_damage;
extern int fort_max_interdiction_range;
extern int land_max_interdiction_range;
extern int ship_max_interdiction_range;
extern double flakscale;
extern double combat_mob;
extern double people_damage;
extern double unit_damage;
extern double collateral_dam;
extern double assault_penalty;
extern float fire_range_factor;
extern int sect_mob_neg_factor;
extern double mission_mob_cost;
extern double uwbrate;
extern double money_civ;
extern double money_mil;
extern double money_res;
extern double money_uw;
extern double babyeat;
extern double bankint;
extern double eatrate;
extern double fcrate;
extern double fgrate;
extern double obrate;
extern int rollover_avail_max;
extern double decay_per_etu;
extern double fallout_spread;
extern float drnuke_const;
extern int MARK_DELAY;
extern int TRADE_DELAY;
extern double buytax;
extern double tradetax;
extern int trade_1_dist;
extern int trade_2_dist;
extern int trade_3_dist;
extern float trade_1;
extern float trade_2;
extern float trade_3;
extern float trade_ally_bonus;
extern float trade_ally_cut;
extern int fuel_mult;
extern int lost_items_timeout;
extern long last_demand_update;
/* Game parameters that cannot be set in econfig (yet) */ /* Game parameters that cannot be set in econfig (yet) */
extern int melt_item_denom[]; extern int melt_item_denom[];

View file

@ -74,265 +74,9 @@ static void worldxset(struct keymatch *kp, s_char **av);
/* things that can be changed */ /* things that can be changed */
struct keymatch configkeys[] = { struct keymatch configkeys[] = {
{"", intset, (caddr_t)&emp_config_dummy, 0, #define EMP_CONFIG_C_OUTPUT
"\n### Server configuration and information"}, #include "econfig-spec.h"
{"data", optstrset, (caddr_t)&datadir, 0, #undef EMP_CONFIG_C_OUTPUT
"Directory the data is stored in"},
{"info", optstrset, (caddr_t)&infodir, 0,
"Directory the info pages are stored in"},
{"port", optstrset, (caddr_t)&loginport, 0,
"TCP/IP port the server will start up on"},
{"privname", optstrset, (caddr_t)&privname, 0,
"Name of the deity"},
{"privlog", optstrset, (caddr_t)&privlog, 0,
"E-mail of the deity"},
{"WORLD_X", worldxset, (caddr_t)&WORLD_X, 0,
"World size X dimension (enforced to be even by subtracting 1 if necessary)"},
{"WORLD_Y", intset, (caddr_t)&WORLD_Y, 0,
"World size Y dimension"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Update policy"},
{"update_policy", intset, (caddr_t)&update_policy, 0,
"0 - normal, 1 - update_times, 2 - blitz, 3 - demand only"},
{"etu_per_update", intset, (caddr_t)&etu_per_update, 0,
"Number of ETUs per update"},
{"s_p_etu", intset, (caddr_t)&s_p_etu, 0,
"Seconds per etu, updates will occur every s_p_etu * etu_per_update seconds"},
{"adj_update", intset, (caddr_t)&adj_update, 0,
"Move the update forward or backward (in seconds)"},
{"update_window", intset, (caddr_t)&update_window, 0,
"Window the update will occur in (in seconds) before and after the update time"},
{"update_times", optstrset, (caddr_t)&update_times, 0,
"Times when updates occur under policy #1. Must coincide with schedule."},
{"hourslop", intset, (caddr_t)&hourslop, 0,
"Number of minutes update check can slip to match update_times"},
{"blitz_time", intset, (caddr_t)&blitz_time, 0,
"Number of minutes between updates under policy #2."},
{"", intset, (caddr_t)&emp_config_dummy, 0,
"\n\n### Demand update policy"},
{"update_demandpolicy", intset, (caddr_t)&update_demandpolicy, 0,
"0 - emp_tm checks, 1 - after setting, 2 - demand updates disabled"},
{"update_wantmin", intset, (caddr_t)&update_wantmin, 0,
"number of requests needed for demand update"},
{"update_missed", intset, (caddr_t)&update_missed, 0,
"number of demand updates country can miss before veto update"},
{"update_demandtimes", optstrset, (caddr_t)&update_demandtimes, 0,
"Times when demand updates can occur. Ranges CANNOT cross midnight."},
{"", intset, (caddr_t)&emp_config_dummy, 0,
"\n\n### Game hours restrictions"},
{"game_days", optstrset, (caddr_t)&game_days, 0,
"Days game is up and running (Su Mo Tu We Th Fr Sa)"},
{"game_hours", optstrset, (caddr_t)&game_hours, 0,
"Hours game is up and running (6:00-18:00)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Options\n"},
{"option", optionset, (caddr_t)NULL, 0, NULL},
{"nooption", optiondel, (caddr_t)NULL, 0, NULL},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Countries"},
{"btu_build_rate", floatset, (caddr_t)&btu_build_rate, 0,
"Rate at which BTUs accumulate (etu * civ * eff * btu_build_rate)"},
{"m_m_p_d", intset, (caddr_t)&m_m_p_d, 0,
"Maximum minutes per day a country is allowed to be logged in"},
{"max_btus", intset, (caddr_t)&max_btus, 0,
"Maximum number of BTUs a country can have"},
{"max_idle", intset, (caddr_t)&max_idle, 0,
"Maximum number of minutes a player can sit idle while logged in"},
{"players_at_00", intset, (caddr_t)&players_at_00, 0,
"Players have their coordinate system at deity 0,0 (0 - no, 1 - yes)"},
{"at_least_one_100", intset, (caddr_t)&at_least_one_100, 0,
"Initialize new countries with at least one sector with 100 of all resource"},
{"powe_cost", doubleset, (caddr_t)&powe_cost, 0,
"Number of BTUs needed to generate a new power report"},
{"war_cost", intset, (caddr_t)&War_Cost, 0,
"Cost to declare war (if SLOW_WAR is on)"},
{"", intset, (caddr_t)&emp_config_dummy, 0,
"\n\n### Technology/Research/Education/Happiness"},
{"easy_tech", floatset, (caddr_t)&easy_tech, 0,
"Amount of tech built with no penalty"},
{"hard_tech", floatset, (caddr_t)&hard_tech, 0,
"Amount of in-efficiently built tech"},
{"start_tech", floatset, (caddr_t)&start_technology, 0,
"Starting technology for new countries"},
{"start_happy", floatset, (caddr_t)&start_happiness, 0,
"Starting happiness for new countries"},
{"start_research", floatset, (caddr_t)&start_research, 0,
"Starting research for new countries"},
{"start_edu", floatset, (caddr_t)&start_education, 0,
"Starting education for new countries"},
{"level_age_rate", floatset, (caddr_t)&level_age_rate, 0,
"ETU rate at which tech decays (0 -> no decline)"},
{"tech_log_base", floatset, (caddr_t)&tech_log_base, 0,
"Log base to apply to tech breakthroughs above the easy tech level"},
{"ally_factor", floatset, (caddr_t)&ally_factor, 0,
"Shared tech with allies (1 / ally_factor)"},
{"edu_avg", floatset, (caddr_t)&edu_avg, 0,
"Number of ETUs education is averaged over"},
{"hap_avg", floatset, (caddr_t)&hap_avg, 0,
"Number of ETUs happiness is averaged over"},
{"edu_cons", doubleset, (caddr_t)&edu_cons, 0,
"Education consumption (1 breakthrough per edu_cons)"},
{"hap_cons", doubleset, (caddr_t)&hap_cons, 0,
"Happiness consumption (1 breakthrough per hap_cons)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Sectors"},
{"startmob", intset, (caddr_t)&startmob, 0,
"Starting mobility for sanctuaries"},
{"sect_mob_scale", floatset, (caddr_t)&sect_mob_scale, 0,
"Sector mobility accumulation (sect_mob_scale * ETUs per update)"},
{"sect_mob_max", intset, (caddr_t)&sect_mob_max, 0,
"Maximum mobility for sectors"},
{"buil_bh", intset, (caddr_t)&buil_bh, 0,
"Number of hcms required to build a bridge span"},
{"buil_bc", doubleset, (caddr_t)&buil_bc, 0,
"Cash required to build a bridge span"},
{"buil_bt", doubleset, (caddr_t)&buil_bt, 0,
"Technology required to build a bridge span"},
{"buil_tower_bh", intset, (caddr_t)&buil_tower_bh, 0,
"Number of hcms required to build a bridge tower"},
{"buil_tower_bc", doubleset, (caddr_t)&buil_tower_bc, 0,
"Cash required to build a bridge tower"},
{"buil_tower_bt", doubleset, (caddr_t)&buil_tower_bt, 0,
"Technology required to build a bridge tower"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Land Units"},
{"land_mob_scale", floatset, (caddr_t)&land_mob_scale, 0,
"Land unit mobility accumulation (land_mob_scale * ETUs per update)"},
{"land_grow_scale", intset, (caddr_t)&land_grow_scale, 0,
"How fast efficiency grows for land units each update (* ETUs)"},
{"land_mob_max", intset, (caddr_t)&land_mob_max, 0,
"Maximum mobility for land units"},
{"money_land", doubleset, (caddr_t)&money_land, 0,
"Cost per ETU to maintain land units (percentage of unit price)"},
{"morale_base", intset, (caddr_t)&morale_base, 0,
"Base level for setting morale of land units"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Planes"},
{"plane_mob_scale", floatset, (caddr_t)&plane_mob_scale, 0,
"Plane mobility accumulation (plane_mob_scale * ETUs per update)"},
{"plane_grow_scale", intset, (caddr_t)&plane_grow_scale, 0,
"How fast efficiency grows for planes each update (* ETUs)"},
{"plane_mob_max", intset, (caddr_t)&plane_mob_max, 0,
"Maximum mobility for planes"},
{"money_plane", doubleset, (caddr_t)&money_plane, 0,
"Cost per ETU to maintain planes (percentage of plane price)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Ships"},
{"ship_mob_scale", floatset, (caddr_t)&ship_mob_scale, 0,
"Ship mobility accumulation (ship_mob_scale * ETUs per update)"},
{"ship_grow_scale", intset, (caddr_t)&ship_grow_scale, 0,
"How fast efficiency grows for ships each update (* ETUs)"},
{"ship_mob_max", intset, (caddr_t)&ship_mob_max, 0,
"Maximum mobility for ships"},
{"money_ship", doubleset, (caddr_t)&money_ship, 0,
"Cost per ETU to maintain ships (percentage of ship price)"},
{"torpedo_damage", intset, (caddr_t)&torpedo_damage, 0,
"Torpedo damage (damage is X + 1dX + 1dX)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Combat/Damage"},
{"fort_max_interdiction_range", intset,
(caddr_t)&fort_max_interdiction_range, 0,
"Maximum range (in sectors) a fort will try to interdict another country"},
{"land_max_interdiction_range", intset,
(caddr_t)&land_max_interdiction_range, 0,
"Maximum range (in sectors) a land unit will try to interdict another country"},
{"ship_max_interdiction_range", intset,
(caddr_t)&ship_max_interdiction_range, 0,
"Maximum range (in sectors) a ship will try to interdict another country"},
{"flakscale", doubleset, (caddr_t)&flakscale, 0,
"Scale factor for flak damage"},
{"combat_mob", doubleset, (caddr_t)&combat_mob, 0,
"How much mobility do units spend for combat (* casualties/bodies)"},
{"people_damage", doubleset, (caddr_t)&people_damage, 0,
"People take this amount of normal damage"},
{"unit_damage", doubleset, (caddr_t)&unit_damage, 0,
"Land units take this amount of normal damage"},
{"collateral_dam", doubleset, (caddr_t)&collateral_dam, 0,
"Side effect damage amount done to sector"},
{"assault_penalty", doubleset, (caddr_t)&assault_penalty, 0,
"Amount of normal attacking efficiency for paratroopers and assaulting"},
{"fire_range_factor", floatset, (caddr_t)&fire_range_factor, 0,
"Scale normal firing ranges by this amount"},
{"sect_mob_neg_factor", intset, (caddr_t)&sect_mob_neg_factor, 0,
"Amount of negative mobility a sector has after takeover (ETU / x) (MOB_ACCESS)"},
{"mission_mob_cost", doubleset, (caddr_t)&mission_mob_cost, 0,
"Cost to put something on a mission (percentage of max mob)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Populace"},
{"uwbrate", doubleset, (caddr_t)&uwbrate, 0,
"Birth rate for uw's"},
{"money_civ", doubleset, (caddr_t)&money_civ, 0,
"Money gained from taxes on a civilian in one ETU"},
{"money_mil", doubleset, (caddr_t)&money_mil, 0,
"Money gained from taxes on an active soldier in one ETU"},
{"money_res", doubleset, (caddr_t)&money_res, 0,
"Money gained from taxes on a soldier on active reserve in one ETU"},
{"money_uw", doubleset, (caddr_t)&money_uw, 0,
"Money gained from taxes on an uncompensated worker in one ETU"},
{"babyeat", doubleset, (caddr_t)&babyeat, 0,
"Amount of food to mature 1 baby into a civilian"},
{"bankint", doubleset, (caddr_t)&bankint, 0,
"Bank dollar gain (per bar per etu)"},
{"eatrate", doubleset, (caddr_t)&eatrate, 0,
"Food eating rate for mature people"},
{"fcrate", doubleset, (caddr_t)&fcrate, 0,
"Food cultivation rate (* workforce in sector)"},
{"fgrate", doubleset, (caddr_t)&fgrate, 0,
"Food growth rate (* fertility of sector)"},
{"obrate", doubleset, (caddr_t)&obrate, 0,
"Civilian birth rate"},
{"rollover_avail_max", intset, (caddr_t)&rollover_avail_max, 0,
"Maximum avail that can roll over an update"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Nukes"},
{"decay_per_etu", doubleset, (caddr_t)&decay_per_etu, 0,
"Decay of fallout per ETU"},
{"fallout_spread", doubleset, (caddr_t)&fallout_spread, 0,
"Amount of fallout that leaks into surrounding sectors"},
{"drnuke_const", floatset, (caddr_t)&drnuke_const, 0,
"Amount of research to tech needed to build a nuke (if DR_NUKE is on)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Market/Trade"},
{"MARK_DELAY", intset, (caddr_t)&MARK_DELAY, 0,
"Number of seconds commodities stay on the market for bidding"},
{"TRADE_DELAY", intset, (caddr_t)&TRADE_DELAY, 0,
"Number of seconds ships, planes, and units stay on the market for bidding"},
{"buytax", doubleset, (caddr_t)&buytax, 0,
"Tax (in percentage points) charged to the buyer on market purchases"},
{"tradetax", doubleset, (caddr_t)&tradetax, 0,
"Amount of a trade transaction the seller makes (the rest is tax)"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Trade ships"},
{"trade_1_dist", intset, (caddr_t)&trade_1_dist, 0,
"Less than this distance no money for cashing in"},
{"trade_2_dist", intset, (caddr_t)&trade_2_dist, 0,
"Less than this distance gets trade_1 money for cashing in"},
{"trade_3_dist", intset, (caddr_t)&trade_3_dist, 0,
"Less than this distance gets trade_2 money for cashing in (>= gets trade_3"},
{"trade_1", floatset, (caddr_t)&trade_1, 0,
"Return per sector on trade_1 distance amount"},
{"trade_2", floatset, (caddr_t)&trade_2, 0,
"Return per sector on trade_2 distance amount"},
{"trade_3", floatset, (caddr_t)&trade_3, 0,
"Return per sector on trade_3 distance amount"},
{"trade_ally_bonus", floatset, (caddr_t)&trade_ally_bonus, 0,
"Bonus you get for cashing in with an ally"},
{"trade_ally_cut", floatset, (caddr_t)&trade_ally_cut, 0,
"Bonus your ally gets for you cashing in with them"},
{"", intset, (caddr_t)&emp_config_dummy, 0, "\n\n### Misc."},
{"fuel_mult", intset, (caddr_t)&fuel_mult, 0,
"Multiplier for fuel to mobility calculation"},
{"lost_items_timeout", intset, (caddr_t)&lost_items_timeout, 0,
"Seconds before a lost item is timed out of the database"},
{"last_demand_update", longset, (caddr_t)&last_demand_update, 0,
"When was the last demand update occured"},
{NULL, NULL, (caddr_t)0, 0, NULL}
}; };
static void fixup_files(void); static void fixup_files(void);