X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Fland.h;h=7c1aa3b9b2d6b7ed9bc1d92524cd213015b5e252;hp=e6e31c9634776ddba2b42314244c37da34685697;hb=beedf8dce;hpb=df4925d696e7ec0fc03065058ac3cd00504bcce5 diff --git a/include/land.h b/include/land.h index e6e31c963..7c1aa3b9b 100644 --- a/include/land.h +++ b/include/land.h @@ -1,6 +1,6 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2013, Dave Pare, Jeff Bailey, Thomas Ruschak, + * Copyright (C) 1986-2015, Dave Pare, Jeff Bailey, Thomas Ruschak, * Ken Stevens, Steve McClure, Markus Armbruster * * Empire is free software: you can redistribute it and/or modify @@ -30,7 +30,7 @@ * Thomas Ruschak, 1992 * Ken Stevens, 1995 * Steve McClure, 1998 - * Markus Armbruster, 2004-2010 + * Markus Armbruster, 2004-2015 */ #ifndef LAND_H @@ -100,10 +100,10 @@ struct lchrstr { int l_dam; /* # of guns firing */ int l_ammo; /* firing ammu used per shot */ int l_aaf; /* aa fire */ + int l_flags; /* what special things can this unit do */ unsigned char l_nxlight; /* maximum number of xlight planes */ unsigned char l_nland; /* maximum number of units */ signed char l_type; /* index in lchr[] */ - long l_flags; /* what special things can this unit do */ }; /* Land unit ability flags */ @@ -136,6 +136,12 @@ enum { LND_AIROPS_EFF = 50 /* min. efficiency for air ops */ }; +enum lnd_stuck { + LND_STUCK_NOT, /* not stuck */ + LND_STUCK_NO_RAIL, /* land needs rail */ + LND_STUCK_IMPASSABLE /* sector type not marchable */ +}; + extern float l_att(struct lchrstr *, int); extern float l_def(struct lchrstr *, int); extern int l_vul(struct lchrstr *, int); @@ -167,10 +173,13 @@ extern int lnd_sabo(struct lndstr *, short *); extern double lnd_fire_range(struct lndstr *); /* src/lib/subs/lndsub.c */ -extern void lnd_sweep(struct emp_qelem *, int, int, natid); +extern int lnd_sweep(struct emp_qelem *, int, int, natid); extern int lnd_interdict(struct emp_qelem *, coord, coord, natid); +extern int lnd_may_mar(struct lndstr *, struct lndstr *, char *); extern void lnd_sel(struct nstr_item *, struct emp_qelem *); +extern struct ulist *lnd_insque(struct lndstr *, struct emp_qelem *); extern int lnd_check_mines(struct emp_qelem *); +extern enum lnd_stuck lnd_check_mar(struct lndstr *, struct sctstr *); extern double lnd_pathcost(struct lndstr *, double); extern int lnd_mobtype(struct lndstr *); extern double lnd_mobcost(struct lndstr *, struct sctstr *); @@ -179,15 +188,19 @@ extern double attack_val(int, struct lndstr *); extern double defense_val(struct lndstr *); extern int lnd_reaction_range(struct lndstr *); extern void lnd_print(natid, struct ulist *, char *); -extern void lnd_delete(struct ulist *); extern int lnd_take_casualty(int, struct ulist *, int); extern void lnd_submil(struct lndstr *, int); extern void lnd_takemob(struct emp_qelem *, double); extern int lnd_spyval(struct lndstr *); extern void intelligence_report(int, struct lndstr *, int, char *); -extern void lnd_mar(struct emp_qelem *, double *, double *, int *, natid); +extern void lnd_mar_stay_behind(struct emp_qelem *, natid); +extern void lnd_mar_put(struct emp_qelem *, natid); +extern void lnd_put(struct emp_qelem *); +extern void lnd_put_one(struct ulist *); extern int lnd_hardtarget(struct lndstr *); -extern int lnd_mar_one_sector(struct emp_qelem *, int, natid, int); +extern int lnd_abandon_askyn(struct emp_qelem *); +extern int lnd_mar_dir(struct emp_qelem *, int, natid); +extern int lnd_mar_gauntlet(struct emp_qelem *, int, natid); extern int lnd_support(natid, natid, coord, coord, int); extern int lnd_can_attack(struct lndstr *); extern int lnd_fortify(struct lndstr *lp, int hard_amt);