prod() duplicates materials_cost(), clean up
Rename materials_cost() to prod_materials_cost(), give external linkage, use it in prod().
This commit is contained in:
parent
ac60160355
commit
f0927e7f64
4 changed files with 15 additions and 22 deletions
|
@ -716,6 +716,7 @@ extern int bank_income(struct sctstr *, int);
|
|||
/* produce.c */
|
||||
extern int produce(struct natstr *, struct sctstr *, short *, int, int,
|
||||
int, int *, int *);
|
||||
extern int prod_materials_cost(struct pchrstr *, short[], int *);
|
||||
extern double prod_eff(int, float);
|
||||
/* removewants.c */
|
||||
extern int update_removewants(void);
|
||||
|
|
|
@ -48,6 +48,7 @@ struct nchrstr;
|
|||
struct nstr_item;
|
||||
struct nstr_sect;
|
||||
struct nukstr;
|
||||
struct pchrstr;
|
||||
struct player;
|
||||
struct plist;
|
||||
struct plnstr;
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
* Known contributors to this file:
|
||||
* David Muir Sharnoff, 1987
|
||||
* Steve McClure, 1997-2000
|
||||
* Markus Armbruster, 2004-2010
|
||||
* Markus Armbruster, 2004-2013
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -202,13 +202,13 @@ prod(void)
|
|||
|
||||
if (dchr[type].d_prd < 0)
|
||||
continue;
|
||||
unit_work = 0;
|
||||
pp = &pchr[dchr[type].d_prd];
|
||||
vtype = pp->p_type;
|
||||
if (pp->p_nrndx)
|
||||
resource = (unsigned char *)§ + pp->p_nrndx;
|
||||
else
|
||||
resource = NULL;
|
||||
used = prod_materials_cost(pp, sect.sct_item, &unit_work);
|
||||
/*
|
||||
* sect p_e (inc improvements)
|
||||
*/
|
||||
|
@ -216,25 +216,12 @@ prod(void)
|
|||
unit_work++;
|
||||
p_e *= *resource / 100.0;
|
||||
}
|
||||
if (unit_work == 0)
|
||||
unit_work = 1;
|
||||
/*
|
||||
* production effic.
|
||||
*/
|
||||
prodeff = prod_eff(type, natp->nat_level[pp->p_nlndx]);
|
||||
/*
|
||||
* raw material limit
|
||||
*/
|
||||
used = 9999;
|
||||
for (i = 0; i < MAXPRCON; ++i) {
|
||||
it = pp->p_ctype[i];
|
||||
if (!pp->p_camt[i])
|
||||
continue;
|
||||
if (CANT_HAPPEN(it <= I_NONE || I_MAX < it))
|
||||
continue;
|
||||
used = MIN(used, sect.sct_item[it] / pp->p_camt[i]);
|
||||
unit_work += pp->p_camt[i];
|
||||
}
|
||||
if (unit_work == 0)
|
||||
unit_work = 1;
|
||||
/*
|
||||
* is production limited by resources or
|
||||
* workforce?
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* produce.c: Produce goodies
|
||||
*
|
||||
* Known contributors to this file:
|
||||
* Markus Armbruster, 2004-2010
|
||||
* Markus Armbruster, 2004-2013
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -39,7 +39,6 @@
|
|||
#include "update.h"
|
||||
|
||||
static void materials_charge(struct pchrstr *, short *, int);
|
||||
static int materials_cost(struct pchrstr *, short *, int *);
|
||||
|
||||
static char *levelnames[] = {
|
||||
"Technology", "Research", "Education", "Happiness"
|
||||
|
@ -73,7 +72,8 @@ produce(struct natstr *np, struct sctstr *sp, short *vec, int work,
|
|||
*amount = 0;
|
||||
*cost = 0;
|
||||
|
||||
if ((material_limit = materials_cost(product, vec, &unit_work)) <= 0)
|
||||
material_limit = prod_materials_cost(product, vec, &unit_work);
|
||||
if (material_limit <= 0)
|
||||
return 0;
|
||||
/*
|
||||
* calculate production efficiency.
|
||||
|
@ -172,8 +172,12 @@ produce(struct natstr *np, struct sctstr *sp, short *vec, int work,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
materials_cost(struct pchrstr *pp, short *vec, int *costp)
|
||||
/*
|
||||
* Return how much of product PP can be made from materials VEC[].
|
||||
* Store amount of work per unit in *COSTP.
|
||||
*/
|
||||
int
|
||||
prod_materials_cost(struct pchrstr *pp, short vec[], int *costp)
|
||||
{
|
||||
int count;
|
||||
int cost;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue