#define IMPORT 0
#define EXPORT 1
-#define SCT_EFFIC (SCT_TYPE_MAX + 1)
-#define SCT_MAINT (SCT_TYPE_MAX + 2)
-#define SCT_BUDG_MAX SCT_MAINT
+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 {
- int money; /* money delta */
+ double money; /* money delta */
int count; /* #things making/consuming the money */
};
/* A nation's budget for an update */
struct budget {
- /* military payroll */
- struct budg_item mil;
+ /* 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 money[MAXNOC];
extern int pops[MAXNOC];
-extern int sea_money[MAXNOC];
-extern int lnd_money[MAXNOC];
-extern int air_money[MAXNOC];
extern int tpops[MAXNOC];
/* nat.c */
extern float levels[MAXNOC][4];
extern double food_needed(short *, int);
extern int famine_victims(short *, int);
/* land.c */
-extern int prod_land(int, int, struct bp *, int);
+extern void prod_land(int, int, struct bp *, int);
/* main.c */
/* in server.h */
/* material.c */
extern void do_plague(struct sctstr *, int);
extern int plague_people(struct natstr *, short *, int *, int *, int);
/* plane.c */
-extern int prod_plane(int, int, struct bp *, int);
+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 *, int *, int *);
+extern void tax(struct sctstr *, int, int *);
extern void upd_slmilcosts(int, natid);
-extern int bank_income(struct sctstr *, int);
+extern void bank_income(struct sctstr *, int);
extern void pay_reserve(struct natstr *, int);
/* produce.c */
-extern int produce(struct natstr *, struct sctstr *, int *);
-extern int prod_materials_cost(struct pchrstr *, short[], int *);
-extern int prod_resource_limit(struct pchrstr *, unsigned char *);
+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);
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 *, int[][2]);
+extern void produce_sect(struct natstr *, int, struct bp *);
/* ship.c */
-extern int prod_ship(int, int, struct bp *, int);
+extern void prod_ship(int, int, struct bp *, int);
#endif