OpenTTD
Data Structures | Typedefs | Functions | Variables
terraform_cmd.cpp File Reference

Commands related to terraforming. More...

#include "stdafx.h"
#include "command_func.h"
#include "tunnel_map.h"
#include "bridge_map.h"
#include "viewport_func.h"
#include "genworld.h"
#include "object_base.h"
#include "company_base.h"
#include "company_func.h"
#include "table/strings.h"
#include <map>
#include <set>
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  TerraformerState
 State of the terraforming. More...
 

Typedefs

typedef std::set< TileIndexTileIndexSet
 Set of tiles. More...
 
typedef std::map< TileIndex, int > TileIndexToHeightMap
 Mapping of tiles to their height. More...
 

Functions

static int TerraformGetHeightOfTile (const TerraformerState *ts, TileIndex tile)
 Gets the TileHeight (height of north corner) of a tile as of current terraforming progress. More...
 
static void TerraformSetHeightOfTile (TerraformerState *ts, TileIndex tile, int height)
 Stores the TileHeight (height of north corner) of a tile in a TerraformerState. More...
 
static void TerraformAddDirtyTile (TerraformerState *ts, TileIndex tile)
 Adds a tile to the "tile_table" in a TerraformerState. More...
 
static void TerraformAddDirtyTileAround (TerraformerState *ts, TileIndex tile)
 Adds all tiles that incident with the north corner of a specific tile to the "tile_table" in a TerraformerState. More...
 
static CommandCost TerraformTileHeight (TerraformerState *ts, TileIndex tile, int height)
 Terraform the north corner of a tile to a specific height. More...
 
CommandCost CmdTerraformLand (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Terraform land. More...
 
CommandCost CmdLevelLand (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Levels a selected (rectangle) area of land. More...
 

Variables

TileIndex _terraform_err_tile
 first tile we couldn't terraform
 

Detailed Description

Commands related to terraforming.

Definition in file terraform_cmd.cpp.

Typedef Documentation

◆ TileIndexSet

typedef std::set<TileIndex> TileIndexSet

Set of tiles.

Definition at line 30 of file terraform_cmd.cpp.

◆ TileIndexToHeightMap

typedef std::map<TileIndex, int> TileIndexToHeightMap

Mapping of tiles to their height.

Definition at line 32 of file terraform_cmd.cpp.

Function Documentation

◆ CmdLevelLand()

CommandCost CmdLevelLand ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Levels a selected (rectangle) area of land.

Parameters
tileend tile of area-drag
flagsfor this command type
p1start tile of area drag
p2various bitstuffed data. bit 0: Whether to use the Orthogonal (0) or Diagonal (1) iterator. bits 1 - 2: Mode of leveling LevelMode.
textunused
Returns
the cost of this operation or an error

Definition at line 423 of file terraform_cmd.cpp.

References _current_company, _settings_game, _terraform_err_tile, CMD_ERROR, GameSettings::construction, EXPENSES_CONSTRUCTION, GB(), GetAvailableMoneyForCommand(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), INVALID_STRING_ID, INVALID_TILE, LM_LEVEL, LM_LOWER, LM_RAISE, MapSize(), ConstructionSettings::max_heightlevel, return_cmd_error, and TileHeight().

◆ CmdTerraformLand()

CommandCost CmdTerraformLand ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)

Terraform land.

Parameters
tiletile to terraform
flagsfor this command type
p1corners to terraform (SLOPE_xxx)
p2direction; eg up (non-zero) or down (zero)
textunused
Returns
the cost of this operation or an error

Definition at line 189 of file terraform_cmd.cpp.

References _terraform_err_tile, CommandCost::AddCost(), TerraformerState::dirty_tiles, EXPENSES_CONSTRUCTION, CommandCost::Failed(), INVALID_TILE, MapSize(), SLOPE_E, SLOPE_N, SLOPE_S, SLOPE_W, TerraformTileHeight(), TileDiffXY(), and TileHeight().

◆ TerraformGetHeightOfTile()

static int TerraformGetHeightOfTile ( const TerraformerState ts,
TileIndex  tile 
)
static

Gets the TileHeight (height of north corner) of a tile as of current terraforming progress.

Parameters
tsTerraformerState.
tileTile.
Returns
TileHeight.

Definition at line 49 of file terraform_cmd.cpp.

References TerraformerState::tile_to_new_height, and TileHeight().

◆ TerraformSetHeightOfTile()

static void TerraformSetHeightOfTile ( TerraformerState ts,
TileIndex  tile,
int  height 
)
static

Stores the TileHeight (height of north corner) of a tile in a TerraformerState.

Parameters
tsTerraformerState.
tileTile.
heightNew TileHeight.

Definition at line 62 of file terraform_cmd.cpp.

◆ TerraformTileHeight()

static CommandCost TerraformTileHeight ( TerraformerState ts,
TileIndex  tile,
int  height 
)
static

Terraform the north corner of a tile to a specific height.

Parameters
tsTerraformerState.
tileTile.
heightAimed height.
Returns
Error code or cost.

Definition at line 103 of file terraform_cmd.cpp.

Referenced by CmdTerraformLand().