#include "retreat.h"
#define LAND_MINEFF 10
-#define LAND_MINFIREEFF 40 /* arty must be this effic to fire */
+#define LAND_MINFIREEFF 40 /* arty must be this effic to fire */
#define MAXLNDV 14
#define LND_MINMOBCOST 0.200
-struct lndstr {
- short ef_type;
- natid lnd_own; /* owner's country num */
- short lnd_uid; /* unit id (land unit) */
- coord lnd_x; /* x location in abs coords */
- coord lnd_y; /* y location in abs coords */
- s_char lnd_type; /* ship type */
- s_char lnd_effic; /* 0% to 100% */
- s_char lnd_mobil; /* mobility units made int for RS/6000 */
- short lnd_sell; /* pointer to trade file */
- short lnd_tech; /* tech level ship was built at */
- s_char lnd_army; /* group membership */
- coord lnd_opx,lnd_opy;/* Op sector coords */
- short lnd_mission; /* mission code */
- short lnd_radius; /* mission radius */
- s_char lnd_flags; /* unit flags */
- short lnd_ship; /* pointer to transporting ship */
- s_char lnd_harden; /* for missiles */
- short lnd_retreat; /* retreat percentage */
- u_char lnd_fuel; /* How much fuel do we have */
- u_char lnd_nxlight; /* How many xlight planes on board? */
- int lnd_rflags; /* When do I retreat? */
- s_char lnd_rpath[RET_LEN]; /* retreat path */
- u_char lnd_rad_max; /* max radius for this unit */
- u_char lnd_scar; /* how experienced the unit is (not used) */
- s_char lnd_nv; /* current number of variables */
- u_char lnd_vtype[MAXLNDV];
- u_short lnd_vamt[MAXLNDV];
- short lnd_land; /* pointer to transporting unit */
- u_char lnd_nland;
- time_t lnd_access; /* Last time mob was updated (MOB_ACCESS) */
- float lnd_att; /* attack multiplier */
- float lnd_def; /* defense multiplier */
- int lnd_vul; /* vulnerability (0-100) */
- int lnd_spd; /* speed */
- int lnd_vis; /* visibility */
- int lnd_spy; /* Seeing distance */
- int lnd_rad; /* reaction radius */
- int lnd_frg; /* firing range */
- int lnd_acc; /* firing accuracy */
- int lnd_dam; /* # of guns firing */
- int lnd_ammo; /* firing ammu used per shot */
- int lnd_aaf; /* aa fire */
- u_char lnd_fuelc; /* fuel capacity */
- u_char lnd_fuelu; /* fuel used per 10 mob */
- u_char lnd_maxlight; /* maximum number of xlight planes */
- u_char lnd_maxland; /* maximum number of units */
- time_t lnd_timestamp; /* Last time this unit was touched */
+struct lndstr {
+ short ef_type;
+ natid lnd_own; /* owner's country num */
+ short lnd_uid; /* unit id (land unit) */
+ coord lnd_x; /* x location in abs coords */
+ coord lnd_y; /* y location in abs coords */
+ s_char lnd_type; /* ship type */
+ s_char lnd_effic; /* 0% to 100% */
+ s_char lnd_mobil; /* mobility units made int for RS/6000 */
+ short lnd_sell; /* pointer to trade file */
+ short lnd_tech; /* tech level ship was built at */
+ s_char lnd_army; /* group membership */
+ coord lnd_opx, lnd_opy; /* Op sector coords */
+ short lnd_mission; /* mission code */
+ short lnd_radius; /* mission radius */
+ s_char lnd_flags; /* unit flags */
+ short lnd_ship; /* pointer to transporting ship */
+ s_char lnd_harden; /* for missiles */
+ short lnd_retreat; /* retreat percentage */
+ u_char lnd_fuel; /* How much fuel do we have */
+ u_char lnd_nxlight; /* How many xlight planes on board? */
+ int lnd_rflags; /* When do I retreat? */
+ s_char lnd_rpath[RET_LEN]; /* retreat path */
+ u_char lnd_rad_max; /* max radius for this unit */
+ u_char lnd_scar; /* how experienced the unit is (not used) */
+ s_char lnd_nv; /* current number of variables */
+ u_char lnd_vtype[MAXLNDV];
+ u_short lnd_vamt[MAXLNDV];
+ short lnd_land; /* pointer to transporting unit */
+ u_char lnd_nland;
+ time_t lnd_access; /* Last time mob was updated (MOB_ACCESS) */
+ float lnd_att; /* attack multiplier */
+ float lnd_def; /* defense multiplier */
+ int lnd_vul; /* vulnerability (0-100) */
+ int lnd_spd; /* speed */
+ int lnd_vis; /* visibility */
+ int lnd_spy; /* Seeing distance */
+ int lnd_rad; /* reaction radius */
+ int lnd_frg; /* firing range */
+ int lnd_acc; /* firing accuracy */
+ int lnd_dam; /* # of guns firing */
+ int lnd_ammo; /* firing ammu used per shot */
+ int lnd_aaf; /* aa fire */
+ u_char lnd_fuelc; /* fuel capacity */
+ u_char lnd_fuelu; /* fuel used per 10 mob */
+ u_char lnd_maxlight; /* maximum number of xlight planes */
+ u_char lnd_maxland; /* maximum number of units */
+ time_t lnd_timestamp; /* Last time this unit was touched */
};
-#define LND_NOTANY bit(0) /* Just a placeholder, not used */
-
-struct lchrstr {
- u_char l_nv; /* number of variables it can hold */
- u_char l_vtype[MAXCHRNV];
- u_short l_vamt[MAXCHRNV];
- s_char *l_name; /* full name of type of land unit */
- int l_lcm; /* units of lcm to build */
- int l_hcm; /* units of hcm to build */
- int l_mil; /* how many mil it takes to build */
- int l_gun; /* how many guns it takes to build */
- int l_shell; /* how many shells it takes to build */
- int l_tech; /* tech required to build */
- int l_cost; /* how much it costs to build */
- float l_att; /* attack multiplier */
- float l_def; /* defense multiplier */
- int l_vul; /* vulnerability (0-100) */
- int l_spd; /* speed */
- int l_vis; /* visibility */
- int l_spy; /* Seeing distance */
- int l_rad; /* reaction radius */
- int l_frg; /* firing range */
- int l_acc; /* firing accuracy */
- int l_dam; /* # of guns firing */
- int l_ammo; /* firing ammu used per shot */
- int l_aaf; /* aa fire */
- u_char l_fuelc; /* fuel capacity */
- u_char l_fuelu; /* fuel used per 10 mob */
- u_char l_nxlight; /* maximum number of xlight planes */
- u_char l_mxland; /* maximum number of units */
- long l_flags; /* what special things can this unit do */
+#define LND_NOTANY bit(0) /* Just a placeholder, not used */
+
+struct lchrstr {
+ u_char l_nv; /* number of variables it can hold */
+ u_char l_vtype[MAXCHRNV];
+ u_short l_vamt[MAXCHRNV];
+ s_char *l_name; /* full name of type of land unit */
+ int l_lcm; /* units of lcm to build */
+ int l_hcm; /* units of hcm to build */
+ int l_mil; /* how many mil it takes to build */
+ int l_gun; /* how many guns it takes to build */
+ int l_shell; /* how many shells it takes to build */
+ int l_tech; /* tech required to build */
+ int l_cost; /* how much it costs to build */
+ float l_att; /* attack multiplier */
+ float l_def; /* defense multiplier */
+ int l_vul; /* vulnerability (0-100) */
+ int l_spd; /* speed */
+ int l_vis; /* visibility */
+ int l_spy; /* Seeing distance */
+ int l_rad; /* reaction radius */
+ int l_frg; /* firing range */
+ int l_acc; /* firing accuracy */
+ int l_dam; /* # of guns firing */
+ int l_ammo; /* firing ammu used per shot */
+ int l_aaf; /* aa fire */
+ u_char l_fuelc; /* fuel capacity */
+ u_char l_fuelu; /* fuel used per 10 mob */
+ u_char l_nxlight; /* maximum number of xlight planes */
+ u_char l_mxland; /* maximum number of units */
+ long l_flags; /* what special things can this unit do */
};
/* Land unit ability flags */
#define L_RADAR bit(7) /* radar unit */
#define L_ASSAULT bit(8) /* can assault */
#define L_FLAK bit(9) /* flak unit */
-#define L_SPY bit(10) /* spy unit - way cool */
-#define L_TRAIN bit(11) /* train unit - neato */
-#define L_HEAVY bit(12) /* heavy unit - can't go on trains */
+#define L_SPY bit(10) /* spy unit - way cool */
+#define L_TRAIN bit(11) /* train unit - neato */
+#define L_HEAVY bit(12) /* heavy unit - can't go on trains */
#define LND_ATTDEF(b, t) (((b) * (1.0 + ((sqrt((double)(t)) / 100.0) * 4.0))) \
> 127 ? 127 : \
#define getlandp(n) \
(struct lndstr *) ef_ptr(EF_LAND, n)
-extern struct lchrstr lchr[];
-extern int lnd_maxno;
+extern struct lchrstr lchr[];
+extern int lnd_maxno;
struct llist {
- struct emp_qelem queue; /* list of units */
- coord x,y; /* x,y it came from */
- struct lchrstr *lcp; /* pointer to desc of land unit */
- struct lndstr land; /* struct land unit */
- int eff;
- double mobil;
- int supplied;
+ struct emp_qelem queue; /* list of units */
+ coord x, y; /* x,y it came from */
+ struct lchrstr *lcp; /* pointer to desc of land unit */
+ struct lndstr land; /* struct land unit */
+ int eff;
+ double mobil;
+ int supplied;
};
/* src/lib/subs/lndsub.c */
-extern void lnd_sweep(struct emp_qelem * , int , int , natid );
-extern int lnd_interdict(struct emp_qelem * , coord , coord , natid );
-extern void lnd_sel(struct nstr_item * , struct emp_qelem * );
-extern void lnd_mess(s_char * , struct llist * );
-extern int lnd_check_mines(struct emp_qelem * );
-extern double lnd_mobcost(struct lndstr * , struct sctstr * , int );
-extern s_char * lnd_path(int , struct lndstr * , s_char * );
-
-extern int attack_val(int , struct lndstr * );
-extern int total_mil(struct lndstr * );
-extern int defense_val(struct lndstr * );
-extern int lnd_getmil(struct lndstr * );
-extern void lnd_print(struct llist * , s_char * );
-extern void lnd_delete(struct llist * , s_char * );
-extern int lnd_take_casualty(int , struct llist * , int );
-extern void lnd_submil(struct lndstr * , int );
-extern void lnd_takemob(struct emp_qelem * , double );
-extern int lnd_spyval(struct lndstr * );
-extern int intelligence_report(int , struct lndstr * , int , s_char * );
-extern int count_sect_units(struct sctstr * );
-extern void count_units(struct shpstr * );
-extern void lnd_count_units(struct lndstr * );
-extern void lnd_mar(struct emp_qelem * , double * , double * , int * ,
- natid );
-extern void lnd_put(struct emp_qelem * , natid );
-extern int lnd_hit_mine(struct lndstr * , struct lchrstr * );
-extern void lnd_list(struct emp_qelem * );
-extern int lnd_hardtarget(struct lndstr * );
-extern int lnd_mar_one_sector(struct emp_qelem * , int , natid , int );
-extern int lnd_support(natid , natid , coord , coord );
-extern int lnd_can_attack(struct lndstr * );
+extern void lnd_sweep(struct emp_qelem *, int, int, natid);
+extern int lnd_interdict(struct emp_qelem *, coord, coord, natid);
+extern void lnd_sel(struct nstr_item *, struct emp_qelem *);
+extern void lnd_mess(s_char *, struct llist *);
+extern int lnd_check_mines(struct emp_qelem *);
+extern double lnd_mobcost(struct lndstr *, struct sctstr *, int);
+extern s_char *lnd_path(int, struct lndstr *, s_char *);
+
+extern int attack_val(int, struct lndstr *);
+extern int total_mil(struct lndstr *);
+extern int defense_val(struct lndstr *);
+extern int lnd_getmil(struct lndstr *);
+extern void lnd_print(struct llist *, s_char *);
+extern void lnd_delete(struct llist *, s_char *);
+extern int lnd_take_casualty(int, struct llist *, int);
+extern void lnd_submil(struct lndstr *, int);
+extern void lnd_takemob(struct emp_qelem *, double);
+extern int lnd_spyval(struct lndstr *);
+extern int intelligence_report(int, struct lndstr *, int, s_char *);
+extern int count_sect_units(struct sctstr *);
+extern void count_units(struct shpstr *);
+extern void lnd_count_units(struct lndstr *);
+extern void lnd_mar(struct emp_qelem *, double *, double *, int *, natid);
+extern void lnd_put(struct emp_qelem *, natid);
+extern int lnd_hit_mine(struct lndstr *, struct lchrstr *);
+extern void lnd_list(struct emp_qelem *);
+extern int lnd_hardtarget(struct lndstr *);
+extern int lnd_mar_one_sector(struct emp_qelem *, int, natid, int);
+extern int lnd_support(natid, natid, coord, coord);
+extern int lnd_can_attack(struct lndstr *);
void landdamage();