rail_gui.c
changeset 1632 10c391e108b7
parent 1542 62a03537ad0b
child 1656 7860b81e4311
equal deleted inserted replaced
1631:604ae8b0386e 1632:10c391e108b7
   201 	DoCommandP(tile, 0, 0, CcPlaySound1E, CMD_PURCHASE_LAND_AREA | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_5806_CAN_T_PURCHASE_THIS_LAND));
   201 	DoCommandP(tile, 0, 0, CcPlaySound1E, CMD_PURCHASE_LAND_AREA | CMD_AUTO | CMD_NO_WATER | CMD_MSG(STR_5806_CAN_T_PURCHASE_THIS_LAND));
   202 }
   202 }
   203 
   203 
   204 static void PlaceRail_ConvertRail(uint tile)
   204 static void PlaceRail_ConvertRail(uint tile)
   205 {
   205 {
   206 	VpStartPlaceSizing(tile, VPM_X_AND_Y | (1<<4));
   206 	VpStartPlaceSizing(tile, VPM_X_AND_Y | GUI_PlaceProc_ConvertRailArea);
   207 }
   207 }
   208 
   208 
   209 static void PlaceRail_AutoSignals(uint tile)
   209 static void PlaceRail_AutoSignals(uint tile)
   210 {
   210 {
   211 	VpStartPlaceSizing(tile, VPM_SIGNALDIRS);
   211 	VpStartPlaceSizing(tile, VPM_SIGNALDIRS);
   434 		return;
   434 		return;
   435 	}
   435 	}
   436 
   436 
   437 	case WE_PLACE_MOUSEUP:
   437 	case WE_PLACE_MOUSEUP:
   438 		if (e->click.pt.x != -1) {
   438 		if (e->click.pt.x != -1) {
   439 			uint start_tile = e->place.starttile;
   439 			TileIndex start_tile = e->place.starttile;
   440 			uint end_tile = e->place.tile;
   440 			TileIndex end_tile = e->place.tile;
   441 
   441 
   442 			if (e->place.userdata == VPM_X_OR_Y) {
   442 			if (e->place.userdata == VPM_X_OR_Y) {
   443 				ResetObjectToPlace();
   443 				ResetObjectToPlace();
   444 				ShowBuildBridgeWindow(start_tile, end_tile, _cur_railtype);
   444 				ShowBuildBridgeWindow(start_tile, end_tile, _cur_railtype);
   445 			} else if (e->place.userdata == VPM_RAILDIRS) {
   445 			} else if (e->place.userdata == VPM_RAILDIRS) {
   447 				if (_ctrl_pressed) _remove_button_clicked = true;
   447 				if (_ctrl_pressed) _remove_button_clicked = true;
   448 				HandleAutodirPlacement();
   448 				HandleAutodirPlacement();
   449 				_remove_button_clicked = old;
   449 				_remove_button_clicked = old;
   450 			} else if (e->place.userdata == VPM_SIGNALDIRS) {
   450 			} else if (e->place.userdata == VPM_SIGNALDIRS) {
   451 				HandleAutoSignalPlacement();
   451 				HandleAutoSignalPlacement();
   452 			} else if (e->place.userdata == VPM_X_AND_Y) {
   452 			} else if ((e->place.userdata & 0xF) == VPM_X_AND_Y) {
   453 				DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA));
   453 				if (GUIPlaceProcDragXY(e)) break;
   454 			} else if (e->place.userdata == (VPM_X_AND_Y | (1<<4))) {
   454 
   455 				DoCommandP(end_tile, start_tile, _cur_railtype, CcPlaySound10, CMD_CONVERT_RAIL | CMD_MSG(STR_CANT_CONVERT_RAIL));
   455 				if ((e->place.userdata >> 0xF) == GUI_PlaceProc_ConvertRailArea)
   456 			} else if (e->place.userdata == (VPM_X_AND_Y | (2<<4))) {
   456 					DoCommandP(end_tile, start_tile, _cur_railtype, CcPlaySound10, CMD_CONVERT_RAIL | CMD_MSG(STR_CANT_CONVERT_RAIL));
   457 				DoCommandP(end_tile, start_tile, _cur_railtype, CcPlaySound10, CMD_LEVEL_LAND | CMD_AUTO);
       
   458 			} else if (e->place.userdata == VPM_X_AND_Y_LIMITED) {
   457 			} else if (e->place.userdata == VPM_X_AND_Y_LIMITED) {
   459 				HandleStationPlacement(start_tile, end_tile);
   458 				HandleStationPlacement(start_tile, end_tile);
   460 			} else
   459 			} else
   461 				DoRailroadTrack(e->place.userdata & 1);
   460 				DoRailroadTrack(e->place.userdata & 1);
   462 		}
   461 		}