Merge branch 'master' into jgrpp
# Conflicts: # src/blitter/32bpp_anim.hpp # src/blitter/32bpp_base.hpp # src/blitter/8bpp_base.hpp # src/blitter/null.hpp # src/cheat_gui.cpp # src/gfx.cpp # src/linkgraph/linkgraph.cpp # src/spriteloader/grf.cpp # src/station_cmd.cpp
This commit is contained in:
@@ -92,7 +92,7 @@ bool DecodeSingleSprite(SpriteLoader::Sprite *sprite, SpriteFile &file, size_t f
|
||||
|
||||
if (num != 0) return WarnCorruptSprite(file, file_pos, __LINE__);
|
||||
|
||||
sprite->AllocateData(zoom_lvl, sprite->width * sprite->height);
|
||||
sprite->AllocateData(zoom_lvl, static_cast<size_t>(sprite->width) * sprite->height);
|
||||
|
||||
/* Convert colour depth to pixel size. */
|
||||
int bpp = 0;
|
||||
@@ -168,13 +168,14 @@ bool DecodeSingleSprite(SpriteLoader::Sprite *sprite, SpriteFile &file, size_t f
|
||||
} while (!last_item);
|
||||
}
|
||||
} else {
|
||||
if (dest_size < sprite->width * sprite->height * bpp) {
|
||||
int64 sprite_size = static_cast<int64>(sprite->width) * sprite->height * bpp;
|
||||
if (dest_size < sprite_size) {
|
||||
return WarnCorruptSprite(file, file_pos, __LINE__);
|
||||
}
|
||||
|
||||
if (dest_size > sprite->width * sprite->height * bpp) {
|
||||
if (dest_size > sprite_size) {
|
||||
static byte warning_level = 0;
|
||||
DEBUG(sprite, warning_level, "Ignoring " OTTD_PRINTF64 " unused extra bytes from the sprite from %s at position %i", dest_size - sprite->width * sprite->height * bpp, file.GetSimplifiedFilename().c_str(), (int)file_pos);
|
||||
DEBUG(sprite, warning_level, "Ignoring " OTTD_PRINTF64 " unused extra bytes from the sprite from %s at position %i", dest_size - sprite_size, file.GetSimplifiedFilename().c_str(), (int)file_pos);
|
||||
warning_level = 6;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user