summaryrefslogtreecommitdiff
path: root/newgrf.c
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2006-09-01 02:56:02 +0000
committerbelugas <belugas@openttd.org>2006-09-01 02:56:02 +0000
commitc05c81f35c70a95d4d528bdbc8da391b244da065 (patch)
tree14098c80266973a12af61bffed78d4012ee022fc /newgrf.c
parent718c0214bf69540326268bd03d9cd7e31a311ad4 (diff)
downloadopenttd-c05c81f35c70a95d4d528bdbc8da391b244da065.tar.xz
(svn r6289) -Fix(r6108) : case 0x48 (generic text) should not have been set over newstations.
It grabbed everyting. Instead, we are now using ids for that purpose, 0xC9, oxD0, 0xDC (FS#304 by Osai) - Protect newgrf text from entries of 1 char and fewer - Protect currency name from an overrun of ids Thanks to glx
Diffstat (limited to 'newgrf.c')
-rw-r--r--newgrf.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/newgrf.c b/newgrf.c
index c1fa4bc82..be151521b 100644
--- a/newgrf.c
+++ b/newgrf.c
@@ -1090,10 +1090,11 @@ static bool GlobalVarChangeInfo(uint gvid, int numinfo, int prop, byte **bufp, i
case 0x0A: // Currency display names
FOR_EACH_OBJECT {
+ uint curidx = gvid + i;
StringID newone = GetGRFStringID(_cur_grffile->grfid,grf_load_word(&buf));
- if (newone != STR_UNDEFINED) {
- _currency_specs[gvid + i].name = newone;
+ if ((newone != STR_UNDEFINED) && (curidx < NUM_CURRENCY)) {
+ _currency_specs[curidx].name = newone;
}
}
break;
@@ -1153,7 +1154,7 @@ static bool GlobalVarChangeInfo(uint gvid, int numinfo, int prop, byte **bufp, i
}
break;
- case 0x0F: // Euro introduction datess
+ case 0x0F: // Euro introduction dates
FOR_EACH_OBJECT {
uint curidx = gvid +i;
Year year_euro = grf_load_word(&buf);
@@ -1900,11 +1901,6 @@ static void FeatureNewName(byte *buf, int len)
break;
}
- case 0x48 : { // this will allow things like currencies new strings, and everything else
- AddGRFString(_cur_grffile->grfid, id, lang, new_scheme, name, id);
- break;
- }
-
default:
switch (GB(id, 8, 8)) {
case 0xC4: /* Station class name */
@@ -1924,6 +1920,12 @@ static void FeatureNewName(byte *buf, int len)
}
break;
+ case 0xC9:
+ case 0xD0:
+ case 0xDC:
+ AddGRFString(_cur_grffile->grfid, id, lang, new_scheme, name, STR_UNDEFINED);
+ break;
+
default:
DEBUG(grf, 7) ("FeatureNewName: Unsupported ID (0x%04X)", id);
break;