--- 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;