src/train_cmd.cpp
changeset 6152 6f9fbee77a47
parent 6151 0986553bca91
child 6153 eb35b73b300a
equal deleted inserted replaced
6151:0986553bca91 6152:6f9fbee77a47
  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