(svn r26130) -Codechange: add some guards against using invalid image indices

This commit is contained in:
rubidium
2013-11-26 16:08:58 +00:00
parent 7abe85d727
commit d2ba772f6a
7 changed files with 87 additions and 6 deletions

View File

@@ -99,6 +99,12 @@ static const SpriteID _aircraft_sprite[] = {
0x0EBD, 0x0EC5
};
template <>
bool IsValidImageIndex<VEH_AIRCRAFT>(uint8 image_index)
{
return image_index < lengthof(_aircraft_sprite);
}
/** Helicopter rotor animation states */
enum HelicopterRotorStates {
HRS_ROTOR_STOPPED,
@@ -160,6 +166,7 @@ SpriteID Aircraft::GetImage(Direction direction, EngineImageType image_type) con
spritenum = this->GetEngine()->original_image_index;
}
assert(IsValidImageIndex<VEH_AIRCRAFT>(spritenum));
return direction + _aircraft_sprite[spritenum];
}
@@ -189,6 +196,7 @@ static SpriteID GetAircraftIcon(EngineID engine, EngineImageType image_type)
spritenum = e->original_image_index;
}
assert(IsValidImageIndex<VEH_AIRCRAFT>(spritenum));
return DIR_W + _aircraft_sprite[spritenum];
}