X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Fupdate.h;h=a81684e33a4cfb536434df2437d6aeac89df8b5a;hp=c6ebe436ea9ada0e533ef194c7e514106d5312d3;hb=4a714a37d;hpb=345ad3dfe077b3c5c0a6613fbeff33f4adff1ad3 diff --git a/include/update.h b/include/update.h index c6ebe436e..a81684e33 100644 --- a/include/update.h +++ b/include/update.h @@ -1,11 +1,11 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2005, Dave Pare, Jeff Bailey, Thomas Ruschak, - * Ken Stevens, Steve McClure + * Copyright (C) 1986-2016, 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,36 +14,141 @@ * 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. * * --- * - * update.h: Include headers used for updates - * + * update.h: Definitions related to the update + * * Known contributors to this file: - * + * Ville Virrankoski, 1995 + * Markus Armbruster, 2004-2016 */ -#ifndef _UPDATE_H_ -#define _UPDATE_H_ +#ifndef UPDATE_H +#define UPDATE_H -#include "misc.h" -#include "queue.h" #include "sect.h" -#include "item.h" -#include "land.h" -#include "plane.h" -#include "ship.h" -#include "nat.h" -#include "nsc.h" -#include "product.h" -#include "prototypes.h" /* must come at end, after defines and typedefs */ - -#endif /* _UPDATE_H_ */ + +#define IMPORT 0 +#define EXPORT 1 + +enum { + BUDG_SHP_BUILD, + BUDG_SHP_MAINT, + BUDG_PLN_BUILD, + BUDG_PLN_MAINT, + BUDG_LND_BUILD, + BUDG_LND_MAINT, + BUDG_SCT_BUILD, + BUDG_SCT_MAINT, + BUDG_BLD_MAX = BUDG_SCT_MAINT +}; + +struct budg_item { + double money; /* money delta */ + int count; /* #things making/consuming the money */ +}; + +/* A nation's budget for an update */ +struct budget { + /* production by sector type */ + struct budg_item prod[SCT_TYPE_MAX + 1]; + /* building and maintenance */ + struct budg_item bm[BUDG_BLD_MAX + 1]; + /* population, taxes, military payroll, bank interest */ + struct budg_item civ, mil, uw, bars; + /* treasury */ + int start_money; /* at beginning of update */ + double money; /* current */ +}; + +/* main.c */ +extern struct budget nat_budget[MAXNOC]; +extern int pops[MAXNOC]; +extern int tpops[MAXNOC]; +/* nat.c */ +extern float levels[MAXNOC][4]; + +/* age.c */ +extern int age_people(int, int); +extern void age_levels(int); +/* anno.c */ +extern void delete_old_announcements(void); +/* bp.c */ +extern struct bp *bp_alloc(void); +extern void bp_set_from_sect(struct bp *, struct sctstr *); +extern void bp_to_sect(struct bp *, struct sctstr *); +/* deliver.c */ +extern void dodeliver(struct sctstr *); +/* distribute.c */ +extern int dodistribute(struct sctstr *, int, double); +/* finish.c */ +extern void finish_sects(int); +/* human.c */ +extern void do_feed(struct sctstr *, struct natstr *, int, int); +extern int feed_people(short *, int); +extern double food_needed(short *, int); +extern int famine_victims(short *, int); +/* land.c */ +extern void prod_land(int, int, struct bp *, int); +/* main.c */ +/* in server.h */ +/* material.c */ +extern int get_materials(struct sctstr *, short[], int); +/* mobility.c */ +extern void mob_sect(void); +extern void mob_ship(void); +extern void mob_land(void); +extern void mob_plane(void); +extern void sct_do_upd_mob(struct sctstr *sp); +extern void shp_do_upd_mob(struct shpstr *sp); +extern void lnd_do_upd_mob(struct lndstr *lp); +extern void pln_do_upd_mob(struct plnstr *pp); +/* move_sat.c */ +extern void move_sat(struct plnstr *); +/* nat.c */ +extern void prod_nat(int); +/* nxtitemp.c */ +/* in nsc.h */ +/* plague.c */ +extern void do_plague(struct sctstr *, int); +extern int plague_people(struct natstr *, short *, int *, int *, int); +/* plane.c */ +extern void prod_plane(int, int, struct bp *, int); +/* populace.c */ +extern void populace(struct sctstr *, int); +extern int total_work(int, int, int, int, int, int); +/* prepare.c */ +extern void prepare_sects(int); +extern void tax(struct sctstr *, int, int *); +extern void upd_slmilcosts(int, natid); +extern void bank_income(struct sctstr *, int); +extern void pay_reserve(struct natstr *, int); +/* produce.c */ +extern void produce(struct natstr *, struct sctstr *); +extern double prod_output(struct sctstr *, double); +extern double prod_materials_cost(struct pchrstr *, short[], int *); +extern double prod_resource_limit(struct pchrstr *, unsigned char *); +extern double prod_eff(int, float); +/* removewants.c */ +extern int update_removewants(void); +/* revolt.c */ +extern void revolt(struct sctstr *); +extern void guerrilla(struct sctstr *); +/* sect.c */ +extern double buildeff(struct sctstr *); +extern void do_fallout(struct sctstr *, int); +extern void spread_fallout(struct sctstr *, int); +extern void decay_fallout(struct sctstr *, int); +extern void produce_sect(struct natstr *, int, struct bp *); +/* ship.c */ +extern void prod_ship(int, int, struct bp *, int); + +#endif