diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index e083ef55b6..021ff8a264 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -998,13 +998,13 @@ static uint32_t VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *objec } -/* virtual */ const SpriteGroup *VehicleResolverObject::ResolveReal(const RealSpriteGroup *group) const +/* virtual */ const SpriteGroup *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]; + if (!group.loading.empty()) return group.loading[0]; + if (!group.loaded.empty()) return group.loaded[0]; return nullptr; } @@ -1012,14 +1012,14 @@ static uint32_t VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *objec bool not_loading = (order.GetUnloadType() & OUFB_NO_UNLOAD) && (order.GetLoadType() & OLFB_NO_LOAD); bool in_motion = !order.IsType(OT_LOADING) || not_loading; - uint totalsets = in_motion ? (uint)group->loaded.size() : (uint)group->loading.size(); + uint totalsets = static_cast(in_motion ? group.loaded.size() : group.loading.size()); if (totalsets == 0) return nullptr; uint set = (v->cargo.StoredCount() * totalsets) / std::max(1u, v->cargo_cap); set = std::min(set, totalsets - 1); - return in_motion ? group->loaded[set] : group->loading[set]; + return in_motion ? group.loaded[set] : group.loading[set]; } GrfSpecFeature VehicleResolverObject::GetFeature() const diff --git a/src/newgrf_engine.h b/src/newgrf_engine.h index 26ee250884..92d87a795f 100644 --- a/src/newgrf_engine.h +++ b/src/newgrf_engine.h @@ -64,7 +64,7 @@ struct VehicleResolverObject : public SpecializedResolverObjectloaded.empty()) return group->loaded[0]; - if (!group->loading.empty()) return group->loading[0]; + if (!group.loaded.empty()) return group.loaded[0]; + if (!group.loading.empty()) return group.loading[0]; return nullptr; } @@ -276,7 +276,7 @@ const SpriteGroup *RandomizedSpriteGroup::Resolve(ResolverObject &object) const const SpriteGroup *RealSpriteGroup::Resolve(ResolverObject &object) const { - return object.ResolveReal(this); + return object.ResolveReal(*this); } /** diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h index 507ea76e07..348ff33a26 100644 --- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -370,7 +370,7 @@ public: return result != nullptr ? result->GetCallbackResult() : CALLBACK_FAILED; } - virtual const SpriteGroup *ResolveReal(const RealSpriteGroup *group) const; + virtual const SpriteGroup *ResolveReal(const RealSpriteGroup &group) const; virtual ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, uint8_t relative = 0); diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index d677714f8a..a92f455370 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -519,10 +519,10 @@ uint32_t Waypoint::GetNewGRFVariable(const ResolverObject &, uint8_t variable, [ return UINT_MAX; } -/* virtual */ const SpriteGroup *StationResolverObject::ResolveReal(const RealSpriteGroup *group) const +/* virtual */ const SpriteGroup *StationResolverObject::ResolveReal(const RealSpriteGroup &group) const { if (this->station_scope.st == nullptr || !Station::IsExpected(this->station_scope.st)) { - if (!group->loading.empty()) return group->loading[0]; + if (!group.loading.empty()) return group.loading[0]; return nullptr; } @@ -554,18 +554,18 @@ uint32_t Waypoint::GetNewGRFVariable(const ResolverObject &, uint8_t variable, [ cargo = std::min(0xfffu, cargo); if (cargo > this->station_scope.statspec->cargo_threshold) { - if (!group->loading.empty()) { - uint set = ((cargo - this->station_scope.statspec->cargo_threshold) * (uint)group->loading.size()) / (4096 - this->station_scope.statspec->cargo_threshold); - return group->loading[set]; + if (!group.loading.empty()) { + uint set = ((cargo - this->station_scope.statspec->cargo_threshold) * static_cast(group.loading.size())) / (4096 - this->station_scope.statspec->cargo_threshold); + return group.loading[set]; } } else { - if (!group->loaded.empty()) { - uint set = (cargo * (uint)group->loaded.size()) / (this->station_scope.statspec->cargo_threshold + 1); - return group->loaded[set]; + if (!group.loaded.empty()) { + uint set = (cargo * static_cast(group.loaded.size())) / (this->station_scope.statspec->cargo_threshold + 1); + return group.loaded[set]; } } - if (!group->loading.empty()) return group->loading[0]; + if (!group.loading.empty()) return group.loading[0]; return nullptr; } diff --git a/src/newgrf_station.h b/src/newgrf_station.h index 2be7947e43..7857df82b6 100644 --- a/src/newgrf_station.h +++ b/src/newgrf_station.h @@ -75,7 +75,7 @@ struct StationResolverObject : public SpecializedResolverObject