|
@@ -925,12 +925,19 @@ static uint32 VehicleGetVariable(Vehicle
|
|
|
uint set = (v->cargo.Count() * totalsets) / max((uint16)1, v->cargo_cap);
|
|
|
set = min(set, totalsets - 1);
|
|
|
|
|
|
return in_motion ? group->loaded[set] : group->loading[set];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Scope resolver of a single vehicle.
|
|
|
* @param ro Surrounding resolver.
|
|
|
* @param engine_type Engine type
|
|
|
* @param v %Vehicle being resolved.
|
|
|
* @param info_view Indicates if the item is being drawn in an info window.
|
|
|
*/
|
|
|
VehicleScopeResolver::VehicleScopeResolver(ResolverObject *ro, EngineID engine_type, const Vehicle *v, bool info_view)
|
|
|
: ScopeResolver(ro)
|
|
|
{
|
|
|
this->v = v;
|
|
|
this->self_type = engine_type;
|
|
|
this->info_view = info_view;
|
|
@@ -944,12 +951,21 @@ VehicleScopeResolver::VehicleScopeResolv
|
|
|
static const GRFFile *GetEngineGrfFile(EngineID engine_type)
|
|
|
{
|
|
|
const Engine *e = Engine::Get(engine_type);
|
|
|
return (e != NULL) ? e->GetGRF() : NULL;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Resolver of a vehicle (chain).
|
|
|
* @param engine_type Engine type
|
|
|
* @param v %Vehicle being resolved.
|
|
|
* @param info_view Indicates if the item is being drawn in an info window.
|
|
|
* @param callback Callback ID.
|
|
|
* @param callback_param1 First parameter (var 10) of the callback.
|
|
|
* @param callback_param2 Second parameter (var 18) of the callback.
|
|
|
*/
|
|
|
VehicleResolverObject::VehicleResolverObject(EngineID engine_type, const Vehicle *v, bool info_view,
|
|
|
CallbackID callback, uint32 callback_param1, uint32 callback_param2)
|
|
|
: ResolverObject(GetEngineGrfFile(engine_type), callback, callback_param1, callback_param2),
|
|
|
self_scope(this, engine_type, v, info_view),
|
|
|
parent_scope(this, engine_type, ((v != NULL) ? v->First() : v), info_view),
|
|
|
relative_scope(this, engine_type, v, info_view),
|