1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-21 03:12:41 +01:00

Codechange: Do not use a mutable global to return calculated VarAction2 results.

This commit is contained in:
frosch
2025-04-28 17:48:55 +02:00
committed by frosch
parent e90b68d504
commit d030d17bd6
8 changed files with 71 additions and 54 deletions

View File

@@ -998,14 +998,14 @@ static uint32_t VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *objec
}
/* virtual */ const SpriteGroup *VehicleResolverObject::ResolveReal(const RealSpriteGroup &group) const
/* virtual */ ResolverResult VehicleResolverObject::ResolveReal(const RealSpriteGroup &group) const
{
const Vehicle *v = this->self_scope.v;
if (v == nullptr) {
if (!group.loading.empty()) return group.loading[0];
if (!group.loaded.empty()) return group.loaded[0];
return nullptr;
return std::monostate{};
}
const Order &order = v->First()->current_order;
@@ -1014,7 +1014,7 @@ static uint32_t VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *objec
uint totalsets = static_cast<uint>(in_motion ? group.loaded.size() : group.loading.size());
if (totalsets == 0) return nullptr;
if (totalsets == 0) return std::monostate{};
uint set = (v->cargo.StoredCount() * totalsets) / std::max<uint16_t>(1u, v->cargo_cap);
set = std::min(set, totalsets - 1);