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.
typedef std::map< TileIndex, int > TileIndexToHeightMap
 Mapping of tiles to their height.

Functions

static int TerraformGetHeightOfTile (const TerraformerState *ts, TileIndex tile)
 Gets the TileHeight (height of north corner) of a tile as of current terraforming progress.
static void TerraformSetHeightOfTile (TerraformerState *ts, TileIndex tile, int height)
 Stores the TileHeight (height of north corner) of a tile in a TerraformerState.
static void TerraformAddDirtyTile (TerraformerState *ts, TileIndex tile)
 Adds a tile to the "tile_table" in a TerraformerState.
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.
static CommandCost TerraformTileHeight (TerraformerState *ts, TileIndex tile, int height)
 Terraform the north corner of a tile to a specific height.
CommandCost CmdTerraformLand (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Terraform land.
CommandCost CmdLevelLand (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
 Levels a selected (rectangle) area of land.

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

typedef std::set<TileIndex> TileIndexSet

Set of tiles.

Definition at line 30 of file terraform_cmd.cpp.

typedef std::map<TileIndex, int> TileIndexToHeightMap

Mapping of tiles to their height.

Definition at line 32 of file terraform_cmd.cpp.

Function Documentation

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, CommandCost::AddCost(), CMD_ERROR, CMD_TERRAFORM_LAND, GameSettings::construction, DC_EXEC, DoCommand(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), GB(), GetAvailableMoneyForCommand(), CommandCost::GetCost(), CommandCost::GetErrorMessage(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), HasBit(), INVALID_STRING_ID, INVALID_TILE, LM_LEVEL, LM_LOWER, LM_RAISE, MapSize(), ConstructionSettings::max_heightlevel, return_cmd_error, SLOPE_N, CompanyProperties::terraform_limit, and TileHeight().

CommandCost CmdTerraformLand ( TileIndex  tile,
DoCommandFlag  flags,
uint32  p1,
uint32  p2,
const char *  text 
)
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().

Referenced by CmdTerraformLand(), and TerraformTileHeight().

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.

References TerraformerState::tile_to_new_height.

Referenced by TerraformTileHeight().

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