rail_cmd.c
changeset 3099 571719b2cee3
parent 3071 6f3417a859d4
child 3101 a44fdf9faef1
equal deleted inserted replaced
3098:aed45c5c1e11 3099:571719b2cee3
   352 			if (GetRoadType(tile) == ROAD_NORMAL && (
   352 			if (GetRoadType(tile) == ROAD_NORMAL && (
   353 						(track == TRACK_DIAG1 && m5 == ROAD_Y) ||
   353 						(track == TRACK_DIAG1 && m5 == ROAD_Y) ||
   354 						(track == TRACK_DIAG2 && m5 == ROAD_X) // correct direction?
   354 						(track == TRACK_DIAG2 && m5 == ROAD_X) // correct direction?
   355 					)) {
   355 					)) {
   356 				if (flags & DC_EXEC) {
   356 				if (flags & DC_EXEC) {
   357 					_m[tile].m3 = GetTileOwner(tile);
   357 					MakeRoadCrossing(tile, GetTileOwner(tile), _current_player, (track == TRACK_DIAG1 ? AXIS_Y : AXIS_X), p1, _m[tile].m2);
   358 					SetTileOwner(tile, _current_player);
       
   359 					_m[tile].m4 = p1;
       
   360 					_m[tile].m5 = 0x10 | (track == TRACK_DIAG1 ? 0x08 : 0x00); // level crossing
       
   361 				}
   358 				}
   362 				break;
   359 				break;
   363 			}
   360 			}
   364 
   361 
   365 			if (IsLevelCrossing(tile) && (m5 & 0x08 ? TRACK_DIAG1 : TRACK_DIAG2) == track)
   362 			if (IsLevelCrossing(tile) && (m5 & 0x08 ? TRACK_DIAG1 : TRACK_DIAG2) == track)
   458 			}
   455 			}
   459 
   456 
   460 			if (!(flags & DC_EXEC))
   457 			if (!(flags & DC_EXEC))
   461 				return _price.remove_rail;
   458 				return _price.remove_rail;
   462 
   459 
   463 			SetTileOwner(tile, _m[tile].m3);
   460 			MakeRoadNormal(tile, _m[tile].m3, bits, 0);
   464 			_m[tile].m2 = 0;
       
   465 			_m[tile].m5 = (ROAD_NORMAL << 4) | bits;
       
   466 			break;
   461 			break;
   467 		}
   462 		}
   468 
   463 
   469 		case MP_RAILWAY:
   464 		case MP_RAILWAY:
   470 			if (!IsPlainRailTile(tile))
   465 			if (!IsPlainRailTile(tile))