tunnelbridge_cmd.c
changeset 4087 d6a79200cb20
parent 4077 d4d440dd8925
child 4156 22b62f705930
equal deleted inserted replaced
4086:87fab6cb500b 4087:d6a79200cb20
   635 			if (flags & DC_EXEC) {
   635 			if (flags & DC_EXEC) {
   636 				SetClearUnderBridge(tile);
   636 				SetClearUnderBridge(tile);
   637 				MarkTileDirtyByTile(tile);
   637 				MarkTileDirtyByTile(tile);
   638 			}
   638 			}
   639 			return cost;
   639 			return cost;
   640 		} else if (IsWaterUnderBridge(tile) && TilePixelHeight(tile) != 0) {
   640 		} else if (IsWaterUnderBridge(tile) && !IsTileOwner(tile, OWNER_WATER)) {
   641 			/* delete canal under bridge */
   641 			/* delete canal under bridge */
   642 
   642 
   643 			// check for vehicles under bridge
   643 			// check for vehicles under bridge
   644 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   644 			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
   645 
   645 
   708 			} else {
   708 			} else {
   709 				if (IsClearUnderBridge(c)) {
   709 				if (IsClearUnderBridge(c)) {
   710 					DoClearSquare(c);
   710 					DoClearSquare(c);
   711 				} else {
   711 				} else {
   712 					if (GetTileSlope(c, NULL) == SLOPE_FLAT) {
   712 					if (GetTileSlope(c, NULL) == SLOPE_FLAT) {
   713 						MakeWater(c);
   713 						if (IsTileOwner(c, OWNER_WATER)) {
       
   714 							MakeWater(c);
       
   715 						} else {
       
   716 							MakeCanal(c, GetTileOwner(c));
       
   717 						}
   714 					} else {
   718 					} else {
   715 						MakeShore(c);
   719 						MakeShore(c);
   716 					}
   720 					}
   717 					MarkTileDirtyByTile(c);
   721 					MarkTileDirtyByTile(c);
   718 				}
   722 				}
  1028 					image = (ice ? SPR_FLAT_SNOWY_TILE : SPR_FLAT_GRASS_TILE);
  1032 					image = (ice ? SPR_FLAT_SNOWY_TILE : SPR_FLAT_GRASS_TILE);
  1029 					DrawGroundSprite(image + _tileh_to_sprite[ti->tileh]);
  1033 					DrawGroundSprite(image + _tileh_to_sprite[ti->tileh]);
  1030 				} else {
  1034 				} else {
  1031 					if (ti->tileh == SLOPE_FLAT) {
  1035 					if (ti->tileh == SLOPE_FLAT) {
  1032 						DrawGroundSprite(SPR_FLAT_WATER_TILE);
  1036 						DrawGroundSprite(SPR_FLAT_WATER_TILE);
  1033 						if (ti->z != 0) DrawCanalWater(ti->tile);
  1037 						if (ti->z != 0 || !IsTileOwner(ti->tile, OWNER_WATER)) DrawCanalWater(ti->tile);
  1034 					} else {
  1038 					} else {
  1035 						DrawGroundSprite(_water_shore_sprites[ti->tileh]);
  1039 						DrawGroundSprite(_water_shore_sprites[ti->tileh]);
  1036 					}
  1040 					}
  1037 				}
  1041 				}
  1038 			}
  1042 			}