Changeset - r15449:7e841b86439b
[Not reviewed]
master
0 3 0
frosch - 14 years ago 2010-07-10 10:55:16
frosch@openttd.org
(svn r20108) -Change: [NewGRF] Report substitute industry type in AI railstation selection callback.
3 files changed with 18 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/newgrf_generic.cpp
Show inline comments
 
@@ -13,6 +13,7 @@
 
#include "debug.h"
 
#include "newgrf.h"
 
#include "newgrf_spritegroup.h"
 
#include "industrytype.h"
 
#include "core/bitmath_func.hpp"
 
#include <list>
 

	
 
@@ -170,6 +171,18 @@ uint16 GetAiPurchaseCallbackResult(uint8
 

	
 
	NewGenericResolver(&object, *file);
 

	
 
	if (src_industry != IT_AI_UNKNOWN && src_industry != IT_AI_TOWN) {
 
		const IndustrySpec *is = GetIndustrySpec(src_industry);
 
		/* If this is no original industry, use the substitute type */
 
		if (is->grf_prop.subst_id != INVALID_INDUSTRYTYPE) src_industry = is->grf_prop.subst_id;
 
	}
 

	
 
	if (dst_industry != IT_AI_UNKNOWN && dst_industry != IT_AI_TOWN) {
 
		const IndustrySpec *is = GetIndustrySpec(dst_industry);
 
		/* If this is no original industry, use the substitute type */
 
		if (is->grf_prop.subst_id != INVALID_INDUSTRYTYPE) dst_industry = is->grf_prop.subst_id;
 
	}
 

	
 
	object.callback = CBID_GENERIC_AI_PURCHASE_SELECTION;
 
	object.u.generic.cargo_type        = cargo_type;
 
	object.u.generic.default_selection = default_selection;
src/newgrf_generic.h
Show inline comments
 
@@ -39,6 +39,9 @@ enum AIConstructionEvent {
 
	AICE_STATION_GET_STATION_ID      = 0x00, ///< Get a station ID to build
 
};
 

	
 
static const IndustryType IT_AI_UNKNOWN = 0xFE; ///< The AI has no specific industry in mind.
 
static const IndustryType IT_AI_TOWN    = 0xFF; ///< The AI actually wants to transport to/from a town, not an industry.
 

	
 
void ResetGenericCallbacks();
 
void AddGenericCallback(uint8 feature, const struct GRFFile *file, const struct SpriteGroup *group);
 

	
src/newgrf_spritegroup.h
Show inline comments
 
@@ -334,8 +334,8 @@ struct ResolverObject {
 
		struct {
 
			CargoID cargo_type;
 
			uint8 default_selection;
 
			IndustryType src_industry;
 
			IndustryType dst_industry;
 
			uint8 src_industry;            ///< Source industry substitute type. 0xFF for "town", 0xFE for "unknown".
 
			uint8 dst_industry;            ///< Destination industry substitute type. 0xFF for "town", 0xFE for "unknown".
 
			uint8 distance;
 
			AIConstructionEvent event;
 
			uint8 count;
0 comments (0 inline, 0 general)