--- a/newgrf.c Fri Apr 21 20:25:34 2006 +0000
+++ b/newgrf.c Fri Apr 21 20:59:04 2006 +0000
@@ -1761,9 +1761,11 @@
case GSF_TRAIN:
case GSF_ROAD:
case GSF_SHIP:
- case GSF_AIRCRAFT:
- SetCustomEngineName(id, AddGRFString(_cur_grffile->grfid, id, lang, name));
+ case GSF_AIRCRAFT: {
+ StringID string = AddGRFString(_cur_grffile->grfid, id, lang, name);
+ if (id < TOTAL_NUM_ENGINES) SetCustomEngineName(id, string);
break;
+ }
#if 0
case GSF_STATION:
--- a/newgrf_engine.c Fri Apr 21 20:25:34 2006 +0000
+++ b/newgrf_engine.c Fri Apr 21 20:59:04 2006 +0000
@@ -102,6 +102,7 @@
void SetCustomEngineSprites(EngineID engine, byte cargo, SpriteGroup *group)
{
+ assert(engine < TOTAL_NUM_ENGINES);
if (engine_custom_sprites[engine][cargo] != NULL) {
DEBUG(grf, 6)("SetCustomEngineSprites: engine `%d' cargo `%d' already has group -- replacing.", engine, cargo);
}
@@ -610,6 +611,7 @@
void SetCustomEngineName(EngineID engine, StringID name)
{
+ assert(engine < lengthof(_engine_custom_names));
_engine_custom_names[engine] = name;
}