]> git.pond.sub.org Git - empserver/blobdiff - include/update.h
production: Use update code instead of duplicating it
[empserver] / include / update.h
index 97982430dd30986ff7b61f99cebd3533fa822d90..a81684e33a4cfb536434df2437d6aeac89df8b5a 100644 (file)
 
 #include "sect.h"
 
-#define SCT_EFFIC (SCT_TYPE_MAX + 1)
-#define SCT_MAINT (SCT_TYPE_MAX + 2)
-#define SCT_BUDG_MAX SCT_MAINT
+#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 int money[MAXNOC];
+extern struct budget nat_budget[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];
@@ -71,7 +97,7 @@ extern int feed_people(short *, int);
 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 */
@@ -95,19 +121,21 @@ extern void prod_nat(int);
 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 tax(struct sctstr *, int, int *, int *, int *, int *);
-extern int upd_slmilcosts(natid, int);
 extern void prepare_sects(int);
-extern int bank_income(struct sctstr *, 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 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);
@@ -119,8 +147,8 @@ 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 *, 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