mirror of https://github.com/OpenTTD/OpenTTD
(svn r2057) Add InlineString() to make _userstring construction a bit cleaner.
parent
9cde836d08
commit
0c325e10da
20
misc_gui.c
20
misc_gui.c
|
@ -669,28 +669,20 @@ static void DrawStationCoverageText(const uint *accepts, int str_x, int str_y, u
|
||||||
char *b;
|
char *b;
|
||||||
|
|
||||||
b = _userstring;
|
b = _userstring;
|
||||||
b[0] = 0x81;
|
b = InlineString(b, STR_000D_ACCEPTS);
|
||||||
b[1] = STR_000D_ACCEPTS;
|
|
||||||
b[2] = STR_000D_ACCEPTS >> 8;
|
|
||||||
b += 3;
|
|
||||||
|
|
||||||
for(i=0; i!=NUM_CARGO; i++,mask>>=1) {
|
for(i=0; i!=NUM_CARGO; i++,mask>>=1) {
|
||||||
if (accepts[i] >= 8 && (mask&1) ) {
|
if (accepts[i] >= 8 && (mask&1) ) {
|
||||||
StringID id = _cargoc.names_s[i];
|
StringID id = _cargoc.names_s[i];
|
||||||
b[0] = 0x81;
|
b = InlineString(b, id);
|
||||||
b[1] = (byte)(id & 255);
|
*b++ = ',';
|
||||||
b[2] = (byte)(id >> 8);
|
*b++ = ' ';
|
||||||
b[3] = ',';
|
|
||||||
b[4] = ' ';
|
|
||||||
b += 5;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b == &_userstring[3]) {
|
if (b == &_userstring[3]) {
|
||||||
b[0] = 0x81;
|
b = InlineString(b, STR_00D0_NOTHING);
|
||||||
b[1] = (char)STR_00D0_NOTHING;
|
*b++ = '\0';
|
||||||
b[2] = STR_00D0_NOTHING >> 8;
|
|
||||||
b[3] = 0;
|
|
||||||
} else {
|
} else {
|
||||||
b[-2] = 0;
|
b[-2] = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -401,27 +401,21 @@ static void DrawStationViewWindow(Window *w)
|
||||||
char *b;
|
char *b;
|
||||||
|
|
||||||
b = _userstring;
|
b = _userstring;
|
||||||
b[0] = 0x81;
|
b = InlineString(b, STR_000C_ACCEPTS);
|
||||||
b[1] = STR_000C_ACCEPTS;
|
|
||||||
b[2] = STR_000C_ACCEPTS >> 8;
|
|
||||||
b += 3;
|
|
||||||
|
|
||||||
for(i=0; i!=NUM_CARGO; i++) {
|
for(i=0; i!=NUM_CARGO; i++) {
|
||||||
if ((b - _userstring) + 5 > USERSTRING_LEN - 1)
|
if ((b - _userstring) + 5 > USERSTRING_LEN - 1)
|
||||||
break;
|
break;
|
||||||
if (st->goods[i].waiting_acceptance & 0x8000) {
|
if (st->goods[i].waiting_acceptance & 0x8000) {
|
||||||
b[0] = 0x81;
|
b = InlineString(b, _cargoc.names_s[i]);
|
||||||
WRITE_LE_UINT16(b+1, _cargoc.names_s[i]);
|
WRITE_LE_UINT16(b, 0x202C);
|
||||||
WRITE_LE_UINT16(b+3, 0x202C);
|
b += 2;
|
||||||
b += 5;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b == &_userstring[3]) {
|
if (b == &_userstring[3]) {
|
||||||
b[0] = 0x81;
|
b = InlineString(b, STR_00D0_NOTHING);
|
||||||
b[1] = (char)STR_00D0_NOTHING;
|
*b++ = '\0';
|
||||||
b[2] = STR_00D0_NOTHING >> 8;
|
|
||||||
b[3] = 0;
|
|
||||||
} else {
|
} else {
|
||||||
b[-2] = 0;
|
b[-2] = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
#ifndef STRINGS_H
|
#ifndef STRINGS_H
|
||||||
#define 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);
|
char *GetString(char *buffr, uint16 string);
|
||||||
|
|
||||||
void InjectDParam(int amount);
|
void InjectDParam(int amount);
|
||||||
|
|
Loading…
Reference in New Issue