#include "unit.h"
static void lnd_mess(char *, struct ulist *);
-static int lnd_hit_mine(struct lndstr *, struct lchrstr *);
+static int lnd_hit_mine(struct lndstr *);
static int has_helpful_engineer(coord, coord, natid);
double
if (SCT_LANDMINES(§) == 0)
continue;
if (chance(DMINE_LHITCHANCE(sect.sct_mines) / (1 + 2 * with_eng))) {
- lnd_hit_mine(&llp->unit.land, ((struct lchrstr *)llp->chrp));
+ lnd_hit_mine(&llp->unit.land);
sect.sct_mines--;
putsect(§);
putland(llp->unit.land.lnd_uid, &llp->unit.land);
}
static int
-lnd_hit_mine(struct lndstr *lp, struct lchrstr *lcp)
+lnd_hit_mine(struct lndstr *lp)
{
int m;
nreport(lp->lnd_own, N_LHIT_MINE, 0, 1);
m = MINE_LDAMAGE();
- if (lcp->l_flags & L_ENGINEER)
+ if (lchr[lp->lnd_uid].l_flags & L_ENGINEER)
m /= 2;
landdamage(lp, m);
#include "unit.h"
static int shp_check_one_mines(struct ulist *);
-static int shp_hit_mine(struct shpstr *, struct mchrstr *);
+static int shp_hit_mine(struct shpstr *);
static void shp_mess(char *, struct ulist *);
void
return 0;
if (chance(DMINE_HITCHANCE(sect.sct_mines))) {
actor = mlp->unit.ship.shp_own;
- shp_hit_mine(&mlp->unit.ship, ((struct mchrstr *)mlp->chrp));
+ shp_hit_mine(&mlp->unit.ship);
sect.sct_mines--;
if (map_set(actor, sect.sct_x, sect.sct_y, 'X', 0))
writemap(actor);
}
static int
-shp_hit_mine(struct shpstr *sp, struct mchrstr *mcp)
+shp_hit_mine(struct shpstr *sp)
{
double m;
nreport(sp->shp_own, N_HIT_MINE, 0, 1);
m = MINE_DAMAGE();
- if (mcp->m_flags & M_SWEEP)
+ if (mchr[sp->shp_uid].m_flags & M_SWEEP)
m /= 2.0;
shipdamage(sp, ldround(m, 1));