diff options
author | rubidium <rubidium@openttd.org> | 2013-11-26 16:08:58 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2013-11-26 16:08:58 +0000 |
commit | d2ba772f6a9e6339b28faf62c3163d33de1498b3 (patch) | |
tree | 19e25a79a8dbe70c7eb21455984c401f72531068 /src/ship_cmd.cpp | |
parent | 7abe85d72715f91ab309a3aaa18572a8964b189c (diff) | |
download | openttd-d2ba772f6a9e6339b28faf62c3163d33de1498b3.tar.xz |
(svn r26130) -Codechange: add some guards against using invalid image indices
Diffstat (limited to 'src/ship_cmd.cpp')
-rw-r--r-- | src/ship_cmd.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index bafce981f..f1d09d40c 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -57,6 +57,12 @@ WaterClass GetEffectiveWaterClass(TileIndex tile) static const uint16 _ship_sprites[] = {0x0E5D, 0x0E55, 0x0E65, 0x0E6D}; +template <> +bool IsValidImageIndex<VEH_SHIP>(uint8 image_index) +{ + return image_index < lengthof(_ship_sprites); +} + static inline TrackBits GetTileShipTrackStatus(TileIndex tile) { return TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_WATER, 0)); @@ -74,6 +80,7 @@ static SpriteID GetShipIcon(EngineID engine, EngineImageType image_type) spritenum = e->original_image_index; } + assert(IsValidImageIndex<VEH_SHIP>(spritenum)); return DIR_W + _ship_sprites[spritenum]; } @@ -115,6 +122,7 @@ SpriteID Ship::GetImage(Direction direction, EngineImageType image_type) const spritenum = this->GetEngine()->original_image_index; } + assert(IsValidImageIndex<VEH_SHIP>(spritenum)); return _ship_sprites[spritenum] + direction; } |