/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure, Markus Armbruster
*
* Empire is free software: you can redistribute it and/or modify
* Dave Pare
* Ken Stevens, 1995
* Steve McClure, 1998
- * Markus Armbruster, 2004-2016
+ * Markus Armbruster, 2004-2020
*/
unsigned char sct_off; /* Should this sector produce? */
/* end of part matching struct empobj */
unsigned char sct_loyal; /* updates until civilans "converted" */
- unsigned char sct_terr; /* territory 0 id # of sector */
- unsigned char sct_terr1; /* territory 1 id # of sector */
- unsigned char sct_terr2; /* territory 2 id # of sector */
- unsigned char sct_terr3; /* territory 3 id # of sector */
+ unsigned char sct_terr; /* territory 0 number */
+ unsigned char sct_terr1; /* territory 1 number */
+ unsigned char sct_terr2; /* territory 2 number */
+ unsigned char sct_terr3; /* territory 3 number */
unsigned char sct_dterr; /* deity's territory # */
coord sct_dist_x; /* Dist sector */
coord sct_dist_y;
short sct_dist[I_MAX+1]; /* distribution thresholds */
short sct_mines; /* number of mines */
short sct_pstage; /* plague stage */
- short sct_ptime; /* how many etus remain in this stage */
+ short sct_ptime; /* how many ETUs remain in this stage */
unsigned char sct_che; /* number of guerrillas */
natid sct_che_target; /* nation targeted by che */
unsigned short sct_fallout;
#define SCT_PLAINS 32 /* plains sector */
#define SCT_BTOWER 33 /* Bridge tower */
-#define SCT_TYPE_MAX 38
-
#define getsect(x, y, p) ef_read(EF_SECTOR, sctoff((x), (y)), (p))
#define putsect(p) ef_write(EF_SECTOR, (p)->sct_uid, (p))
#define getsectp(x, y) ((struct sctstr *)ef_ptr(EF_SECTOR, sctoff((x), (y))))
#define getsectid(id) ((struct sctstr *)ef_ptr(EF_SECTOR, (id)))
-extern struct dchrstr dchr[SCT_TYPE_MAX + 2];
+#define DCHR_SZ 64
+extern struct dchrstr dchr[DCHR_SZ];
+
#define IS_BIG_CITY(type) (dchr[(type)].d_pkg == UPKG)
/* Minimal efficiency of sectors that can be knocked down (bridges) */
/* Each cost is per point of efficency */
struct sctintrins {
char *in_name;
- unsigned char in_lcms; /* construction materials */
- unsigned char in_hcms;
- unsigned char in_dcost; /* dollars */
- unsigned char in_mcost; /* mobility */
+ short in_mat[I_MAX+1]; /* materials to build 100% */
+ /* non-zero only for I_LCM and I_HCM */
+ short in_bmobil; /* mobility to build 100% */
+ int in_cost; /* cost to build 100% */
unsigned char in_enable; /* enabled iff non-zero */
};
-extern struct sctintrins intrchr[INT_DEF + 2];
+#define INTRCHR_SZ INT_DEF + 2
+extern struct sctintrins intrchr[INTRCHR_SZ];
extern int fort_fire(struct sctstr *);
extern int sct_rail_track(struct sctstr *);