From b284b5fa92adc5a5e8975e472511ab4e2e20f71e Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 30 Aug 2007 17:17:04 +0000 Subject: (svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types. -Codechange: barren the rail grounds on terraforming. --- src/openttd.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/openttd.h') diff --git a/src/openttd.h b/src/openttd.h index 9fa72e915..2084f3219 100644 --- a/src/openttd.h +++ b/src/openttd.h @@ -473,6 +473,20 @@ typedef void ChangeTileOwnerProc(TileIndex tile, PlayerID old_player, PlayerID n /** @see VehicleEnterTileStatus to see what the return values mean */ typedef uint32 VehicleEnterTileProc(Vehicle *v, TileIndex tile, int x, int y); typedef Foundation GetFoundationProc(TileIndex tile, Slope tileh); +/** + * Called when a tile is affected by a terraforming operation. + * The function has to check if terraforming of the tile is allowed and return extra terraform-cost that depend on the tiletype. + * With DC_EXEC in flags it has to perform tiletype-specific actions (like clearing land etc., but not the terraforming itself). + * + * @note The terraforming has not yet taken place. So GetTileZ() and GetTileSlope() refer to the landscape before the terraforming operation. + * + * @param tile The involved tile. + * @param flags Command flags passed to the terraform command (DC_EXEC, DC_QUERY_COST, etc.). + * @param z_new TileZ after terraforming. + * @param tileh_new Slope after terraforming. + * @return Error code or extra cost for terraforming (like clearing land, building foundations, etc., but not the terraforming itself.) + */ +typedef CommandCost TerraformTileProc(TileIndex tile, uint32 flags, uint z_new, Slope tileh_new); struct TileTypeProcs { DrawTileProc *draw_tile_proc; @@ -488,6 +502,7 @@ struct TileTypeProcs { GetProducedCargoProc *get_produced_cargo_proc; VehicleEnterTileProc *vehicle_enter_tile_proc; GetFoundationProc *get_foundation_proc; + TerraformTileProc *terraform_tile_proc; }; -- cgit v1.2.3-54-g00ecf