src/terraform_gui.cpp
branchgamebalance
changeset 9912 1ac8aac92385
parent 9911 0b8b245a2391
equal deleted inserted replaced
9911:0b8b245a2391 9912:1ac8aac92385
   103 {
   103 {
   104 	TileIndex start_tile = e->we.place.starttile;
   104 	TileIndex start_tile = e->we.place.starttile;
   105 	TileIndex end_tile = e->we.place.tile;
   105 	TileIndex end_tile = e->we.place.tile;
   106 
   106 
   107 	switch (e->we.place.select_proc) {
   107 	switch (e->we.place.select_proc) {
   108 		case GUI_PlaceProc_DemolishArea:
   108 		case DDSP_DEMOLISH_AREA:
   109 			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA));
   109 			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA));
   110 			break;
   110 			break;
   111 		case GUI_PlaceProc_LevelArea:
   111 		case DDSP_LEVEL_AREA:
   112 			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_LEVEL_LAND | CMD_AUTO);
   112 			DoCommandP(end_tile, start_tile, 0, CcPlaySound10, CMD_LEVEL_LAND | CMD_AUTO);
   113 			break;
   113 			break;
   114 		case GUI_PlaceProc_RockyArea:
   114 		case DDSP_CREATE_ROCKS:
   115 			GenerateRockyArea(end_tile, start_tile);
   115 			GenerateRockyArea(end_tile, start_tile);
   116 			break;
   116 			break;
   117 		case GUI_PlaceProc_DesertArea:
   117 		case DDSP_CREATE_DESERT:
   118 			GenerateDesertArea(end_tile, start_tile);
   118 			GenerateDesertArea(end_tile, start_tile);
   119 			break;
   119 			break;
   120 		case GUI_PlaceProc_WaterArea:
   120 		case DDSP_CREATE_WATER:
   121 			DoCommandP(end_tile, start_tile, _ctrl_pressed, CcBuildCanal, CMD_BUILD_CANAL | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS));
   121 			DoCommandP(end_tile, start_tile, _ctrl_pressed, CcBuildCanal, CMD_BUILD_CANAL | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS));
   122 			break;
   122 			break;
   123 		default:
   123 		default:
   124 			return false;
   124 			return false;
   125 	}
   125 	}
   139 	'O',
   139 	'O',
   140 };
   140 };
   141 
   141 
   142 void PlaceProc_DemolishArea(TileIndex tile)
   142 void PlaceProc_DemolishArea(TileIndex tile)
   143 {
   143 {
   144 	VpStartPlaceSizing(tile, VPM_X_AND_Y, GUI_PlaceProc_DemolishArea);
   144 	VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_DEMOLISH_AREA);
   145 }
   145 }
   146 
   146 
   147 static void PlaceProc_RaiseLand(TileIndex tile)
   147 static void PlaceProc_RaiseLand(TileIndex tile)
   148 {
   148 {
   149 	DoCommandP(
   149 	DoCommandP(
   160 	);
   160 	);
   161 }
   161 }
   162 
   162 
   163 void PlaceProc_LevelLand(TileIndex tile)
   163 void PlaceProc_LevelLand(TileIndex tile)
   164 {
   164 {
   165 	VpStartPlaceSizing(tile, VPM_X_AND_Y, GUI_PlaceProc_LevelArea);
   165 	VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_LEVEL_AREA);
   166 }
   166 }
   167 
   167 
   168 static void TerraformClick_Lower(Window *w)
   168 static void TerraformClick_Lower(Window *w)
   169 {
   169 {
   170 	HandlePlacePushButton(w, 4, ANIMCURSOR_LOWERLAND, 2, PlaceProc_LowerLand);
   170 	HandlePlacePushButton(w, 4, ANIMCURSOR_LOWERLAND, 2, PlaceProc_LowerLand);
   242 	case WE_PLACE_DRAG:
   242 	case WE_PLACE_DRAG:
   243 		VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.select_method);
   243 		VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.select_method);
   244 		break;
   244 		break;
   245 
   245 
   246 	case WE_PLACE_MOUSEUP:
   246 	case WE_PLACE_MOUSEUP:
   247 		if (e->we.place.pt.x != -1 && e->we.place.select_method == VPM_X_AND_Y) {
   247 		if (e->we.place.pt.x != -1) {
   248 			GUIPlaceProcDragXY(e);
   248 			switch (e->we.place.select_proc) {
       
   249 				case DDSP_DEMOLISH_AREA:
       
   250 				case DDSP_LEVEL_AREA:
       
   251 					GUIPlaceProcDragXY(e);
       
   252 					break;
       
   253 			}
   249 		}
   254 		}
   250 		break;
   255 		break;
   251 
   256 
   252 	case WE_ABORT_PLACE_OBJ:
   257 	case WE_ABORT_PLACE_OBJ:
   253 		RaiseWindowButtons(w);
   258 		RaiseWindowButtons(w);