-#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 */
+};