src/tunnelbridge_cmd.cpp
changeset 8802 e08824cdab46
parent 8796 81b0d6b54a1f
child 8856 7f8b5c11bea6
equal deleted inserted replaced
8801:a1eb885cc491 8802:e08824cdab46
   417 		}
   417 		}
   418 	}
   418 	}
   419 
   419 
   420 	if (flags & DC_EXEC && railtype != INVALID_RAILTYPE) {
   420 	if (flags & DC_EXEC && railtype != INVALID_RAILTYPE) {
   421 		Track track = AxisToTrack(direction);
   421 		Track track = AxisToTrack(direction);
   422 		UpdateSignalsOnSegment(tile_start, INVALID_DIAGDIR, _current_player);
   422 		AddSideToSignalBuffer(tile_start, INVALID_DIAGDIR, _current_player);
   423 		YapfNotifyTrackLayoutChange(tile_start, track);
   423 		YapfNotifyTrackLayoutChange(tile_start, track);
   424 	}
   424 	}
   425 
   425 
   426 	/* for human player that builds the bridge he gets a selection to choose from bridges (DC_QUERY_COST)
   426 	/* for human player that builds the bridge he gets a selection to choose from bridges (DC_QUERY_COST)
   427 	 * It's unnecessary to execute this command every time for every bridge. So it is done only
   427 	 * It's unnecessary to execute this command every time for every bridge. So it is done only
   547 
   547 
   548 	if (flags & DC_EXEC) {
   548 	if (flags & DC_EXEC) {
   549 		if (GB(p1, 9, 1) == TRANSPORT_RAIL) {
   549 		if (GB(p1, 9, 1) == TRANSPORT_RAIL) {
   550 			MakeRailTunnel(start_tile, _current_player, direction,                 (RailType)GB(p1, 0, 4));
   550 			MakeRailTunnel(start_tile, _current_player, direction,                 (RailType)GB(p1, 0, 4));
   551 			MakeRailTunnel(end_tile,   _current_player, ReverseDiagDir(direction), (RailType)GB(p1, 0, 4));
   551 			MakeRailTunnel(end_tile,   _current_player, ReverseDiagDir(direction), (RailType)GB(p1, 0, 4));
   552 			UpdateSignalsOnSegment(start_tile, INVALID_DIAGDIR, _current_player);
   552 			AddSideToSignalBuffer(start_tile, INVALID_DIAGDIR, _current_player);
   553 			YapfNotifyTrackLayoutChange(start_tile, AxisToTrack(DiagDirToAxis(direction)));
   553 			YapfNotifyTrackLayoutChange(start_tile, AxisToTrack(DiagDirToAxis(direction)));
   554 		} else {
   554 		} else {
   555 			MakeRoadTunnel(start_tile, _current_player, direction,                 (RoadTypes)GB(p1, 0, 3));
   555 			MakeRoadTunnel(start_tile, _current_player, direction,                 (RoadTypes)GB(p1, 0, 3));
   556 			MakeRoadTunnel(end_tile,   _current_player, ReverseDiagDir(direction), (RoadTypes)GB(p1, 0, 3));
   556 			MakeRoadTunnel(end_tile,   _current_player, ReverseDiagDir(direction), (RoadTypes)GB(p1, 0, 3));
   557 		}
   557 		}
   610 
   610 
   611 			DoClearSquare(tile);
   611 			DoClearSquare(tile);
   612 			DoClearSquare(endtile);
   612 			DoClearSquare(endtile);
   613 
   613 
   614 			/* cannot use INVALID_DIAGDIR for signal update because the tunnel doesn't exist anymore */
   614 			/* cannot use INVALID_DIAGDIR for signal update because the tunnel doesn't exist anymore */
   615 			UpdateSignalsOnSegment(tile, ReverseDiagDir(dir), owner);
   615 			AddSideToSignalBuffer(tile, ReverseDiagDir(dir), owner);
   616 			UpdateSignalsOnSegment(endtile, dir, owner);
   616 			AddSideToSignalBuffer(endtile, dir, owner);
   617 
   617 
   618 			Track track = AxisToTrack(DiagDirToAxis(dir));
   618 			Track track = AxisToTrack(DiagDirToAxis(dir));
   619 			YapfNotifyTrackLayoutChange(tile, track);
   619 			YapfNotifyTrackLayoutChange(tile, track);
   620 			YapfNotifyTrackLayoutChange(endtile, track);
   620 			YapfNotifyTrackLayoutChange(endtile, track);
   621 		} else {
   621 		} else {
   672 			MarkTileDirtyByTile(c);
   672 			MarkTileDirtyByTile(c);
   673 		}
   673 		}
   674 
   674 
   675 		if (rail) {
   675 		if (rail) {
   676 			/* cannot use INVALID_DIAGDIR for signal update because the bridge doesn't exist anymore */
   676 			/* cannot use INVALID_DIAGDIR for signal update because the bridge doesn't exist anymore */
   677 			UpdateSignalsOnSegment(tile, ReverseDiagDir(direction), owner);
   677 			AddSideToSignalBuffer(tile, ReverseDiagDir(direction), owner);
   678 			UpdateSignalsOnSegment(endtile, direction, owner);
   678 			AddSideToSignalBuffer(endtile, direction, owner);
   679 
   679 
   680 			Track track = AxisToTrack(DiagDirToAxis(direction));
   680 			Track track = AxisToTrack(DiagDirToAxis(direction));
   681 			YapfNotifyTrackLayoutChange(tile, track);
   681 			YapfNotifyTrackLayoutChange(tile, track);
   682 			YapfNotifyTrackLayoutChange(endtile, track);
   682 			YapfNotifyTrackLayoutChange(endtile, track);
   683 		}
   683 		}