(svn r10078) -Codechange: Centralize all industry counts data and access

This commit is contained in:
belugas
2007-06-10 01:25:21 +00:00
parent 3afea2d673
commit 08c9365971
2 changed files with 15 additions and 10 deletions

View File

@@ -208,14 +208,14 @@ static inline IndustryID GetMaxIndustryIndex()
return GetIndustryPoolSize() - 1;
}
extern int _total_industries; // general counter
extern uint16 _industry_counts[NUM_INDUSTRYTYPES]; // Number of industries per type ingame
static inline uint GetNumIndustries()
{
extern int _total_industries; // general counter
return _total_industries;
}
extern uint16 _industry_counts[NUM_INDUSTRYTYPES]; // Number of industries per type ingame
/** Increment the count of industries for this type
* @param type IndustryType to increment
* @pre type < INVALID_INDUSTRYTYPE */
@@ -223,6 +223,7 @@ static inline void IncIndustryTypeCount(IndustryType type)
{
assert(type < INVALID_INDUSTRYTYPE);
_industry_counts[type]++;
_total_industries++;
}
/** Decrement the count of industries for this type
@@ -232,6 +233,7 @@ static inline void DecIndustryTypeCount(IndustryType type)
{
assert(type < INVALID_INDUSTRYTYPE);
_industry_counts[type]--;
_total_industries--;
}
/** get the count of industries for this type
@@ -243,6 +245,14 @@ static inline uint8 GetIndustryTypeCount(IndustryType type)
return min(_industry_counts[type], 0xFF); // callback expects only a byte, so cut it
}
/** Resets both the total_industries and the _industry_counts
* This way, we centralize all counts activities */
static inline void ResetIndustryCounts()
{
_total_industries = 0;
memset(&_industry_counts, 0, sizeof(_industry_counts));
}
/**
* Return a random valid industry.
*/