mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-24 06:59:10 +00:00
(svn r4510) - NewGRF bounds checking:
- check Engine ID is within range - don't try setting a vehicle name if the string id is not a valid Engine ID
This commit is contained in:
6
newgrf.c
6
newgrf.c
@@ -1761,9 +1761,11 @@ static void VehicleNewName(byte *buf, int len)
|
|||||||
case GSF_TRAIN:
|
case GSF_TRAIN:
|
||||||
case GSF_ROAD:
|
case GSF_ROAD:
|
||||||
case GSF_SHIP:
|
case GSF_SHIP:
|
||||||
case GSF_AIRCRAFT:
|
case GSF_AIRCRAFT: {
|
||||||
SetCustomEngineName(id, AddGRFString(_cur_grffile->grfid, id, lang, name));
|
StringID string = AddGRFString(_cur_grffile->grfid, id, lang, name);
|
||||||
|
if (id < TOTAL_NUM_ENGINES) SetCustomEngineName(id, string);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
case GSF_STATION:
|
case GSF_STATION:
|
||||||
|
@@ -102,6 +102,7 @@ static SpriteGroup *engine_custom_sprites[TOTAL_NUM_ENGINES][NUM_GLOBAL_CID];
|
|||||||
|
|
||||||
void SetCustomEngineSprites(EngineID engine, byte cargo, SpriteGroup *group)
|
void SetCustomEngineSprites(EngineID engine, byte cargo, SpriteGroup *group)
|
||||||
{
|
{
|
||||||
|
assert(engine < TOTAL_NUM_ENGINES);
|
||||||
if (engine_custom_sprites[engine][cargo] != NULL) {
|
if (engine_custom_sprites[engine][cargo] != NULL) {
|
||||||
DEBUG(grf, 6)("SetCustomEngineSprites: engine `%d' cargo `%d' already has group -- replacing.", engine, cargo);
|
DEBUG(grf, 6)("SetCustomEngineSprites: engine `%d' cargo `%d' already has group -- replacing.", engine, cargo);
|
||||||
}
|
}
|
||||||
@@ -610,6 +611,7 @@ StringID _engine_custom_names[TOTAL_NUM_ENGINES];
|
|||||||
|
|
||||||
void SetCustomEngineName(EngineID engine, StringID name)
|
void SetCustomEngineName(EngineID engine, StringID name)
|
||||||
{
|
{
|
||||||
|
assert(engine < lengthof(_engine_custom_names));
|
||||||
_engine_custom_names[engine] = name;
|
_engine_custom_names[engine] = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user