not s_char. Fix types.
(upd_ship): Catch resource underflow (should not happen).
int wforce;
i_type it;
i_type vtype;
- s_char *resource;
+ u_char *resource;
s_char maxc[MAXPRCON][10];
s_char use[MAXPRCON][10];
int lcms, hcms;
goto is_enlist;
if (pp->p_nrndx != 0) {
unit_work++;
- resource = ((s_char *)§) + pp->p_nrndx;
+ resource = (u_char *)§ + pp->p_nrndx;
p_e = (*resource * p_e) / 100.0;
}
/*
struct pchrstr *product;
double p_e;
double prodeff;
- s_char *resource;
+ u_char *resource;
double output;
int actual;
int unit_work;
p_e = neweff / 100.0;
if (product->p_nrndx != 0) {
unit_work++;
- resource = ((s_char *)sp) + product->p_nrndx;
+ resource = (u_char *)sp + product->p_nrndx;
p_e = (*resource * p_e) / 100.0;
}
/*
int max_food;
struct pchrstr *product;
s_char *resource;
+ int dep;
int n;
int mult;
int needed;
oil_gained = max_oil - sp->shp_item[I_OIL];
sp->shp_item[I_OIL] += oil_gained;
if (product->p_nrdep != 0 && oil_gained > 0) {
- resource = ((s_char *)sectp) + product->p_nrndx;
- *resource -= roundavg(oil_gained *
- product->p_nrdep / 100.0);
+ resource = (u_char *)sectp + product->p_nrndx;
+ dep = roundavg(oil_gained * product->p_nrdep / 100.0);
+ if (CANT_HAPPEN(dep > *resource))
+ dep = *resource;
+ *resource -= dep;
}
}
if ((mp->m_flags & M_FOOD) && sectp->sct_type == SCT_WATER) {