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:
Jonathan G Rennison
2023-01-03 11:36:24 +00:00
27 changed files with 117 additions and 96 deletions

View File

@@ -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;
}