economy.c
changeset 2587 d554e2a03afa
parent 2548 97ada3bd2702
child 2630 35249d2ded3e
--- a/economy.c	Wed Nov 02 23:55:10 2005 +0000
+++ b/economy.c	Thu Nov 03 09:22:24 2005 +0000
@@ -1463,13 +1463,12 @@
 		ShowFeederIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, v_profit_total);
 
 	if (v->type == VEH_Train) {
-		int num = - (int)GetStationPlatforms(st, v->tile) * 2;
-		do num++; while ( (v=v->next) != NULL);
-		if (num > 0) {
-			unloading_time <<=1;
-			unloading_time += num * unloading_time;
+		// Each platform tile is worth 2 rail vehicles.
+		int overhang = v->u.rail.cached_total_length - GetStationPlatforms(st, v->tile) * 16;
+		if (overhang > 0) {
+			unloading_time <<= 1;
+			unloading_time += (overhang * unloading_time) / 8;
 		}
-		v = u;
 	}
 
 	v->load_unload_time_rem = unloading_time;