There is a small glitch, such that fuel is not always consumed properly:
If there is more than one fuel tank of the same type, and the first fuel tank in the list is empty, no fuel is consumed. For example one can build a vehicle with an electric motor and 2 storage batteries. Fill each of them with 1 battery and drive infinitely.
The following patch should fix the issue.
diff --git a/vehicle.cpp b/vehicle.cpp
index 1d33b4a..7be92f8 100644
--- a/vehicle.cpp
+++ b/vehicle.cpp
@@ -1026,10 +1026,16 @@ void vehicle::consume_fuel ()
(part_info(p).fuel_type == (elec? (j? AT_BATT : AT_PLUT) : ftypes[ft])))
{
parts[p].amount -= amnt;
- if (parts[p].amount < 0)
+ if (parts[p].amount < 0)
+ {
+ amnt = -parts[p].amount;
parts[p].amount = 0;
- found = true;
- break;
+ }
+ else
+ {
+ found = true;
+ break;
+ }
}
if (found)
break;