X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Fupdate.h;h=a81684e33a4cfb536434df2437d6aeac89df8b5a;hp=3cfc1794f3bd1ae6134821e3e6f471053b2b72b0;hb=4a714a37d;hpb=df4925d696e7ec0fc03065058ac3cd00504bcce5 diff --git a/include/update.h b/include/update.h index 3cfc1794f..a81684e33 100644 --- a/include/update.h +++ b/include/update.h @@ -1,6 +1,6 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2013, Dave Pare, Jeff Bailey, Thomas Ruschak, + * Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak, * Ken Stevens, Steve McClure, Markus Armbruster * * Empire is free software: you can redistribute it and/or modify @@ -24,19 +24,131 @@ * * --- * - * 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 -#include "file.h" -#include "nat.h" -#include "optlist.h" -#include "prototypes.h" #include "sect.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