- type = sect.sct_type;
- eff = sect.sct_effic;
- if (sect.sct_newtype != type) {
- twork = (eff + 3) / 4;
- if (twork > bwork) {
- twork = bwork;
- }
- bwork -= twork;
- eff -= twork * 4;
- otype = type;
- if (eff <= 0) {
- type = sect.sct_newtype;
- eff = 0;
- }
- if (!eff && IS_BIG_CITY(otype) && !IS_BIG_CITY(type)) {
- maxpop = max_population(natp->nat_level[NAT_RLEV],
- type, eff);
- work = new_work(§,
- total_work(sect.sct_work, etu_per_update,
- civs, sect.sct_item[I_MILIT],
- uws, maxpop));
- bwork = MIN(work / 2, bwork);
- }
- twork = 100 - eff;
- if (twork > bwork) {
- twork = bwork;
- }
- if (dchr[type].d_lcms > 0) {
- lcms = sect.sct_item[I_LCM];
- lcms /= dchr[type].d_lcms;
- if (twork > lcms)
- twork = lcms;
- }
- if (dchr[type].d_hcms > 0) {
- hcms = sect.sct_item[I_HCM];
- hcms /= dchr[type].d_hcms;
- if (twork > hcms)
- twork = hcms;
- }
- bwork -= twork;
- eff += twork;
- } else if (eff < 100) {
- twork = 100 - eff;
- if (twork > bwork) {
- twork = bwork;
- }
- bwork -= twork;
- eff += twork;
- }
- work = (work + 1) / 2 + bwork;
- if (eff < 60)
+
+ natp = getnatp(sect.sct_own);
+ do_feed(§, natp, etu_per_update, 1);
+ buildeff(§);
+ if (sect.sct_effic < 60)