Mercurial > hg > openttd
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 |
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 } |