summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-07-12 13:40:24 +0000
committerrubidium <rubidium@openttd.org>2007-07-12 13:40:24 +0000
commit7cd00468d6f6bbe81dba02761c0b3110596ef0c3 (patch)
treee986cc1d16371565e3936109564f6db81a52476d /src
parent6f0db273d649b5f607f4e3fc85c93945169fb9a2 (diff)
downloadopenttd-7cd00468d6f6bbe81dba02761c0b3110596ef0c3.tar.xz
(svn r10522) -Fix: the "build truck station" GUI showed that it would accept tourists when it does not, whereas the "build bus station" GUI did not show them when it did accept them.
Diffstat (limited to 'src')
-rw-r--r--src/airport_gui.cpp2
-rw-r--r--src/dock_gui.cpp2
-rw-r--r--src/gui.h8
-rw-r--r--src/misc_gui.cpp16
-rw-r--r--src/rail_gui.cpp2
-rw-r--r--src/road_gui.cpp2
6 files changed, 22 insertions, 10 deletions
diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp
index e663b8ffb..bdbdcc401 100644
--- a/src/airport_gui.cpp
+++ b/src/airport_gui.cpp
@@ -183,7 +183,7 @@ static void BuildAirportPickerWndProc(Window *w, WindowEvent *e)
DrawWindowWidgets(w);
// strings such as 'Size' and 'Coverage Area'
// 'Coverage Area'
- DrawStationCoverageAreaText(2, 206, (uint)-1, rad);
+ DrawStationCoverageAreaText(2, 206, SCT_ALL, rad);
break;
}
diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp
index 2e608af55..ffb8a7975 100644
--- a/src/dock_gui.cpp
+++ b/src/dock_gui.cpp
@@ -250,7 +250,7 @@ static void BuildDockStationWndProc(Window *w, WindowEvent *e)
SetTileSelectSize(1, 1);
}
- DrawStationCoverageAreaText(4, 50, (uint)-1, rad);
+ DrawStationCoverageAreaText(4, 50, SCT_ALL, rad);
break;
}
diff --git a/src/gui.h b/src/gui.h
index cfe9fa5b9..34ba64f5c 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -108,7 +108,13 @@ void ShowPlayerCompany(PlayerID player);
void ShowEstimatedCostOrIncome(Money cost, int x, int y);
void ShowErrorMessage(StringID msg_1, StringID msg_2, int x, int y);
-void DrawStationCoverageAreaText(int sx, int sy, uint mask,int rad);
+enum StationCoverageType {
+ SCT_PASSENGERS_ONLY,
+ SCT_NON_PASSENGERS_ONLY,
+ SCT_ALL
+};
+
+void DrawStationCoverageAreaText(int sx, int sy, StationCoverageType sct, int rad);
void CheckRedrawStationCoverage(const Window *w);
void ShowSmallMap();
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index 7abe9ac37..f3b14639c 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -751,16 +751,22 @@ void GuiShowTooltipsWithArgs(StringID str, uint paramcount, const uint64 params[
static void DrawStationCoverageText(const AcceptedCargo accepts,
- int str_x, int str_y, uint mask)
+ int str_x, int str_y, StationCoverageType sct)
{
char *b = _userstring;
bool first = true;
b = InlineString(b, STR_000D_ACCEPTS);
- for (CargoID i = 0; i < NUM_CARGO; i++, mask >>= 1) {
+ for (CargoID i = 0; i < NUM_CARGO; i++) {
if (b >= lastof(_userstring) - 5) break;
- if (accepts[i] >= 8 && mask & 1) {
+ switch (sct) {
+ case SCT_PASSENGERS_ONLY: if (!IsCargoInClass(i, CC_PASSENGERS)) continue; break;
+ case SCT_NON_PASSENGERS_ONLY: if (IsCargoInClass(i, CC_PASSENGERS)) continue; break;
+ case SCT_ALL: break;
+ default: NOT_REACHED();
+ }
+ if (accepts[i] >= 8) {
if (first) {
first = false;
} else {
@@ -779,12 +785,12 @@ static void DrawStationCoverageText(const AcceptedCargo accepts,
DrawStringMultiLine(str_x, str_y, STR_SPEC_USERSTRING, 144);
}
-void DrawStationCoverageAreaText(int sx, int sy, uint mask, int rad) {
+void DrawStationCoverageAreaText(int sx, int sy, StationCoverageType sct, int rad) {
TileIndex tile = TileVirtXY(_thd.pos.x, _thd.pos.y);
AcceptedCargo accepts;
if (tile < MapSize()) {
GetAcceptanceAroundTiles(accepts, tile, _thd.size.x / TILE_SIZE, _thd.size.y / TILE_SIZE , rad);
- DrawStationCoverageText(accepts, sx, sy, mask);
+ DrawStationCoverageText(accepts, sx, sy, sct);
}
}
diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp
index cecebf246..b595d5c50 100644
--- a/src/rail_gui.cpp
+++ b/src/rail_gui.cpp
@@ -778,7 +778,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e)
DrawStringCentered(74, 101 + y_offset, STR_3004_PLATFORM_LENGTH, 0);
DrawStringCentered(74, 141 + y_offset, STR_3066_COVERAGE_AREA_HIGHLIGHT, 0);
- DrawStationCoverageAreaText(2, 166 + y_offset, (uint)-1, rad);
+ DrawStationCoverageAreaText(2, 166 + y_offset, SCT_ALL, rad);
if (newstations) {
uint16 i;
diff --git a/src/road_gui.cpp b/src/road_gui.cpp
index 405f7a4dc..43c5e5b80 100644
--- a/src/road_gui.cpp
+++ b/src/road_gui.cpp
@@ -579,7 +579,7 @@ static void RoadStationPickerWndProc(Window *w, WindowEvent *e)
StationPickerDrawSprite(171, 85, RAILTYPE_BEGIN, _cur_roadtype, image + 1);
DrawStationCoverageAreaText(2, 146,
- ((w->window_class == WC_BUS_STATION) ? (1 << CT_PASSENGERS) : ~(1 << CT_PASSENGERS)),
+ (w->window_class == WC_BUS_STATION) ? SCT_PASSENGERS_ONLY : SCT_NON_PASSENGERS_ONLY,
3);
} break;