extern void prepare_sects(int, struct bp *);
extern int bank_income(struct sctstr *, int);
/* produce.c */
-extern int produce(struct natstr *, struct sctstr *, int, int, int *);
+extern int produce(struct natstr *, struct sctstr *, int *);
extern int prod_materials_cost(struct pchrstr *, short[], int *);
extern int prod_resource_limit(struct pchrstr *, unsigned char *);
extern double prod_eff(int, float);
};
int
-produce(struct natstr *np, struct sctstr *sp,
- int desig, int neweff, int *cost)
+produce(struct natstr *np, struct sctstr *sp, int *cost)
{
struct pchrstr *product;
double p_e;
int material_consume;
int val;
- if (dchr[desig].d_prd < 0)
+ if (dchr[sp->sct_type].d_prd < 0)
return 0;
- product = &pchr[dchr[desig].d_prd];
+ product = &pchr[dchr[sp->sct_type].d_prd];
item = product->p_type;
if (product->p_nrndx)
resource = (unsigned char *)sp + product->p_nrndx;
return 0;
/* sector p.e. */
- p_e = neweff / 100.0;
+ p_e = sp->sct_effic / 100.0;
if (resource) {
unit_work++;
p_e *= *resource / 100.0;
if (material_consume == 0)
return 0;
- prodeff = prod_eff(desig, np->nat_level[product->p_nlndx]);
+ prodeff = prod_eff(sp->sct_type, np->nat_level[product->p_nlndx]);
if (prodeff <= 0.0 && !player->simulation) {
wu(0, sp->sct_own,
"%s level too low to produce in %s (need %d)\n",
if (sp->sct_effic >= 60) {
if (np->nat_money >= 0 && dchr[sp->sct_type].d_prd >= 0)
- amount = produce(np, sp, sp->sct_type, sp->sct_effic, &pcost);
+ amount = produce(np, sp, &pcost);
bp_put_items(bp, sp);
}