|
@@ -66,25 +66,25 @@
|
|
|
/* static */ SQInteger ScriptVehicle::GetLength(VehicleID vehicle_id)
|
|
|
{
|
|
|
if (!IsValidVehicle(vehicle_id)) return -1;
|
|
|
|
|
|
const Vehicle *v = ::Vehicle::Get(vehicle_id);
|
|
|
return v->IsGroundVehicle() ? v->GetGroundVehicleCache()->cached_total_length : -1;
|
|
|
}
|
|
|
|
|
|
/* static */ VehicleID ScriptVehicle::_BuildVehicleInternal(TileIndex depot, EngineID engine_id, CargoID cargo)
|
|
|
{
|
|
|
EnforceCompanyModeValid(VEHICLE_INVALID);
|
|
|
EnforcePrecondition(VEHICLE_INVALID, ScriptEngine::IsBuildable(engine_id));
|
|
|
EnforcePrecondition(VEHICLE_INVALID, cargo == CT_INVALID || ScriptCargo::IsValidCargo(cargo));
|
|
|
EnforcePrecondition(VEHICLE_INVALID, !::IsValidCargoID(cargo) || ScriptCargo::IsValidCargo(cargo));
|
|
|
|
|
|
::VehicleType type = ::Engine::Get(engine_id)->type;
|
|
|
|
|
|
EnforcePreconditionCustomError(VEHICLE_INVALID, !ScriptGameSettings::IsDisabledVehicleType((ScriptVehicle::VehicleType)type), ScriptVehicle::ERR_VEHICLE_BUILD_DISABLED);
|
|
|
|
|
|
if (!ScriptObject::Command<CMD_BUILD_VEHICLE>::Do(&ScriptInstance::DoCommandReturnVehicleID, depot, engine_id, true, cargo, INVALID_CLIENT_ID)) return VEHICLE_INVALID;
|
|
|
|
|
|
/* In case of test-mode, we return VehicleID 0 */
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
/* static */ VehicleID ScriptVehicle::BuildVehicle(TileIndex depot, EngineID engine_id)
|