| 256 | } |
| 257 | |
| 258 | void OnPlaceMouseUp([[maybe_unused]] ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, [[maybe_unused]] Point pt, TileIndex start_tile, TileIndex end_tile) override |
| 259 | { |
| 260 | if (pt.x != -1) { |
| 261 | switch (select_proc) { |
| 262 | case DDSP_DEMOLISH_AREA: |
| 263 | GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
| 264 | break; |
| 265 | case DDSP_CREATE_WATER: |
| 266 | if (_game_mode == GM_EDITOR) { |
| 267 | Command<CMD_BUILD_CANAL>::Post(STR_ERROR_CAN_T_BUILD_CANALS, CcPlaySound_CONSTRUCTION_WATER, end_tile, start_tile, _ctrl_pressed ? WaterClass::Sea : WaterClass::Canal, false); |
| 268 | } else { |
| 269 | Command<CMD_BUILD_CANAL>::Post(STR_ERROR_CAN_T_BUILD_CANALS, CcPlaySound_CONSTRUCTION_WATER, end_tile, start_tile, WaterClass::Canal, _ctrl_pressed); |
| 270 | } |
| 271 | break; |
| 272 | case DDSP_CREATE_RIVER: |
| 273 | Command<CMD_BUILD_CANAL>::Post(STR_ERROR_CAN_T_PLACE_RIVERS, CcPlaySound_CONSTRUCTION_WATER, end_tile, start_tile, WaterClass::River, _ctrl_pressed); |
| 274 | break; |
| 275 | |
| 276 | default: break; |
| 277 | } |
| 278 | } |
| 279 | } |
| 280 | |
| 281 | void OnPlaceObjectAbort() override |
| 282 | { |
nothing calls this directly
no test coverage detected