/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2004, Dave Pare, Jeff Bailey, Thomas Ruschak,
- * Ken Stevens, Steve McClure
+ * Copyright (C) 1986-2015, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Ken Stevens, Steve McClure, Markus Armbruster
*
- * This program is free software; you can redistribute it and/or modify
+ * Empire 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
+ * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* ---
*
- * 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.
+ * See files README, COPYING and CREDITS in the root of the source
+ * tree for related information and legal notices. It is expected
+ * that future projects/authors will amend these files as needed.
*
* ---
*
- * constants.c: Global constants file. Note that the "hours" file can
- * override these, as does the global "econfig" file.
- *
+ * constants.c: Global constants
+ *
* Known contributors to this file:
* Ken Stevens, 1995
* Steve McClure, 1996
- *
+ * Markus Armbruster, 2004-2014
*/
-#include "gamesdef.h"
-#include "misc.h"
+#include <config.h>
+
+#include "optlist.h"
+
+/* Name of the deity */
+char *privname = "Deity forgot to edit econfig";
+/* E-mail of the deity */
+char *privlog = "careless@invalid";
+/* Divine hosts and networks */
+char *privip = "127.0.0.1 ::1";
+
+char *post_crash_dump_hook = "";
-char *privname = PRVNAM; /* name of priv user */
-char *privlog = PRVLOG; /* logname of priv user */
+char *disabled_commands = "";
-int WORLD_X = DEF_WORLD_X; /* World size - x */
-int WORLD_Y = DEF_WORLD_Y; /* World size - y */
+int running_test_suite = 0; /* For use by "make check" only */
+
+int keep_journal = 0; /* journal log file enabled */
+
+int WORLD_X = 64; /* World size - x */
+int WORLD_Y = 32; /* World size - y */
int MARK_DELAY = 7200; /* Seconds to bid on commodities */
int TRADE_DELAY = 7200; /* Seconds to bid on units */
int m_m_p_d = 1440; /* max mins of play per day (per country) */
-int s_p_etu = DEF_S_P_ETU; /* seconds per Empire time unit */
-int etu_per_update = ETUS; /* # of etu's per update, from misc.h */
-int adj_update = 0; /* update time adjustment */
-int update_window = 0; /* update window adjustment */
-int hourslop = 5; /* amount of slop to match update times */
-char *update_times = ""; /* times regular update is allowed */
-int update_policy = 0; /* update policy for regular updates */
-int update_demandpolicy = 2; /* update policy for demand updates */
-int update_missed = 999; /* demand updates missed before veto */
-int update_wantmin = 0; /* number of votes required for demand update */
-int blitz_time = 10; /* number of minutes between blitz updates */
-char *update_demandtimes = ""; /* times demand update is allowed */
+int etu_per_update = 60; /* # of etu's per update */
+int update_window = 0; /* update window adjustment, in seconds */
+int update_demand = UPD_DEMAND_NONE;
+int update_wantmin = 1; /* votes required for demand update */
+char *update_demandtimes = ""; /* demand update time ranges */
char *game_days = ""; /* days game is running */
char *game_hours = ""; /* hours game is running */
char *pre_update_hook = "";
int max_idle = 15; /* session dies after max_idle minutes idle */
+int max_idle_visitor = 5; /* same for visitors */
+int login_grace_time = 120; /* Grace time for completing login (sec) */
int sect_mob_max = 127; /* sector mobility limits */
float sect_mob_scale = 1.0; /* accumulation multiplier */
a sector has after being taken */
int anno_keep_days = 7; /* How long until annos expire (<0 never) */
-int news_keep_days = 10; /* How long until news expire (<0 never) */
-int lost_items_timeout = 172800; /* How long before removing from database */
+int news_keep_days = 10; /* How long until news expire */
+int lost_keep_hours = 48; /* How long until lost items expire */
double combat_mob = 5.0; /* how much mob do units spend for combat? */
int ship_max_interdiction_range = 8;
int land_max_interdiction_range = 8;
-double mission_mob_cost = 0.0; /* Cost is percentage of max mob */
-
double unit_damage = 0.30; /* Units take this fraction of normal damage */
double people_damage = 1.00; /* Civs/mil/uw take this fraction of damage */
double collateral_dam = 0.10; /* Side effect damage to sector */
double assault_penalty = 0.50; /* attack factor for para & assault troops */
-/* START_UNITS */
-#ifdef START_UNITS
-int start_unit_type[START_UNITS] = { 0, 1 }; /* type of unit */
-#endif /* START_UNITS */
-
-/* opt_FUEL */
-int fuel_mult = 10; /* 1 fuel = 10 mob */
-
-int land_grow_scale = 2; /* how fast eff grows for land units (xETUS) */
-int ship_grow_scale = 3; /* how fast eff grows for ships (xETUS) */
-int plane_grow_scale = 2; /* how fast eff grows for planes (xETUS) */
+float land_grow_scale = 2.0; /* how fast eff grows for land units (xETUS) */
+float ship_grow_scale = 3.0; /* how fast eff grows for ships (xETUS) */
+float plane_grow_scale = 2.0; /* how fast eff grows for planes (xETUS) */
double fgrate = 0.0012; /* food growth rate (dt * fert) */
double fcrate = 0.0013; /* food cultivate rate (dt * workforce) */
double eatrate = 0.0005; /* food eating rate (dt * people) */
-/*double eatrate = 0.0001;*//* food eating rate (dt * people) */
double babyeat = 0.0060; /* food to mature 1 baby into a civilian */
-/*double babyeat = 0.0000;*//* food to mature 1 baby into a civilian */
double obrate = 0.005; /* other sectors birth rate */
double uwbrate = 0.0025; /* uncompensated worker birth rate */
/* values > 0.25 for either will overflow */
-int rollover_avail_max = 0; /* max. avail that can roll over an update */
+int rollover_avail_max = 50; /* max. avail that can roll over an update */
/* opt_FALLOUT */
-/* these are the radioactive decay constants */
-/* fraction of commodity destroyed is
- etus*fallout/(1000*melt_item_denom[item])
- higher denominators for tougher commodities */
-int melt_item_denom[] =
- /* civ mil shell gun pet iron dust bar */
-{ 0, 4, 20, 80, 100, 50, 100, 100, 200,
- 2, 50, 100, 100, 2, 1000
-};
- /*food oil lcm hcm UW rads */
double decay_per_etu = 0.006; /* This gives a half life of ? etus,
about ? days.
half life in Jt
you can not get a precise number
without intensive simulation
(more than 3 digits). */
-double fallout_spread = 0.005; /* fraction of fallout that leaks into
+double fallout_spread = 0.005; /* fraction of fallout that leaks into
each surrounding sector */
/* end opt_FALLOUT */
/* Note in the taxes below:
tradetax - this is charged to the seller, so it is < 1 (because the seller
- gets the (price paid * tradetax)
+ gets the (price paid * tradetax)
buytax - this is charged to the buyer, so it is > 1 (because the buyer is
- charged (price paid * buytax).
+ charged (price paid * buytax).
Not perfect, but it works. :) */
double tradetax = 0.99; /* Tax charged on trade */
double edu_cons = 600000.0;
/* hap and edu avg mean that the weight on current happiness is
- * (cur_hap * hap_avg + hap_prod * etu) / (hap_avg + etu); */
+ * (cur_hap * hap_avg + hap_prod * etu) / (hap_avg + etu); */
float hap_avg = 16.0 * 3.0;
float edu_avg = 16.0 * 12.0;
float btu_build_rate = 0.0012; /* etu * civ * eff * btu_build_rate */
/* 8 * 999 * 100 * 0.0004 = 319 */
int max_btus = 640; /* maximum # of btu's */
-double powe_cost = 10.0; /* btu cost to gen a power report */
double buil_bt = 10.0; /* tech level required to build a bridge */
int buil_bh = 100; /* hcm required to build a bridge */
-double buil_bc = 2000.0; /* cash required to build a bridge */
+double buil_bc = 1000.0; /* cash required to build a bridge */
double buil_tower_bt = 100.0; /* tech level required to build a tower */
-int buil_tower_bh = 400; /* hcm required to build a bridge tower */
-double buil_tower_bc = 7500.0; /* cash required to build a bridge tower */
-
-/* opt_SLOW_WAR */
-int War_Cost = 1000; /* Cost to declare war */
+int buil_tower_bh = 300; /* hcm required to build a bridge tower */
+double buil_tower_bc = 3000.0; /* cash required to build a bridge tower */
-/* opt_DRNUKE */
-float drnuke_const = .33; /* research must be at least drnuke_const*tech */
+float drnuke_const = 0.0; /* research must be at least drnuke_const*tech */
/* in order to build a nuke. For example, if
* drnuke_const is .25, you need a 75 res to
* build a nuke that takes 300 tech
*/
-/* opt_TRADESHIPS */
+/* trade ships */
int trade_1_dist = 8; /* less than this gets no money */
int trade_2_dist = 14; /* less than this gets trade_1 money */
int trade_3_dist = 25; /* less than this gets trade_2 money */
float trade_3 = 0.050; /* return on trade_3 distance */
float trade_ally_bonus = 0.20; /* 20% bonus for trading with allies */
float trade_ally_cut = 0.10; /* 10% bonus for ally you trade with */
-/* end opt_TRADESHIPS */
int torpedo_damage = 40; /* damage is X + 1dX + 1dX, so 40+1d40+1d40 */
+int start_cash = 25000;
+
/* initial levels */
float start_education = 0.0;
float start_happiness = 0.0;
float start_technology = 0.0;
float start_research = 0.0;
+
+/* econfig keys */
+static int emp_config_dummy;
+struct keymatch configkeys[] = {
+#define EMP_CONFIG_C_OUTPUT
+#include "econfig-spec.h"
+#undef EMP_CONFIG_C_OUTPUT
+};