summaryrefslogtreecommitdiff
path: root/src/newgrf_spritegroup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/newgrf_spritegroup.cpp')
-rw-r--r--src/newgrf_spritegroup.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp
index 80b58c273..6a42f9b4c 100644
--- a/src/newgrf_spritegroup.cpp
+++ b/src/newgrf_spritegroup.cpp
@@ -236,12 +236,14 @@ const SpriteGroup *RealSpriteGroup::Resolve(ResolverObject *object) const
*/
const DrawTileSprites *TileLayoutSpriteGroup::ProcessRegisters(uint8 *stage) const
{
- if (stage != NULL) *stage = GetConstructionStageOffset(*stage, this->num_building_stages);
- if (!this->dts.NeedsPreprocessing()) return &this->dts;
+ if (!this->dts.NeedsPreprocessing()) {
+ if (stage != NULL && this->dts.consistent_max_offset > 0) *stage = GetConstructionStageOffset(*stage, this->dts.consistent_max_offset);
+ return &this->dts;
+ }
static DrawTileSprites result;
uint8 actual_stage = stage != NULL ? *stage : 0;
- this->dts.PrepareLayout(0, actual_stage, actual_stage, false);
+ this->dts.PrepareLayout(0, 0, 0, actual_stage, false);
this->dts.ProcessRegisters(0, 0, false);
result.seq = this->dts.GetLayout(&result.ground);