File diff r13747:a8fc5e526175 → r13748:140a77305928
src/newgrf.cpp
Show inline comments
 
@@ -6214,14 +6214,27 @@ static void FinalisePriceBaseMultipliers
 
				DEBUG(grf, 3, "Price base multiplier %d from '%s' propagated to '%s'", p, dest->filename, source->filename);
 
			}
 
			source->price_base_multipliers[p] = dest->price_base_multipliers[p];
 
		}
 
	}
 

	
 
	/* Apply fallback prices */
 
	const GRFFile * const *end = _grf_files.End();
 
	for (GRFFile **file = _grf_files.Begin(); file != end; file++) {
 
		PriceMultipliers &price_base_multipliers = (*file)->price_base_multipliers;
 
		for (Price p = PR_BEGIN; p < PR_END; p++) {
 
			Price fallback_price = _price_base_specs[p].fallback_price;
 
			if (fallback_price != INVALID_PRICE && (byte)price_base_multipliers[p] == 0x80) {
 
				/* No price multiplier has been set.
 
				 * So copy the multiplier from the fallback price, maybe a multiplier was set there. */
 
				price_base_multipliers[p] = price_base_multipliers[fallback_price];
 
			}
 
		}
 
	}
 

	
 
	/* Decide local/global scope of price base multipliers */
 
	const GRFFile * const *end = _grf_files.End();
 
	for (GRFFile **file = _grf_files.Begin(); file != end; file++) {
 
		PriceMultipliers &price_base_multipliers = (*file)->price_base_multipliers;
 
		for (Price p = PR_BEGIN; p < PR_END; p++) {
 
			if ((byte)price_base_multipliers[p] == 0x80) {
 
				/* No multiplier was set; set it to a neutral value */
 
				price_base_multipliers[p] = 0;