Its caller passes sp->sct_item, so use that.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
* Return amount of work used.
*/
static int
* Return amount of work used.
*/
static int
-upd_buildeff(struct sctstr *sp, int *workp, short vec[], int *desig,
- int *cost)
+upd_buildeff(struct sctstr *sp, int *workp, int *desig, int *cost)
{
int work_cost = 0;
int buildeff_work = *workp / 2;
{
int work_cost = 0;
int buildeff_work = *workp / 2;
work_cost = buildeff_work;
if (dchr[*desig].d_lcms > 0) {
work_cost = buildeff_work;
if (dchr[*desig].d_lcms > 0) {
+ lcms = sp->sct_item[I_LCM];
lcms /= dchr[*desig].d_lcms;
if (work_cost > lcms)
work_cost = lcms;
}
if (dchr[*desig].d_hcms > 0) {
lcms /= dchr[*desig].d_lcms;
if (work_cost > lcms)
work_cost = lcms;
}
if (dchr[*desig].d_hcms > 0) {
+ hcms = sp->sct_item[I_HCM];
hcms /= dchr[*desig].d_hcms;
if (work_cost > hcms)
work_cost = hcms;
hcms /= dchr[*desig].d_hcms;
if (work_cost > hcms)
work_cost = hcms;
buildeff_work -= work_cost;
if ((dchr[*desig].d_lcms > 0) || (dchr[*desig].d_hcms > 0)) {
buildeff_work -= work_cost;
if ((dchr[*desig].d_lcms > 0) || (dchr[*desig].d_hcms > 0)) {
- vec[I_LCM] -= work_cost * dchr[*desig].d_lcms;
- vec[I_HCM] -= work_cost * dchr[*desig].d_hcms;
+ sp->sct_item[I_LCM] -= work_cost * dchr[*desig].d_lcms;
+ sp->sct_item[I_HCM] -= work_cost * dchr[*desig].d_hcms;
}
}
*workp = (*workp + 1) / 2 + buildeff_work;
}
}
*workp = (*workp + 1) / 2 + buildeff_work;
if ((sp->sct_effic < 100 || sp->sct_type != sp->sct_newtype) &&
np->nat_money >= 0) {
if ((sp->sct_effic < 100 || sp->sct_type != sp->sct_newtype) &&
np->nat_money >= 0) {
- neweff = upd_buildeff(sp, &work, sp->sct_item, &desig, &cost);
+ neweff = upd_buildeff(sp, &work, &desig, &cost);
bp_put_items(bp, sp);
p_sect[SCT_EFFIC][0]++;
p_sect[SCT_EFFIC][1] += cost;
bp_put_items(bp, sp);
p_sect[SCT_EFFIC][0]++;
p_sect[SCT_EFFIC][1] += cost;