1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-26 05:34:12 +01:00

Fix #14891, a8650c6b06: Minimum sprite zoomlevel could break in some cases. (#14894)

Caused by sprite control flags not being reset when scanning available sprites.
This commit is contained in:
Peter Nelson
2025-12-10 08:17:24 +00:00
committed by GitHub
parent fef0d830b2
commit 1e6153e875

View File

@@ -534,7 +534,7 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty
}
struct GrfSpriteOffset {
size_t file_pos;
size_t file_pos = 0;
SpriteCacheCtrlFlags control_flags{};
};
@@ -565,7 +565,7 @@ void ReadGRFSpriteOffsets(SpriteFile &file)
size_t old_pos = file.GetPos();
file.SeekTo(data_offset, SEEK_CUR);
GrfSpriteOffset offset{0};
GrfSpriteOffset offset{};
/* Loop over all sprite section entries and store the file
* offset for each newly encountered ID. */
@@ -574,6 +574,7 @@ void ReadGRFSpriteOffsets(SpriteFile &file)
if (id != prev_id) {
_grf_sprite_offsets[prev_id] = offset;
offset.file_pos = file.GetPos() - 4;
offset.control_flags.Reset();
}
prev_id = id;
uint length = file.ReadDword();