Changeset - r14926:3d9a47be1c5a
[Not reviewed]
master
0 3 0
terkhen - 14 years ago 2010-04-02 12:20:41
terkhen@openttd.org
(svn r19539) -Codechange: Use a macro to loop through the list of sorted cargo specifications.
3 files changed with 17 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/build_vehicle_gui.cpp
Show inline comments
 
@@ -850,15 +850,16 @@ struct BuildVehicleWindow : Window {
 
			this->cargo_filter[filter_items] = CF_NONE;
 
			this->cargo_filter_texts[filter_items] = STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE;
 
			filter_items++;
 
		}
 

	
 
		/* Collect available cargo types for filtering. */
 
		for (int i = 0; i < _sorted_cargo_specs_size; i++) {
 
			this->cargo_filter[filter_items] = _sorted_cargo_specs[i]->Index();
 
			this->cargo_filter_texts[filter_items] = _sorted_cargo_specs[i]->name;
 
		const CargoSpec *cs;
 
		FOR_ALL_SORTED_CARGOSPECS(cs) {
 
			this->cargo_filter[filter_items] = cs->Index();
 
			this->cargo_filter_texts[filter_items] = cs->name;
 
			filter_items++;
 
		}
 

	
 
		/* Terminate the filter list. */
 
		this->cargo_filter_texts[filter_items] = INVALID_STRING_ID;
 

	
src/cargotype.h
Show inline comments
 
@@ -146,7 +146,9 @@ static inline bool IsCargoInClass(CargoI
 
}
 

	
 
#define FOR_ALL_CARGOSPECS_FROM(var, start) for (size_t cargospec_index = start; var = NULL, cargospec_index < CargoSpec::GetArraySize(); cargospec_index++) \
 
		if ((var = CargoSpec::Get(cargospec_index))->IsValid())
 
#define FOR_ALL_CARGOSPECS(var) FOR_ALL_CARGOSPECS_FROM(var, 0)
 

	
 
#define FOR_ALL_SORTED_CARGOSPECS(var) for (uint8 index = 0; var = _sorted_cargo_specs[index], index < _sorted_cargo_specs_size; index++)
 

	
 
#endif /* CARGOTYPE_H */
src/graph_gui.cpp
Show inline comments
 
@@ -842,14 +842,17 @@ struct PaymentRatesGraphWindow : BaseGra
 
	}
 

	
 
	void UpdateExcludedData()
 
	{
 
		this->excluded_data = 0;
 

	
 
		for (int i = 0; i < _sorted_cargo_specs_size; i++) {
 
			if (HasBit(_legend_excluded_cargo, _sorted_cargo_specs[i]->Index())) SetBit(this->excluded_data, i);
 
		int i = 0;
 
		const CargoSpec *cs;
 
		FOR_ALL_SORTED_CARGOSPECS(cs) {
 
			if (HasBit(_legend_excluded_cargo, cs->Index())) SetBit(this->excluded_data, i);
 
			i++;
 
		}
 
	}
 

	
 
	void UpdateLoweredWidgets()
 
	{
 
		for (int i = 0; i < _sorted_cargo_specs_size; i++) {
 
@@ -916,18 +919,20 @@ struct PaymentRatesGraphWindow : BaseGra
 
	}
 

	
 
	virtual void OnHundredthTick()
 
	{
 
		this->UpdateExcludedData();
 

	
 
		int i;
 
		for (i = 0; i < _sorted_cargo_specs_size; i++) {
 
			this->colours[i] = _sorted_cargo_specs[i]->legend_colour;
 
		int i = 0;
 
		const CargoSpec *cs;
 
		FOR_ALL_SORTED_CARGOSPECS(cs) {
 
			this->colours[i] = cs->legend_colour;
 
			for (uint j = 0; j != 20; j++) {
 
				this->cost[i][j] = GetTransportedGoodsIncome(10, 20, j * 4 + 4, _sorted_cargo_specs[i]->Index());
 
				this->cost[i][j] = GetTransportedGoodsIncome(10, 20, j * 4 + 4, cs->Index());
 
			}
 
			i++;
 
		}
 
		this->num_dataset = i;
 
	}
 
};
 

	
 
/** Construct the row containing the digit keys. */
0 comments (0 inline, 0 general)