Changeset - r6493:d74339463d3a
[Not reviewed]
master
0 2 0
belugas - 17 years ago 2007-04-19 14:50:01
belugas@openttd.org
(svn r9676) -Codechange: introduce NUM_INDUSTRYTYPES instead of IT_END.
This makes the code clearer.
2 files changed with 9 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/industry.h
Show inline comments
 
@@ -10,12 +10,13 @@
 

	
 
typedef byte IndustryGfx;
 
typedef uint8 IndustryType;
 

	
 
enum {
 
	INVALID_INDUSTRY = 0xFFFF,
 
	NUM_INDUSTRYTYPES = 37,
 
	INDUTILE_NOANIM = 0xFF,        ///< flag to mark industry tiles as having no animation
 
};
 

	
 
enum IndustryLifeType {
 
	INDUSTRYLIFE_NOT_CLOSABLE,     ///< Industry can never close
 
	INDUSTRYLIFE_PRODUCTION,       ///< Industry can close and change of production
src/industry_cmd.cpp
Show inline comments
 
@@ -64,13 +64,13 @@ IndustryType GetIndustryType(TileIndex t
 
{
 
	IndustryGfx this_type = GetIndustryGfx(tile);
 
	IndustryType iloop;
 

	
 
	assert(IsTileType(tile, MP_INDUSTRY));
 

	
 
	for (iloop = IT_COAL_MINE; iloop < IT_END; iloop += 1) {
 
	for (iloop = IT_COAL_MINE; iloop < NUM_INDUSTRYTYPES; iloop += 1) {
 
		if (IS_BYTE_INSIDE(this_type, industry_gfx_Solver[iloop].MinGfx,
 
				industry_gfx_Solver[iloop].MaxGfx + 1)) {
 
			return iloop;
 
		}
 
	}
 

	
 
@@ -79,18 +79,18 @@ IndustryType GetIndustryType(TileIndex t
 

	
 
/**
 
 * Accessor for array _industry_specs.
 
 * This will ensure at once : proper access and
 
 * not allowing modifications of it.
 
 * @param thistype of industry (which is the index in _industry_specs)
 
 * @pre thistype < IT_END
 
 * @pre thistype < NUM_INDUSTRYTYPES
 
 * @return a pointer to the corresponding industry spec
 
 **/
 
const IndustrySpec *GetIndustrySpec(IndustryType thistype)
 
{
 
	assert(thistype < IT_END);
 
	assert(thistype < NUM_INDUSTRYTYPES);
 
	return &_industry_specs[thistype];
 
}
 

	
 
/**
 
 * Accessor for array _industry_tile_specs.
 
 * This will ensure at once : proper access and
 
@@ -1587,13 +1587,13 @@ void GenerateIndustries()
 
	uint i = 0;
 
	uint8 chance;
 
	IndustryType it;
 
	const IndustrySpec *ind_spc;
 

	
 
	/* Find the total amount of industries */
 
	for (it = IT_COAL_MINE; it < IT_END; it++) {
 
	for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
 
		int num;
 

	
 
		ind_spc = GetIndustrySpec(it);
 
		chance = ind_spc->appear_creation[_opt.landscape];
 

	
 
		if (chance > 0) {
 
@@ -1607,13 +1607,13 @@ void GenerateIndustries()
 
			i += num;
 
		}
 
	}
 

	
 
	SetGeneratingWorldProgress(GWP_INDUSTRY, i);
 

	
 
	for (it = IT_COAL_MINE; it < IT_END; it++) {
 
	for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
 
		/* Once the number of industries has been determined, let's really create them.
 
		 * The test for chance allows us to try create industries that are available only
 
		 * for this landscape.
 
		 * @todo :  Do we really have to pass chance as un-scaled value, since we've already
 
		 *          processed that scaling above? No, don't think so.  Will find a way. */
 
		chance = GetIndustrySpec(it)->appear_creation[_opt.landscape];
 
@@ -1749,17 +1749,17 @@ struct ProbabilityHelper {
 
static void MaybeNewIndustry(void)
 
{
 
	Industry *ind;               //will receive the industry's creation pointer
 
	IndustryType rndtype, j;     // Loop controlers
 
	const IndustrySpec *ind_spc;
 
	uint num = 0;
 
	ProbabilityHelper cumulative_probs[IT_END]; // probability collector
 
	ProbabilityHelper cumulative_probs[NUM_INDUSTRYTYPES]; // probability collector
 
	uint16 probability_max = 0;
 

	
 
	/* Generate a list of all possible industries that can be built. */
 
	for (j = 0; j < IT_END; j++) {
 
	for (j = 0; j < NUM_INDUSTRYTYPES; j++) {
 
		byte chance = GetIndustrySpec(j)->appear_ingame[_opt.landscape];
 

	
 
		/* if appearing chance for this landscape is above 0, this industry can be chosen */
 
		if (chance != 0) {
 
			probability_max += chance;
 
			/* adds the result for this industry */
 
@@ -1767,13 +1767,13 @@ static void MaybeNewIndustry(void)
 
			cumulative_probs[num++].prob = probability_max;
 
		}
 
	}
 

	
 
	/* Find a random type, with maximum being what has been evaluate above*/
 
	rndtype = RandomRange(probability_max);
 
	for (j = 0; j < IT_END; j++) {
 
	for (j = 0; j < NUM_INDUSTRYTYPES; j++) {
 
		/* and choose the index of the industry that matches as close as possible this random type */
 
		if (cumulative_probs[j].prob >= rndtype) break;
 
	}
 

	
 
	ind_spc = GetIndustrySpec(cumulative_probs[j].ind);
 
	/*  Check if it is allowed */
0 comments (0 inline, 0 general)