X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Foptlist.h;h=cd5153e729ad4ff3cd62df79d1476616d2bbf02e;hp=3b91c15bf77a2e8c0357199febff731f8780edd2;hb=HEAD;hpb=7f4e59fb8d147fb4a5670df69e1c73daa6595269 diff --git a/include/optlist.h b/include/optlist.h index 3b91c15bf..cd5153e72 100644 --- a/include/optlist.h +++ b/include/optlist.h @@ -1,11 +1,11 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak, - * Ken Stevens, Steve McClure + * Copyright (C) 1986-2021, 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, @@ -14,216 +14,67 @@ * 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 . * * --- * - * 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. * * --- * * optlist.h: Definitions of option listings - * + * * Known contributors to this file: * Ken Stevens, 1995 * Steve McClure, 1998 + * Markus Armbruster, 2004-2010 */ -#ifndef _OPTLIST_H_ -#define _OPTLIST_H_ - -struct option_list { - char *opt_key; - int *opt_valuep; -}; +#ifndef OPTLIST_H +#define OPTLIST_H -extern struct option_list Options[]; +#include "nsc.h" -/* Options, can be switched in econfig */ -extern int opt_ALL_BLEED; -extern int opt_BIG_CITY; -extern int opt_BLITZ; -extern int opt_BRIDGETOWERS; -extern int opt_DEFENSE_INFRA; -extern int opt_DEMANDUPDATE; -extern int opt_DRNUKE; -extern int opt_EASY_BRIDGES; -extern int opt_FALLOUT; -extern int opt_FUEL; -extern int opt_GODNEWS; -extern int opt_GO_RENEW; -extern int opt_HIDDEN; -extern int opt_INTERDICT_ATT; -extern int opt_LANDSPIES; -extern int opt_LOANS; -extern int opt_LOSE_CONTACT; -extern int opt_MARKET; -extern int opt_MOB_ACCESS; -extern int opt_NEUTRON; -extern int opt_NOFOOD; -extern int opt_NOMOBCOST; -extern int opt_NONUKES; -extern int opt_NO_FORT_FIRE; -extern int opt_NO_HCMS; -extern int opt_NO_LCMS; -extern int opt_NO_OIL; -extern int opt_NO_PLAGUE; -extern int opt_NUKEFAILDETONATE; -extern int opt_ORBIT; -extern int opt_PINPOINTMISSILE; -extern int opt_PLANENAMES; -extern int opt_RES_POP; -extern int opt_ROLLOVER_AVAIL; -extern int opt_SAIL; -extern int opt_SHIPNAMES; -extern int opt_SHOWPLANE; -extern int opt_SLOW_WAR; -extern int opt_SNEAK_ATTACK; -extern int opt_SUPER_BARS; -extern int opt_TECH_POP; -extern int opt_TRADESHIPS; -extern int opt_TREATIES; -extern int opt_UPDATESCHED; +extern char dflt_econfig[]; /* Game parameters, can be set in econfig */ -extern s_char *datadir; -extern s_char *infodir; -extern s_char *loginport; -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; +#define EMP_CONFIG_H_OUTPUT +#include "econfig-spec.h" +#undef EMP_CONFIG_H_OUTPUT -/* Game parameters that cannot be set in econfig (yet) */ -extern int melt_item_denom[]; -#ifdef START_UNITS -int start_unit_type[]; -#endif +extern char *configdir; +extern char *builtindir; +extern char *gamedir; +extern char *infodir; +extern char *schedulefil; -/* Variables that get values derived from econfig */ -extern s_char *upfil; -extern s_char *downfil; -extern s_char *disablefil; -extern s_char *banfil; -extern s_char *authfil; -extern s_char *annfil; -extern s_char *timestampfil; -extern s_char *teldir; -extern s_char *telfil; +extern char motdfil[]; +extern char downfil[]; +extern char annfil[]; +extern char teldir[]; + +enum { + KM_ALLOC = 1, /* memory allocated */ + KM_INTERNAL = 2, /* not to be disclosed to players */ + KM_OPTION = 4 /* historically an option */ +}; + +enum { + UPD_DEMAND_NONE, /* no demand updates */ + UPD_DEMAND_SCHED, /* scheduled updates are demand updates */ + UPD_DEMAND_ASYNC /* zdone triggers unscheduled update */ +}; struct keymatch { - s_char *km_key; /* the key */ - void (*km_func)(struct keymatch * kp, s_char **av); - /* the function to call if matches */ - caddr_t km_data; /* associated data */ + char *km_key; /* the key */ + enum nsc_type km_type; /* type of associated data */ + void *km_data; /* pointer to associated data */ int km_flags; /* useful flags */ -#define KM_ALLOC 0x01 /* memory allocated */ - s_char *km_comment; /* Comment (hopefully useful) */ + char *km_comment; /* Comment (hopefully useful) */ }; extern struct keymatch configkeys[]; -#endif /* _OPTLIST_H_ */ +#endif