diff options
author | peter1138 <peter1138@openttd.org> | 2006-11-06 15:25:02 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-11-06 15:25:02 +0000 |
commit | bc92e4ee9b39b4de8fd310893772235639979c04 (patch) | |
tree | 14d27e1fa0b04e593a00ca91c8c3cc98645ab0a9 | |
parent | db7d474b0f7589c1598b5a947a93a462352f1d7d (diff) | |
download | openttd-bc92e4ee9b39b4de8fd310893772235639979c04.tar.xz |
(svn r7080) -Codechange: Remove negative array indexes, and only add ", " when needed, when building station acceptance lists.
-rw-r--r-- | misc_gui.c | 20 | ||||
-rw-r--r-- | station_gui.c | 19 |
2 files changed, 23 insertions, 16 deletions
diff --git a/misc_gui.c b/misc_gui.c index 2db97dac2..4ebe9edd6 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -715,25 +715,29 @@ static void DrawStationCoverageText(const AcceptedCargo accepts, int str_x, int str_y, uint mask) { char *b = _userstring; + bool first = true; int i; b = InlineString(b, STR_000D_ACCEPTS); for (i = 0; i != NUM_CARGO; i++, mask >>= 1) { + if (b >= lastof(_userstring) - 5) break; if (accepts[i] >= 8 && mask & 1) { + if (first) { + first = false; + } else { + /* Add a comma if this is not the first item */ + *b++ = ','; + *b++ = ' '; + } b = InlineString(b, _cargoc.names_s[i]); - *b++ = ','; - *b++ = ' '; } } - if (b == &_userstring[3]) { - b = InlineString(b, STR_00D0_NOTHING); - *b++ = '\0'; - } else { - b[-2] = '\0'; - } + /* If first is still true then no cargo is accepted */ + if (first) b = InlineString(b, STR_00D0_NOTHING); + *b = '\0'; DrawStringMultiLine(str_x, str_y, STR_SPEC_USERSTRING, 144); } diff --git a/station_gui.c b/station_gui.c index d69e34297..0ed5367b1 100644 --- a/station_gui.c +++ b/station_gui.c @@ -637,25 +637,28 @@ static void DrawStationViewWindow(Window *w) if (IsWindowOfPrototype(w, _station_view_widgets)) { char *b = _userstring; + bool first = true; b = InlineString(b, STR_000C_ACCEPTS); for (i = 0; i != NUM_CARGO; i++) { if (b >= endof(_userstring) - 5 - 1) break; if (st->goods[i].waiting_acceptance & 0x8000) { + if (first) { + first = false; + } else { + /* Add a comma if this is not the first item */ + *b++ = ','; + *b++ = ' '; + } b = InlineString(b, _cargoc.names_s[i]); - *b++ = ','; - *b++ = ' '; } } - if (b == &_userstring[3]) { - b = InlineString(b, STR_00D0_NOTHING); - *b++ = '\0'; - } else { - b[-2] = '\0'; - } + /* If first is still true then no cargo is accepted */ + if (first) b = InlineString(b, STR_00D0_NOTHING); + *b = '\0'; DrawStringMultiLine(2, 67, STR_SPEC_USERSTRING, 245); } else { DrawString(2, 67, STR_3034_LOCAL_RATING_OF_TRANSPORT, 0); |