(svn r14234) -Fix: feeder share was computed wrong when splitting cargo packet
authorsmatz
Wed, 03 Sep 2008 10:30:07 +0000
changeset 10067 5fdba79c2cee
parent 10066 f18e97752eeb
child 10068 a32f54c91520
(svn r14234) -Fix: feeder share was computed wrong when splitting cargo packet
src/cargopacket.cpp
--- a/src/cargopacket.cpp	Wed Sep 03 07:51:07 2008 +0000
+++ b/src/cargopacket.cpp	Wed Sep 03 10:30:07 2008 +0000
@@ -218,19 +218,21 @@
 			/* Can move only part of the packet, so split it into two pieces */
 			if (mta != MTA_FINAL_DELIVERY) {
 				CargoPacket *cp_new = new CargoPacket();
+
+				Money fs = cp->feeder_share * count / cp->count;
+				cp->feeder_share -= fs;
+
 				cp_new->source          = cp->source;
 				cp_new->source_xy       = cp->source_xy;
 				cp_new->loaded_at_xy    = (mta == MTA_CARGO_LOAD) ? data : cp->loaded_at_xy;
 
 				cp_new->days_in_transit = cp->days_in_transit;
-				cp_new->feeder_share    = cp->feeder_share / count;
+				cp_new->feeder_share    = fs;
 				/* When cargo is moved into another vehicle you have *always* paid for it */
 				cp_new->paid_for        = (mta == MTA_CARGO_LOAD) ? false : cp->paid_for;
 
 				cp_new->count = count;
 				dest->packets.push_back(cp_new);
-
-				cp->feeder_share /= cp->count - count;
 			}
 			cp->count -= count;