annotate src/script/api/script_infrastructure.cpp @ 18571:820ed7ca5fcc draft

(svn r23416) -Add: [NoAI] API for querying infrastructure costs.
author michi_cc <michi_cc@openttd.org>
date Sat, 03 Dec 2011 23:40:57 +0000 (2011-12-03)
parents
children 88567087417f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18571
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
1 /* $Id$ */
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
2
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
3 /*
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
4 * This file is part of OpenTTD.
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
8 */
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
9
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
10 /** @file script_infrastructure.cpp Implementation of ScriptInfrastructure. */
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
11
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
12 #include "../../stdafx.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
13 #include "script_infrastructure.hpp"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
14 #include "../../settings_func.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
15 #include "../../company_base.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
16 #include "../../rail.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
17 #include "../../road_func.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
18 #include "../../water.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
19 #include "../../station_func.h"
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
20
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
21
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
22 /* static */ uint32 ScriptInfrastructure::GetRailPieceCount(ScriptCompany::CompanyID company, ScriptRail::RailType railtype)
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
23 {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
24 company = ScriptCompany::ResolveCompanyID(company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
25 if (company == ScriptCompany::COMPANY_INVALID || (::RailType)railtype >= RAILTYPE_END) return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
26
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
27 return ::Company::Get((::CompanyID)company)->infrastructure.rail[railtype];
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
28 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
29
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
30 /* static */ uint32 ScriptInfrastructure::GetRoadPieceCount(ScriptCompany::CompanyID company, ScriptRoad::RoadType roadtype)
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
31 {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
32 company = ScriptCompany::ResolveCompanyID(company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
33 if (company == ScriptCompany::COMPANY_INVALID || (::RoadType)roadtype >= ROADTYPE_END) return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
34
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
35 return ::Company::Get((::CompanyID)company)->infrastructure.road[roadtype];
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
36 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
37
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
38 /* static */ uint32 ScriptInfrastructure::GetInfrastructurePieceCount(ScriptCompany::CompanyID company, Infrastructure infra_type)
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
39 {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
40 company = ScriptCompany::ResolveCompanyID(company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
41 if (company == ScriptCompany::COMPANY_INVALID) return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
42
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
43 ::Company *c = ::Company::Get((::CompanyID)company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
44 switch (infra_type) {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
45 case INFRASTRUCTURE_RAIL: {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
46 uint32 count = 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
47 for (::RailType rt = ::RAILTYPE_BEGIN; rt != ::RAILTYPE_END; rt++) {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
48 count += c->infrastructure.rail[rt];
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
49 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
50 return count;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
51 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
52
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
53 case INFRASTRUCTURE_SIGNALS:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
54 return c->infrastructure.signal;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
55
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
56 case INFRASTRUCTURE_ROAD: {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
57 uint32 count = 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
58 for (::RoadType rt = ::ROADTYPE_BEGIN; rt != ::ROADTYPE_END; rt++) {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
59 count += c->infrastructure.road[rt];
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
60 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
61 return count;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
62 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
63
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
64 case INFRASTRUCTURE_CANAL:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
65 return c->infrastructure.water;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
66
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
67 case INFRASTRUCTURE_STATION:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
68 return c->infrastructure.station;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
69
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
70 case INFRASTRUCTURE_AIRPORT:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
71 return c->infrastructure.airport;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
72
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
73 default:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
74 return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
75 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
76 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
77
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
78 /* static */ Money ScriptInfrastructure::GetMonthlyRailCosts(ScriptCompany::CompanyID company, ScriptRail::RailType railtype)
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
79 {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
80 company = ScriptCompany::ResolveCompanyID(company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
81 if (company == ScriptCompany::COMPANY_INVALID || (::RailType)railtype >= RAILTYPE_END || !_settings_game.economy.infrastructure_maintenance) return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
82
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
83 return ::RailMaintenanceCost((::RailType)railtype, ::Company::Get((::CompanyID)company)->infrastructure.rail[railtype]);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
84 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
85
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
86 /* static */ Money ScriptInfrastructure::GetMonthlyRoadCosts(ScriptCompany::CompanyID company, ScriptRoad::RoadType roadtype)
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
87 {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
88 company = ScriptCompany::ResolveCompanyID(company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
89 if (company == ScriptCompany::COMPANY_INVALID || (::RoadType)roadtype >= ROADTYPE_END || !_settings_game.economy.infrastructure_maintenance) return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
90
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
91 return ::RoadMaintenanceCost((::RoadType)roadtype, ::Company::Get((::CompanyID)company)->infrastructure.road[roadtype]);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
92 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
93
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
94 /* static */ Money ScriptInfrastructure::GetMonthlyInfrastructureCosts(ScriptCompany::CompanyID company, Infrastructure infra_type)
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
95 {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
96 company = ScriptCompany::ResolveCompanyID(company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
97 if (company == ScriptCompany::COMPANY_INVALID || !_settings_game.economy.infrastructure_maintenance) return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
98
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
99 ::Company *c = ::Company::Get((::CompanyID)company);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
100 switch (infra_type) {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
101 case INFRASTRUCTURE_RAIL: {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
102 Money cost;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
103 for (::RailType rt = ::RAILTYPE_BEGIN; rt != ::RAILTYPE_END; rt++) {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
104 cost += RailMaintenanceCost(rt, c->infrastructure.rail[rt]);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
105 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
106 return cost;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
107 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
108
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
109 case INFRASTRUCTURE_SIGNALS:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
110 return SignalMaintenanceCost(c->infrastructure.signal);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
111
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
112 case INFRASTRUCTURE_ROAD: {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
113 Money cost;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
114 for (::RoadType rt = ::ROADTYPE_BEGIN; rt != ::ROADTYPE_END; rt++) {
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
115 cost += RoadMaintenanceCost(rt, c->infrastructure.road[rt]);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
116 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
117 return cost;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
118 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
119
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
120 case INFRASTRUCTURE_CANAL:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
121 return CanalMaintenanceCost(c->infrastructure.water);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
122
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
123 case INFRASTRUCTURE_STATION:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
124 return StationMaintenanceCost(c->infrastructure.station);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
125
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
126 case INFRASTRUCTURE_AIRPORT:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
127 return AirportMaintenanceCost(c->index);
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
128
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
129 default:
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
130 return 0;
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
131 }
820ed7ca5fcc (svn r23416) -Add: [NoAI] API for querying infrastructure costs.
michi_cc <michi_cc@openttd.org>
parents:
diff changeset
132 }