src/ai/api/ai_industry.cpp
branchnoai
changeset 9649 bc8c06513f5b
parent 9497 f6678533ccba
child 9650 7e5e1a7ecbff
--- a/src/ai/api/ai_industry.cpp	Fri Jul 13 13:49:39 2007 +0000
+++ b/src/ai/api/ai_industry.cpp	Fri Jul 13 14:14:26 2007 +0000
@@ -3,6 +3,7 @@
 /** @file ai_industry.cpp handles the query-related of the AIIndustry class */
 
 #include "ai_industry.hpp"
+#include "ai_cargo.hpp"
 #include "../../industry.h"
 #include "../../strings.h"
 #include "../../variables.h" /* For SetDParam */
@@ -35,9 +36,21 @@
 	return industry_name;
 }
 
-TileIndex AIIndustry::GetLocation(IndustryID industry_id)
+/* static */ TileIndex AIIndustry::GetProduction(IndustryID industry_id, CargoID cargo_id)
 {
-	if (!this->IsValidIndustry(industry_id)) return INVALID_TILE;
+	if (!AIIndustry::IsValidIndustry(industry_id)) return -1;
+	if (!AICargo::IsValidCargo(cargo_id)) return -1;
+
 	const Industry *i = ::GetIndustry(industry_id);
-	return i->xy;
+	const IndustrySpec *indsp = GetIndustrySpec(i->type);
+
+	if (indsp->produced_cargo[0] == cargo_id) return i->this_month_production[0];
+	if (indsp->produced_cargo[1] == cargo_id) return i->this_month_production[1];
+	return -1;
 }
+
+/* static */ TileIndex AIIndustry::GetLocation(IndustryID industry_id)
+{
+	if (!AIIndustry::IsValidIndustry(industry_id)) return INVALID_TILE;
+	return ::GetIndustry(industry_id)->xy;
+}