diff options
author | rubidium <rubidium@openttd.org> | 2013-04-06 12:36:33 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2013-04-06 12:36:33 +0000 |
commit | 7a3d549f2f2b372fd97fce6795a49b7c49823548 (patch) | |
tree | 4201a25b4a42fa803bda5b12a94d8b64dce6ce77 /src/script/api/script_station.cpp | |
parent | b2292122b660372f253a8e0813e24366cbd049dc (diff) | |
download | openttd-7a3d549f2f2b372fd97fce6795a49b7c49823548.tar.xz |
(svn r25150) -Fix [FS#5514]: [Script] The was no way to differentiate between a cargo-station combination with or without rating, so introduce [AI|GS]Station::HasRating and let GetRating return -1 when there is no rating
Diffstat (limited to 'src/script/api/script_station.cpp')
-rw-r--r-- | src/script/api/script_station.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/script/api/script_station.cpp b/src/script/api/script_station.cpp index 423c5545a..a7b8459fc 100644 --- a/src/script/api/script_station.cpp +++ b/src/script/api/script_station.cpp @@ -44,10 +44,17 @@ return ::Station::Get(station_id)->goods[cargo_id].cargo.Count(); } +/* static */ bool ScriptStation::HasCargoRating(StationID station_id, CargoID cargo_id) +{ + if (!IsValidStation(station_id)) return false; + if (!ScriptCargo::IsValidCargo(cargo_id)) return false; + + return ::Station::Get(station_id)->goods[cargo_id].HasRating(); +} + /* static */ int32 ScriptStation::GetCargoRating(StationID station_id, CargoID cargo_id) { - if (!IsValidStation(station_id)) return -1; - if (!ScriptCargo::IsValidCargo(cargo_id)) return -1; + if (!ScriptStation::HasCargoRating(station_id, cargo_id)) return -1; return ::ToPercent8(::Station::Get(station_id)->goods[cargo_id].rating); } |