Mercurial > hg > openttd
diff src/station_gui.cpp @ 10732:cb1b114429c8 draft
(svn r15065) -Change (r14919): Allow to select a new station location by ctrl-clicking while distant-join window is open. (PhilSophus)
author | frosch <frosch@openttd.org> |
---|---|
date | Tue, 13 Jan 2009 17:28:11 +0000 |
parents | 167ce46d42c1 |
children | 6f72f80df252 |
line wrap: on
line diff
--- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -1206,17 +1206,26 @@ */ static bool StationJoinerNeeded(CommandContainer cmd, int w, int h) { - if (CmdFailed(DoCommand(&cmd, CommandFlagsToDCFlags(GetCommandFlags(cmd.cmd))))) return false; - /* Only show selection if distant join is enabled in the settings */ if (!_settings_game.station.distant_join_stations) return false; - /* If a window is already opened, we always return true */ - if (FindWindowById(WC_SELECT_STATION, 0) != NULL) return true; + /* If a window is already opened and we didn't ctrl-click, + * return true (i.e. just flash the old window) */ + Window *selection_window = FindWindowById(WC_SELECT_STATION, 0); + if (selection_window != NULL) { + if (!_ctrl_pressed) return true; + + /* Abort current distant-join and start new one */ + delete selection_window; + UpdateTileSelection(); + } /* only show the popup, if we press ctrl */ if (!_ctrl_pressed) return false; + /* Now check if we could build there */ + if (CmdFailed(DoCommand(&cmd, CommandFlagsToDCFlags(GetCommandFlags(cmd.cmd))))) return false; + /* First test for adjacent station */ FindStationsNearby(cmd.tile, w, h, false); int neighbour_station_count = _stations_nearby_list.Length();