summaryrefslogtreecommitdiff
path: root/strings.c
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-10-03 09:25:42 +0000
committerpeter1138 <peter1138@openttd.org>2006-10-03 09:25:42 +0000
commit7be5422d831d779e22e850645541a8aa2490f48e (patch)
treeb33c86230c9df1e154118759280dfbb2419037f3 /strings.c
parent753b5724001079c3352d23a911488044884dcf5b (diff)
downloadopenttd-7be5422d831d779e22e850645541a8aa2490f48e.tar.xz
(svn r6622) - Add support for NewGRF text includes. (Based on mart3p's patch)
Diffstat (limited to 'strings.c')
-rw-r--r--strings.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/strings.c b/strings.c
index 67669a5e4..7166b28cf 100644
--- a/strings.c
+++ b/strings.c
@@ -172,6 +172,7 @@ static char *GetStringWithArgs(char *buffr, uint string, const int32 *argv)
{
uint index = GB(string, 0, 11);
uint tab = GB(string, 11, 5);
+ char buff[512];
if (GB(string, 0, 16) == 0) error("!invalid string id 0 in GetString");
@@ -190,14 +191,25 @@ static char *GetStringWithArgs(char *buffr, uint string, const int32 *argv)
case 15:
return GetName(index, buffr);
+ case 26:
+ /* Include string within newgrf text (format code 81) */
+ if (HASBIT(index, 10)) {
+ StringID string = GetGRFStringID(0, 0xD000 + GB(index, 0, 10));
+ return GetStringWithArgs(buffr, string, argv);
+ }
+ break;
+
case 28:
- return GetGRFString(buffr, index);
+ GetGRFString(buff, index);
+ return FormatString(buffr, buff, argv, 0);
case 29:
- return GetGRFString(buffr, index + 0x800);
+ GetGRFString(buff, index + 0x800);
+ return FormatString(buffr, buff, argv, 0);
case 30:
- return GetGRFString(buffr, index + 0x1000);
+ GetGRFString(buff, index + 0x1000);
+ return FormatString(buffr, buff, argv, 0);
case 31:
// dynamic strings. These are NOT to be passed through the formatter,