/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
- * Ken Stevens, Steve McClure
+ * Copyright (C) 1986-2020, 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/>.
*
* ---
*
* ---
*
* econfig-spec.h: Combined include for optlist.h and emp_config.c
- *
+ *
* Known contributors to this file:
* Marc Olzheim, 2004
- * Markus Armbruster, 2004-2008
+ * Markus Armbruster, 2004-2020
*/
/*
#if defined(EMP_CONFIG_C_OUTPUT)
-#define EMPCFONLYC(fvname, vname, vtype, ctype, flags, descr) \
+#define EMPCFONLYC(fvname, vname, vtype, ctype, flags, descr) \
{ (fvname), (ctype), &(vname), (flags), (descr) },
-#define EMPCFBOTH(fvname, vname, vtype, ctype, flags, descr) \
+#define EMPCFBOTH(fvname, vname, vtype, ctype, flags, descr) \
{ (fvname), (ctype), &(vname), (flags), (descr) },
#elif defined(EMP_CONFIG_H_OUTPUT)
-#define EMPCFONLYC(fvname, vname, vtype, ctype, flags, descr)
-#define EMPCFBOTH(fvname, vname, vtype, ctype, flags, descr) \
+#define EMPCFONLYC(fvname, vname, vtype, ctype, flags, descr)
+#define EMPCFBOTH(fvname, vname, vtype, ctype, flags, descr) \
extern vtype vname;
#endif /* EMP_CONFIG_C_OUTPUT || EMP_CONFIG_H_OUTPUT */
"# without installing it, else leave it alone.")
EMPCFBOTH("listen_addr", listen_addr, char *, NSC_STRING, KM_INTERNAL,
"Local IP address the server should listen on")
-EMPCF_COMMENT("# \"\" listens on all, localhost just on the loopback interface.")
+EMPCF_COMMENT("# \"\" listens on all, localhost just on the loopback interface.\n"
+ "# OpenBSD restriction: when the system has both IPv4 and IPv6\n"
+ "# addresses configured, \"\" listens on all IPv4 addresses, and \"::\"\n"
+ "# on all IPv6 addresses. There is no way to listen both on all IPv4\n"
+ "# and on all IPv6 interfaces.\n"
+ "# Systems using GNU libc such as Linux are frequently configured in a\n"
+ "# way that makes listen_addr "" listen only on all IPv4 addresses.\n"
+ "# You need to use \"::\" to listen on all IPv4 and IPv6 addresses.")
EMPCFBOTH("port", loginport, char *, NSC_STRING, KM_INTERNAL,
"TCP port the server will bind")
EMPCFBOTH("keep_journal", keep_journal, int, NSC_INT, KM_INTERNAL,
"Enable journal log file")
+EMPCF_COMMENT("# 0 - Disabled\n"
+ "# 1 - Enabled, player output suppressed\n"
+ "# 2 - Enabled, log everything (big; rotating & compressing advised)")
EMPCFBOTH("post_crash_dump_hook", post_crash_dump_hook, char *, NSC_STRING, KM_INTERNAL,
"Shell command run right after a crash dump, in the game's data directory")
EMPCFBOTH("privname", privname, char *, NSC_STRING, 0,
EMPCFBOTH("privip", privip, char *, NSC_STRING, KM_INTERNAL,
"Deities may connect from these IPs or networks, \"\" allows all")
EMPCFBOTH("WORLD_X", WORLD_X, int, NSC_INT, 0,
- "World size X dimension (enforced to be even by subtracting 1 if necessary)")
+ "World size X dimension, must be even")
EMPCFBOTH("WORLD_Y", WORLD_Y, int, NSC_INT, 0,
- "World size Y dimension")
+ "World size Y dimension, must be even")
EMPCF_COMMENT("\n\n### Update policy\n\n"
"# Note: the update schedule is defined in the file schedule in the\n"
"Enable blitz mode")
EMPCF_OPT("BRIDGETOWERS", opt_BRIDGETOWERS,
"Allow bridge towers")
+EMPCF_COMMENT("# If you enable this, make sure that bridge spans can produce\n"
+ "# sufficient avail. Depending on your etu_per_update, you may have\n"
+ "# to tweak buil_tower_bh, rollover_avail_max, or bridge span's maxpop.")
EMPCF_OPT("EASY_BRIDGES", opt_EASY_BRIDGES,
"Allow bridge building without bridge heads")
EMPCF_OPT("FALLOUT", opt_FALLOUT,
"Hide information between players")
EMPCF_OPT("INTERDICT_ATT", opt_INTERDICT_ATT,
"Interdict post-attack move in")
-EMPCF_OPT("LANDSPIES", opt_LANDSPIES,
- "Enable the land unit type spies")
EMPCF_OPT("LOANS", opt_LOANS,
"Allow bailing out of other countries via S&L scandals")
EMPCF_OPT("LOSE_CONTACT", opt_LOSE_CONTACT,
"Disable fortress fire")
EMPCF_OPT("NO_PLAGUE", opt_NO_PLAGUE,
"Disable plague")
-EMPCF_OPT("PINPOINTMISSILE", opt_PINPOINTMISSILE,
- "Enable marine missiles")
+EMPCF_OPT("RAILWAYS", opt_RAILWAYS,
+ "Highways double as rail")
EMPCF_OPT("RES_POP", opt_RES_POP,
"Population is limited by research")
-EMPCF_OPT("SAIL", opt_SAIL,
- "Enable sail command")
-EMPCF_OPT("SHOWPLANE", opt_SHOWPLANE,
- "Show planes and land units embarked on ships or land units up for trade")
-EMPCF_OPT("SLOW_WAR", opt_SLOW_WAR,
- "Declaring war takes time")
EMPCF_OPT("SUPER_BARS", opt_SUPER_BARS,
"Make bars immune to damage")
EMPCF_OPT("TECH_POP", opt_TECH_POP,
"Technology costs more as population rises")
-EMPCF_OPT("TRADESHIPS", opt_TRADESHIPS,
- "Enable Tradeships")
-EMPCF_OPT("TREATIES", opt_TREATIES,
- "Allow treaties")
EMPCF_COMMENT("\n\n### Countries")
EMPCFBOTH("btu_build_rate", btu_build_rate, float, NSC_FLOAT, 0,
"Maximum number of BTUs a country can have")
EMPCFBOTH("max_idle", max_idle, int, NSC_INT, 0,
"Maximum number of minutes a player can sit idle while logged in")
+EMPCFBOTH("max_idle_visitor", max_idle_visitor, int, NSC_INT, 0,
+ "Maximum number of minutes a visitor can sit idle while logged in")
+EMPCFBOTH("login_grace_time", login_grace_time, int, NSC_INT, 0,
+ "Grace time for clients to complete login and logout (seconds)")
EMPCFBOTH("players_at_00", players_at_00, int, NSC_INT, 0,
"Players have their coordinate system at deity 0,0 (0 - no, 1 - yes)")
EMPCFBOTH("at_least_one_100", at_least_one_100, int, NSC_INT, KM_INTERNAL,
"Initialize new countries with at least one sector with 100 of all resource")
-EMPCFBOTH("start_cash", start_cash, long, NSC_LONG, KM_INTERNAL,
+EMPCFBOTH("start_cash", start_cash, int, NSC_INT, KM_INTERNAL,
"Starting cash for new countries")
-EMPCFBOTH("war_cost", War_Cost, int, NSC_INT, 0,
- "Cost to declare war (if SLOW_WAR is on)")
EMPCF_COMMENT("\n\n### Technology/Research/Education/Happiness")
EMPCFBOTH("easy_tech", easy_tech, float, NSC_FLOAT, 0,
EMPCFBOTH("collateral_dam", collateral_dam, double, NSC_DOUBLE, 0,
"Side effect damage amount done to sector")
EMPCFBOTH("assault_penalty", assault_penalty, double, NSC_DOUBLE, 0,
- "Attack strength multiplier for paratroopers and assaulting")
+ "Land unit strength multiplier for assaulting and boarding")
EMPCFBOTH("fire_range_factor", fire_range_factor, float, NSC_FLOAT, 0,
"Scale normal firing ranges by this amount")
EMPCFBOTH("sect_mob_neg_factor", sect_mob_neg_factor, int, NSC_INT, 0,
"Initial mobility for MOB_ACCESS (-etu_per_update / sect_mob_neg_factor)")
EMPCF_COMMENT("# Applies to sector takeover, ship build, plane or land unit build, and trade.")
-EMPCFBOTH("mission_mob_cost", mission_mob_cost, double, NSC_DOUBLE, 0,
- "Cost to put something on a mission (percentage of max mob)")
EMPCF_COMMENT("\n\n### Populace")
EMPCFBOTH("uwbrate", uwbrate, double, NSC_DOUBLE, 0,
EMPCFBOTH("babyeat", babyeat, double, NSC_DOUBLE, 0,
"Amount of food to mature 1 baby into a civilian")
EMPCFBOTH("bankint", bankint, double, NSC_DOUBLE, 0,
- "Bank dollar gain (per bar per etu)")
+ "Bank dollar gain (per bar per ETU)")
EMPCFBOTH("eatrate", eatrate, double, NSC_DOUBLE, 0,
"Food eating rate for mature people")
EMPCFBOTH("fcrate", fcrate, double, NSC_DOUBLE, 0,
EMPCFBOTH("TRADE_DELAY", TRADE_DELAY, int, NSC_INT, 0,
"Time ships, planes, lands and nukes stay on the market for bidding (seconds)")
EMPCFBOTH("buytax", buytax, double, NSC_DOUBLE, 0,
- "Tax (in percentage points) charged to the buyer on market purchases")
+ "Multiple of the bid charged to the buyer on market purchases")
EMPCFBOTH("tradetax", tradetax, double, NSC_DOUBLE, 0,
"Amount of a trade transaction the seller makes (the rest is tax)")
EMPCF_COMMENT("\n\n### Miscellaneous")
EMPCFBOTH("disabled_commands", disabled_commands, char *, NSC_STRING, KM_INTERNAL,
- "Disabled commands, separated by space")
+ "Disabled commands, separated by space")
EMPCFBOTH("anno_keep_days", anno_keep_days, int, NSC_INT, KM_INTERNAL,
- "How long until announcements expire (<0 means never)")
+ "How long until announcements expire (<0 means never)")
EMPCFBOTH("news_keep_days", news_keep_days, int, NSC_INT, KM_INTERNAL,
- "How long until news expire")
-EMPCFBOTH("lost_items_timeout", lost_items_timeout, int, NSC_INT, KM_INTERNAL,
- "Seconds before a lost item is timed out of the database")
+ "How long until news expire")
+EMPCFBOTH("lost_keep_hours", lost_keep_hours, int, NSC_INT, KM_INTERNAL,
+ "How long until lost items expire")
+EMPCFBOTH("running_test_suite", running_test_suite, int, NSC_INT, KM_INTERNAL,
+ "Are we running the test suite? Must be 0 for games!")
/* Sentinel */
EMPCFONLYC(NULL, emp_config_dummy, NULL, NSC_NOTYPE, 0, NULL)