diff options
author | peter1138 <peter1138@openttd.org> | 2006-12-18 10:46:06 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-12-18 10:46:06 +0000 |
commit | f010066c1b43489cc2e88df038c6c3e568114738 (patch) | |
tree | d0112ab3cc649e05c63c4ef8170ee40a5e356cb4 /newgrf.c | |
parent | 37c45e44af207b1853a701363a49a298c5924893 (diff) | |
download | openttd-f010066c1b43489cc2e88df038c6c3e568114738.tar.xz |
(svn r7503) -Codechange: [NewGRF] Add bounds checking for spriteset cargo types. (NewCargo support will change this rule a bit...)
Diffstat (limited to 'newgrf.c')
-rw-r--r-- | newgrf.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1843,6 +1843,11 @@ static void FeatureMapSpriteGroup(byte *buf, int len) if (ctype == 0xFE) ctype = GC_DEFAULT_NA; if (ctype == 0xFF) ctype = GC_PURCHASE; + if (ctype >= NUM_GLOBAL_CID) { + grfmsg(GMS_WARN, "FeatureMapSpriteGroup: Cargo type %d out of range, skipping.", ctype); + continue; + } + statspec->spritegroup[ctype] = _cur_grffile->spritegroups[groupid]; } } @@ -1919,6 +1924,11 @@ static void FeatureMapSpriteGroup(byte *buf, int len) if (ctype == GC_INVALID) ctype = GC_PURCHASE; + if (ctype >= NUM_GLOBAL_CID) { + grfmsg(GMS_WARN, "FeatureMapSpriteGroup: Cargo type %d out of range, skipping.", ctype); + continue; + } + if (wagover) { SetWagonOverrideSprites(engine, ctype, _cur_grffile->spritegroups[groupid], last_engines, last_engines_count); } else { |