mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-01 03:48:43 +00:00
(svn r23338) -Feature [FS#4841]: diagonal dragging the rail conversion tool when pressing CTRL
This commit is contained in:
parent
104adbdb3a
commit
95f88ea537
@ -1402,7 +1402,9 @@ static Vehicle *UpdateTrainPowerProc(Vehicle *v, void *data)
|
||||
* @param tile end tile of rail conversion drag
|
||||
* @param flags operation to perform
|
||||
* @param p1 start tile of drag
|
||||
* @param p2 new railtype to convert to
|
||||
* @param p2 various bitstuffed elements:
|
||||
* - p2 = (bit 0- 3) new railtype to convert to.
|
||||
* - p2 = (bit 4) build diagonally or not.
|
||||
* @param text unused
|
||||
* @return the cost of this operation or an error
|
||||
*/
|
||||
@ -1418,7 +1420,8 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
CommandCost cost(EXPENSES_CONSTRUCTION);
|
||||
CommandCost error = CommandCost(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK); // by default, there is no track to convert.
|
||||
TileArea ta(tile, p1);
|
||||
TILE_AREA_LOOP(tile, ta) {
|
||||
TileIterator *iter = HasBit(p2, 4) ? (TileIterator *)new DiagonalTileIterator(tile, p1) : new OrthogonalTileIterator(ta);
|
||||
for (; (tile = *iter) != INVALID_TILE; ++(*iter)) {
|
||||
TileType tt = GetTileType(tile);
|
||||
|
||||
/* Check if there is any track on tile */
|
||||
|
@ -604,7 +604,7 @@ struct BuildRailToolbarWindow : Window {
|
||||
break;
|
||||
|
||||
case RTW_CONVERT_RAIL:
|
||||
HandlePlacePushButton(this, RTW_CONVERT_RAIL, GetRailTypeInfo(_cur_railtype)->cursor.convert, HT_RECT);
|
||||
HandlePlacePushButton(this, RTW_CONVERT_RAIL, GetRailTypeInfo(_cur_railtype)->cursor.convert, HT_RECT | HT_DIAGONAL);
|
||||
this->last_user_action = widget;
|
||||
break;
|
||||
|
||||
@ -715,7 +715,7 @@ struct BuildRailToolbarWindow : Window {
|
||||
break;
|
||||
|
||||
case DDSP_CONVERT_RAIL:
|
||||
DoCommandP(end_tile, start_tile, _cur_railtype, CMD_CONVERT_RAIL | CMD_MSG(STR_ERROR_CAN_T_CONVERT_RAIL), CcPlaySound10);
|
||||
DoCommandP(end_tile, start_tile, _cur_railtype | (_ctrl_pressed ? 0x10 : 0), CMD_CONVERT_RAIL | CMD_MSG(STR_ERROR_CAN_T_CONVERT_RAIL), CcPlaySound10);
|
||||
break;
|
||||
|
||||
case DDSP_REMOVE_STATION:
|
||||
|
Loading…
Reference in New Issue
Block a user