changeset 7260:270b3009c7d3 draft

(svn r10572) -Codechange: Add function CheckIfCallBackAllowsAvailability for industries
author belugas <belugas@openttd.org>
date Sun, 15 Jul 2007 00:19:40 +0000
parents bb4daf4d3593
children 0f9108453415
files src/newgrf_industries.cpp src/newgrf_industries.h
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf_industries.cpp
+++ b/src/newgrf_industries.cpp
@@ -380,6 +380,19 @@
 	return false;
 }
 
+bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCallType creation_type)
+{
+	const IndustrySpec *indspec = GetIndustrySpec(type);
+
+	if (HASBIT(indspec->callback_flags, CBM_IND_AVAILABLE)) {
+		uint16 res = GetIndustryCallback(CBID_INDUSTRY_AVAILABLE, 0, creation_type, NULL, type, INVALID_TILE);
+		if (res != CALLBACK_FAILED) {
+			return (res == 0);
+		}
+	}
+	return true;
+}
+
 static int32 DerefIndProd(uint field, bool use_register)
 {
 	return use_register ? (int32)GetRegister(field) : field;
--- a/src/newgrf_industries.h
+++ b/src/newgrf_industries.h
@@ -14,6 +14,7 @@
 uint32 GetIndustryIDAtOffset(TileIndex new_tile, TileIndex old_tile, const Industry *i);
 void IndustryProductionCallback(Industry *ind, int reason);
 bool CheckIfCallBackAllowsCreation(TileIndex tile, IndustryType type, uint itspec_index);
+bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCallType creation_type);
 
 IndustryType MapNewGRFIndustryType(IndustryType grf_type, uint32 grf_id);