Changeset - r12284:cb141480995d
[Not reviewed]
master
0 7 0
smatz - 15 years ago 2009-07-01 17:43:26
smatz@openttd.org
(svn r16711) -Codechange: use FOR_ALL_SUBSIDIES macro when iterating over all subsidies
7 files changed with 37 insertions and 42 deletions:
0 comments (0 inline, 0 general)
src/ai/api/ai_subsidylist.cpp
Show inline comments
 
@@ -8,7 +8,8 @@
 

	
 
AISubsidyList::AISubsidyList()
 
{
 
	for (uint i = 0; i < lengthof(_subsidies); i++) {
 
		if (AISubsidy::IsValidSubsidy(i)) this->AddItem(i);
 
	const Subsidy *s;
 
	FOR_ALL_SUBSIDIES(s) {
 
		this->AddItem(s - _subsidies);
 
	}
 
}
src/economy.cpp
Show inline comments
 
@@ -327,10 +327,9 @@ void ChangeOwnershipOfCompanyItems(Owner
 

	
 
	if (new_owner == INVALID_OWNER) {
 
		Subsidy *s;
 

	
 
		for (s = _subsidies; s != endof(_subsidies); s++) {
 
			if (s->cargo_type != CT_INVALID && s->age >= 12) {
 
				if (Station::Get(s->to)->owner == old_owner) s->cargo_type = CT_INVALID;
 
		FOR_ALL_SUBSIDIES(s) {
 
			if (s->age >= 12 && Station::Get(s->to)->owner == old_owner) {
 
				s->cargo_type = CT_INVALID;
 
			}
 
		}
 
	}
src/saveload/afterload.cpp
Show inline comments
 
@@ -1916,8 +1916,8 @@ bool AfterLoadGame()
 
		}
 

	
 
		/* Delete invalid subsidies possibly present in old versions (but converted to new savegame) */
 
		for (Subsidy *s = _subsidies; s < endof(_subsidies); s++) {
 
			if (s->cargo_type == CT_INVALID) continue;
 
		Subsidy *s;
 
		FOR_ALL_SUBSIDIES(s) {
 
			if (s->age >= 12) {
 
				/* Station -> Station */
 
				const Station *from = Station::GetIfValid(s->from);
src/saveload/subsidy_sl.cpp
Show inline comments
 
@@ -19,15 +19,10 @@ static const SaveLoad _subsidies_desc[] 
 

	
 
void Save_SUBS()
 
{
 
	int i;
 
	Subsidy *s;
 

	
 
	for (i = 0; i != lengthof(_subsidies); i++) {
 
		s = &_subsidies[i];
 
		if (s->cargo_type != CT_INVALID) {
 
			SlSetArrayIndex(i);
 
			SlObject(s, _subsidies_desc);
 
		}
 
	FOR_ALL_SUBSIDIES(s) {
 
		SlSetArrayIndex(s - _subsidies);
 
		SlObject(s, _subsidies_desc);
 
	}
 
}
 

	
src/subsidy.cpp
Show inline comments
 
@@ -69,9 +69,8 @@ Pair SetupSubsidyDecodeParam(const Subsi
 
void DeleteSubsidyWithTown(TownID index)
 
{
 
	Subsidy *s;
 

	
 
	for (s = _subsidies; s != endof(_subsidies); s++) {
 
		if (s->cargo_type != CT_INVALID && s->age < 12) {
 
	FOR_ALL_SUBSIDIES(s) {
 
		if (s->age < 12) {
 
			const CargoSpec *cs = GetCargo(s->cargo_type);
 
			if (((cs->town_effect == TE_PASSENGERS || cs->town_effect == TE_MAIL) && (index == s->from || index == s->to)) ||
 
				((cs->town_effect == TE_GOODS || cs->town_effect == TE_FOOD) && index == s->to)) {
 
@@ -84,9 +83,8 @@ void DeleteSubsidyWithTown(TownID index)
 
void DeleteSubsidyWithIndustry(IndustryID index)
 
{
 
	Subsidy *s;
 

	
 
	for (s = _subsidies; s != endof(_subsidies); s++) {
 
		if (s->cargo_type != CT_INVALID && s->age < 12) {
 
	FOR_ALL_SUBSIDIES(s) {
 
		if (s->age < 12) {
 
			const CargoSpec *cs = GetCargo(s->cargo_type);
 
			if (cs->town_effect != TE_PASSENGERS && cs->town_effect != TE_MAIL &&
 
				(index == s->from || (cs->town_effect != TE_GOODS && cs->town_effect != TE_FOOD && index == s->to))) {
 
@@ -98,12 +96,11 @@ void DeleteSubsidyWithIndustry(IndustryI
 

	
 
void DeleteSubsidyWithStation(StationID index)
 
{
 
	Subsidy *s;
 
	bool dirty = false;
 

	
 
	for (s = _subsidies; s != endof(_subsidies); s++) {
 
		if (s->cargo_type != CT_INVALID && s->age >= 12 &&
 
				(s->from == index || s->to == index)) {
 
	Subsidy *s;
 
	FOR_ALL_SUBSIDIES(s) {
 
		if (s->age >= 12 && (s->from == index || s->to == index)) {
 
			s->cargo_type = CT_INVALID;
 
			dirty = true;
 
		}
 
@@ -196,8 +193,7 @@ static void FindSubsidyCargoRoute(FoundR
 
static bool CheckSubsidyDuplicate(Subsidy *s)
 
{
 
	const Subsidy *ss;
 

	
 
	for (ss = _subsidies; ss != endof(_subsidies); ss++) {
 
	FOR_ALL_SUBSIDIES(ss) {
 
		if (s != ss &&
 
				ss->from == s->from &&
 
				ss->to == s->to &&
 
@@ -212,15 +208,13 @@ static bool CheckSubsidyDuplicate(Subsid
 

	
 
void SubsidyMonthlyLoop()
 
{
 
	Subsidy *s;
 
	Station *st;
 
	uint n;
 
	FoundRoute fr;
 
	bool modified = false;
 

	
 
	for (s = _subsidies; s != endof(_subsidies); s++) {
 
		if (s->cargo_type == CT_INVALID) continue;
 

	
 
	Subsidy *s;
 
	FOR_ALL_SUBSIDIES(s) {
 
		if (s->age == 12 - 1) {
 
			Pair reftype = SetupSubsidyDecodeParam(s, 1);
 
			AddNewsItem(STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED, NS_SUBSIDIES, (NewsReferenceType)reftype.a, s->from, (NewsReferenceType)reftype.b, s->to);
 
@@ -290,7 +284,7 @@ bool CheckSubsidised(const Station *from
 
	TileIndex xy;
 

	
 
	/* check if there is an already existing subsidy that applies to us */
 
	for (s = _subsidies; s != endof(_subsidies); s++) {
 
	FOR_ALL_SUBSIDIES(s) {
 
		if (s->cargo_type == cargo_type &&
 
				s->age >= 12 &&
 
				s->from == from->index &&
 
@@ -300,7 +294,7 @@ bool CheckSubsidised(const Station *from
 
	}
 

	
 
	/* check if there's a new subsidy that applies.. */
 
	for (s = _subsidies; s != endof(_subsidies); s++) {
 
	FOR_ALL_SUBSIDIES(s) {
 
		if (s->cargo_type == cargo_type && s->age < 12) {
 
			/* Check distance from source */
 
			const CargoSpec *cs = GetCargo(cargo_type);
src/subsidy_gui.cpp
Show inline comments
 
@@ -43,8 +43,10 @@ struct SubsidyListWindow : Window {
 
		if (y < 0) return;
 

	
 
		uint num = 0;
 
		for (const Subsidy *s = _subsidies; s != endof(_subsidies); s++) {
 
			if (s->cargo_type != CT_INVALID && s->age < 12) {
 

	
 
		const Subsidy *s;
 
		FOR_ALL_SUBSIDIES(s) {
 
			if (s->age < 12) {
 
				y -= FONT_HEIGHT_NORMAL;
 
				if (y < 0) {
 
					this->HandleClick(s);
 
@@ -62,8 +64,8 @@ struct SubsidyListWindow : Window {
 
		y -= 11; // "Services already subsidised:"
 
		if (y < 0) return;
 

	
 
		for (const Subsidy *s = _subsidies; s != endof(_subsidies); s++) {
 
			if (s->cargo_type != CT_INVALID && s->age >= 12) {
 
		FOR_ALL_SUBSIDIES(s) {
 
			if (s->age >= 12) {
 
				y -= FONT_HEIGHT_NORMAL;
 
				if (y < 0) {
 
					this->HandleClick(s);
 
@@ -127,8 +129,8 @@ struct SubsidyListWindow : Window {
 
		y += FONT_HEIGHT_NORMAL;
 
		uint num = 0;
 

	
 
		for (s = _subsidies; s != endof(_subsidies); s++) {
 
			if (s->cargo_type != CT_INVALID && s->age < 12) {
 
		FOR_ALL_SUBSIDIES(s) {
 
			if (s->age < 12) {
 
				/* Displays the two offered towns */
 
				SetupSubsidyDecodeParam(s, 1);
 
				SetDParam(7, _date - ymd.day + 384 - s->age * 32);
 
@@ -149,8 +151,8 @@ struct SubsidyListWindow : Window {
 
		y += FONT_HEIGHT_NORMAL;
 
		num = 0;
 

	
 
		for (s = _subsidies; s != endof(_subsidies); s++) {
 
			if (s->cargo_type != CT_INVALID && s->age >= 12) {
 
		FOR_ALL_SUBSIDIES(s) {
 
			if (s->age >= 12) {
 
				SetupSubsidyDecodeParam(s, 1);
 
				SetDParam(3, Station::Get(s->to)->owner);
 
				SetDParam(4, _date - ymd.day + 768 - s->age * 32);
src/subsidy_type.h
Show inline comments
 
@@ -18,4 +18,8 @@ struct Subsidy {
 

	
 
extern Subsidy _subsidies[MAX_COMPANIES];
 

	
 
#define FOR_ALL_SUBSIDIES_FROM(var, start) for (var = &_subsidies[start]; var < endof(_subsidies); var++) \
 
		if (var->cargo_type != CT_INVALID)
 
#define FOR_ALL_SUBSIDIES(var) FOR_ALL_SUBSIDIES_FROM(var, 0)
 

	
 
#endif /* SUBSIDY_TYPE_H */
0 comments (0 inline, 0 general)