MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / OnPlaceObject

Method OnPlaceObject

src/rail_gui.cpp:664–721  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

662 }
663
664 void OnPlaceObject([[maybe_unused]] Point pt, TileIndex tile) override
665 {
666 switch (this->last_user_action) {
667 case WID_RAT_BUILD_NS:
668 VpStartPlaceSizing(tile, VPM_FIX_VERTICAL | VPM_RAILDIRS, DDSP_PLACE_RAIL);
669 break;
670
671 case WID_RAT_BUILD_X:
672 VpStartPlaceSizing(tile, VPM_FIX_Y | VPM_RAILDIRS, DDSP_PLACE_RAIL);
673 break;
674
675 case WID_RAT_BUILD_EW:
676 VpStartPlaceSizing(tile, VPM_FIX_HORIZONTAL | VPM_RAILDIRS, DDSP_PLACE_RAIL);
677 break;
678
679 case WID_RAT_BUILD_Y:
680 VpStartPlaceSizing(tile, VPM_FIX_X | VPM_RAILDIRS, DDSP_PLACE_RAIL);
681 break;
682
683 case WID_RAT_AUTORAIL:
684 VpStartPlaceSizing(tile, VPM_RAILDIRS, DDSP_PLACE_RAIL);
685 break;
686
687 case WID_RAT_DEMOLISH:
688 PlaceProc_DemolishArea(tile);
689 break;
690
691 case WID_RAT_BUILD_DEPOT:
692 Command<CMD_BUILD_TRAIN_DEPOT>::Post(STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT, CcRailDepot, tile, _cur_railtype, _build_depot_direction);
693 break;
694
695 case WID_RAT_BUILD_WAYPOINT:
696 PlaceRail_Waypoint(tile);
697 break;
698
699 case WID_RAT_BUILD_STATION:
700 PlaceRail_Station(tile);
701 break;
702
703 case WID_RAT_BUILD_SIGNALS:
704 VpStartPlaceSizing(tile, VPM_SIGNALDIRS, DDSP_BUILD_SIGNALS);
705 break;
706
707 case WID_RAT_BUILD_BRIDGE:
708 PlaceRail_Bridge(tile, this);
709 break;
710
711 case WID_RAT_BUILD_TUNNEL:
712 Command<CMD_BUILD_TUNNEL>::Post(STR_ERROR_CAN_T_BUILD_TUNNEL_HERE, CcBuildRailTunnel, tile, TRANSPORT_RAIL, _cur_railtype);
713 break;
714
715 case WID_RAT_CONVERT_RAIL:
716 VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_CONVERT_RAIL);
717 break;
718
719 default: NOT_REACHED();
720 }
721 }

Callers

nothing calls this directly

Calls 6

VpStartPlaceSizingFunction · 0.85
PlaceProc_DemolishAreaFunction · 0.85
PlaceRail_WaypointFunction · 0.85
PlaceRail_StationFunction · 0.85
PlaceRail_BridgeFunction · 0.85
NOT_REACHEDFunction · 0.85

Tested by

no test coverage detected