diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp index ce75956f2b..5ae850f9fe 100644 --- a/src/newgrf_spritegroup.cpp +++ b/src/newgrf_spritegroup.cpp @@ -198,9 +198,10 @@ const SpriteGroup *DeterministicSpriteGroup::Resolve(ResolverObject &object) con if (adjust.variable == 0x7E) { const SpriteGroup *subgroup = SpriteGroup::Resolve(adjust.subroutine, object, false); if (subgroup == nullptr) { - value = CALLBACK_FAILED; + value = UINT16_MAX; } else { value = subgroup->GetCallbackResult(); + if (value == CALLBACK_FAILED) value = UINT16_MAX; } /* Note: 'last_value' and 'reseed' are shared between the main chain and the procedure */