diff --git a/misc_gui.c b/misc_gui.c index 4811a82287..0b35bbcc3a 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -669,28 +669,20 @@ static void DrawStationCoverageText(const uint *accepts, int str_x, int str_y, u char *b; b = _userstring; - b[0] = 0x81; - b[1] = STR_000D_ACCEPTS; - b[2] = STR_000D_ACCEPTS >> 8; - b += 3; + b = InlineString(b, STR_000D_ACCEPTS); for(i=0; i!=NUM_CARGO; i++,mask>>=1) { if (accepts[i] >= 8 && (mask&1) ) { StringID id = _cargoc.names_s[i]; - b[0] = 0x81; - b[1] = (byte)(id & 255); - b[2] = (byte)(id >> 8); - b[3] = ','; - b[4] = ' '; - b += 5; + b = InlineString(b, id); + *b++ = ','; + *b++ = ' '; } } if (b == &_userstring[3]) { - b[0] = 0x81; - b[1] = (char)STR_00D0_NOTHING; - b[2] = STR_00D0_NOTHING >> 8; - b[3] = 0; + b = InlineString(b, STR_00D0_NOTHING); + *b++ = '\0'; } else { b[-2] = 0; } diff --git a/station_gui.c b/station_gui.c index 702351c142..b98afe617c 100644 --- a/station_gui.c +++ b/station_gui.c @@ -401,27 +401,21 @@ static void DrawStationViewWindow(Window *w) char *b; b = _userstring; - b[0] = 0x81; - b[1] = STR_000C_ACCEPTS; - b[2] = STR_000C_ACCEPTS >> 8; - b += 3; + b = InlineString(b, STR_000C_ACCEPTS); for(i=0; i!=NUM_CARGO; i++) { if ((b - _userstring) + 5 > USERSTRING_LEN - 1) break; if (st->goods[i].waiting_acceptance & 0x8000) { - b[0] = 0x81; - WRITE_LE_UINT16(b+1, _cargoc.names_s[i]); - WRITE_LE_UINT16(b+3, 0x202C); - b += 5; + b = InlineString(b, _cargoc.names_s[i]); + WRITE_LE_UINT16(b, 0x202C); + b += 2; } } if (b == &_userstring[3]) { - b[0] = 0x81; - b[1] = (char)STR_00D0_NOTHING; - b[2] = STR_00D0_NOTHING >> 8; - b[3] = 0; + b = InlineString(b, STR_00D0_NOTHING); + *b++ = '\0'; } else { b[-2] = 0; } diff --git a/strings.h b/strings.h index 8cf629255d..f3cd34d1df 100644 --- a/strings.h +++ b/strings.h @@ -1,6 +1,14 @@ #ifndef STRINGS_H #define STRINGS_H +static inline char* InlineString(char* buf, uint16 string) +{ + *buf++ = '\x81'; + *buf++ = string & 0xFF; + *buf++ = string >> 8; + return buf; +} + char *GetString(char *buffr, uint16 string); void InjectDParam(int amount);