equal
deleted
inserted
replaced
2885 /* For every vehicle after and including the given vehicle */ |
2885 /* For every vehicle after and including the given vehicle */ |
2886 for (prev = GetPrevVehicleInChain(v); v != NULL; prev = v, v = v->next) { |
2886 for (prev = GetPrevVehicleInChain(v); v != NULL; prev = v, v = v->next) { |
2887 BeginVehicleMove(v); |
2887 BeginVehicleMove(v); |
2888 |
2888 |
2889 GetNewVehiclePosResult gp; |
2889 GetNewVehiclePosResult gp; |
|
2890 GetNewVehiclePos(v, &gp); |
2890 if (v->u.rail.track != TRACK_BIT_WORMHOLE) { |
2891 if (v->u.rail.track != TRACK_BIT_WORMHOLE) { |
2891 /* Not inside tunnel */ |
2892 /* Not inside tunnel */ |
2892 if (GetNewVehiclePos(v, &gp)) { |
2893 if (gp.old_tile == gp.new_tile) { |
2893 /* Staying in the old tile */ |
2894 /* Staying in the old tile */ |
2894 if (v->u.rail.track == TRACK_BIT_DEPOT) { |
2895 if (v->u.rail.track == TRACK_BIT_DEPOT) { |
2895 /* Inside depot */ |
2896 /* Inside depot */ |
2896 gp.x = v->x_pos; |
2897 gp.x = v->x_pos; |
2897 gp.y = v->y_pos; |
2898 gp.y = v->y_pos; |
3037 |
3038 |
3038 v->direction = chosen_dir; |
3039 v->direction = chosen_dir; |
3039 } |
3040 } |
3040 } else { |
3041 } else { |
3041 /* In tunnel or on a bridge */ |
3042 /* In tunnel or on a bridge */ |
3042 GetNewVehiclePos(v, &gp); |
|
3043 |
|
3044 if (!(v->vehstatus & VS_HIDDEN)) { |
3043 if (!(v->vehstatus & VS_HIDDEN)) { |
3045 v->cur_speed = |
3044 v->cur_speed = |
3046 min(v->cur_speed, GetBridge(GetBridgeType(v->tile))->speed); |
3045 min(v->cur_speed, GetBridge(GetBridgeType(v->tile))->speed); |
3047 } |
3046 } |
3048 |
3047 |