File diff r28377:d7ceb84d9d5a → r28378:9db411cc3b19
src/script/api/script_vehiclelist.cpp
Show inline comments
 
@@ -15,6 +15,8 @@
 
#include "../../depot_map.h"
 
#include "../../vehicle_base.h"
 
#include "../../train.h"
 
#include "../../core/backup_type.hpp"
 
#include <../squirrel/sqvm.h>
 

	
 
#include "../../safeguards.h"
 

	
 
@@ -41,6 +43,14 @@ ScriptVehicleList::ScriptVehicleList(HSQ
 
	bool backup_allow = ScriptObject::GetAllowDoCommand();
 
	ScriptObject::SetAllowDoCommand(false);
 

	
 
	/* Limit the total number of ops that can be consumed by a filter operation, if a filter function is present */
 
	SQInteger new_ops_error_threshold = vm->_ops_till_suspend_error_threshold;
 
	if (nparam >= 1 && vm->_ops_till_suspend_error_threshold == INT64_MIN) {
 
		new_ops_error_threshold = vm->_ops_till_suspend - MAX_VALUATE_OPS;
 
		vm->_ops_till_suspend_error_label = "vehicle filter function";
 
	}
 
	AutoRestoreBackup ops_error_threshold_backup(vm->_ops_till_suspend_error_threshold, new_ops_error_threshold);
 

	
 
	for (const Vehicle *v : Vehicle::Iterate()) {
 
		if (v->owner != ScriptObject::GetCompany() && !ScriptCompanyMode::IsDeity()) continue;
 
		if (!v->IsPrimaryVehicle() && !(v->type == VEH_TRAIN && ::Train::From(v)->IsFreeWagon())) continue;